Excelで16桁以上の数字を入れると末尾が0に変わる
Excelは既定の設定では数字を15桁までしか正確に覚えないため、16桁目から後ろは0として保存されます。会員番号や注文IDなどの長い番号は、入力する前にセルを「文字列」にするか、先頭に半角の「'」を付けて文字として入れます。
すでに0になった桁は、書式を変えても戻りません。元のデータから入れ直します。
数値として入れると16桁目から先が0に置き換わる(既定の表示形式ではセルにE+の形で表示され、末尾の0は数式バーで見える)
会員番号や注文IDの突合で、16桁目から後ろだけが違う2つの番号が一致してしまう。見間違いではなく、どちらも0に書き換わり、Excelの中では本当に同じ数値になっています。数字だけでできた長い番号は、そのまま入力すると数値として扱われます。
※2026年10月時点のMicrosoft公式ヘルプに基づく内容です。操作の場所はWindows版の表記で、Mac版・Web版は公式ヘルプに経路がある箇所だけ図や本文に併記しています。

0になった桁は戻せない
公式ヘルプ先頭のゼロおよび大きい数値の保持には、16桁以上の数値は15桁を超える部分が0に切り捨てられると書かれています。セルの書式を「文字列」に変えても、適用されるのは書式を設定した後に入力した数値だけです。
0に置き換わった桁は、書式を変えても取り戻せません。保存すると、0になった状態でファイルに残ります。戻せるのは正しい番号が入った元のファイルか、0になる前の版が残っているときだけで、それ以外は元のデータから入れ直します(自動保存とは、Web 用 Excel での基本的な作業、以前のバージョンの Office ファイルを表示する)。
- CSVなど正しい番号のファイルを直接開いた場合
- 自動保存がオフなら保存せずに閉じる
- 前回保存した後のほかの変更も消える
- 変更を残すなら「名前を付けて保存」か「コピーの保存」で別のファイルに
- 開き直すときは下のCSVの手順で文字として読み込む
- 正しい桁は一度もファイルに入っていない
- 閉じても復元しても戻らない
- 元のデータから入れ直す
- OneDrive・SharePointのファイルだけ
- 「バージョン履歴」で0になる前の版を開き「復元」(Web版は「ファイル」から)
- ほかの変更も、その版の時点まで戻る
- 版は約10分ごとにしか追加されない
1入力する前に文字として扱わせる
- 番号を入れる列を選ぶ
- Ctrl+1 でセルの書式設定を開く(Web版はセルを右クリック → 「セルの書式設定」)
- 「文字列」を選ぶ(Web版は「テキスト」)
- そのあとで番号を入力する(貼り付けは下の注意へ)
Web版の手順の出典: Excel for the web で数値の先頭にゼロを付けるように書式設定する
Excelでコピーして Ctrl+V で貼り付けると、既定ではデータだけでなく書式設定も貼り付けられるので(貼り付けのオプション)、設定した「文字列」がコピー元の書式で上書きされることがあります。値だけを貼る経路は次のとおりです(セル、行、列を移動またはコピーする、Excel for Mac で特定のセルの内容をコピーして貼り付ける)。
- 「ホーム」タブ
- 「貼り付け」の下の矢印
- 「値」を選ぶ
- 「ホーム」タブ
- 「貼り付け」の横の矢印
- 「値のペースト」を選ぶ
- 「ホーム」タブ
- 「貼り付け」の下の矢印
- 「値の貼り付け」または「値のペースト」を選ぶ
コピー元がすでに末尾0の数値なら、どう貼っても元の番号には戻りません。Excel以外(業務システムの画面やメールなど)から貼った番号も自動データ変換の対象なので、貼った後に手順2の ISTEXT と数式バーで16桁目以降を確かめます。
1件だけ入れるなら、'1234567890123456 のように先頭に半角の「'」を付ける方法もあります。
「長い数値の最初の 15 桁を保持し、必要に応じて指数形式で表示します」をオフにすると、16桁以上の数値データがテキストとして保存され、すべての数字が保持されます(自動データ変換を設定する)。すでに0になった桁は戻りません。この設定の公式ヘルプの対象はMicrosoft 365とExcel 2024(それぞれMac版を含む)で、場所は次のとおりです。
- 「ファイル」タブ→「オプション」
- 「データ」タブ
- 「自動データ変換」
- 「Excel」→「環境設定」
- 「編集」タブ
- 「自動データ変換」
文字列として保存した番号も、通貨などの数値形式に変換すると有効桁数15桁に切り捨てられます。
CSVファイルから読み込む場合は、取り込むときに列を文字として読み込む設定にする方法もあります。手順はCSVをExcelで開くと文字化けする・先頭の0が消えるにまとめています。
2番号どうしは文字として照合する
- 空いた列に ISTEXT 関数を入れて両方の列を調べる
- TRUE(文字列)数式バーで16桁目以降を確かめてから照合へ
- FALSE(空欄以外)数値など文字列以外。16桁以上なら末尾が0のおそれがあり、元データから入れ直す
- 空いた列に EXACT 関数を入れる
- 両方が文字列の行なら、1文字でも違えばFALSE
照合の前に、空いた列に =ISTEXT(A2) と入れて下の行へコピーし、B列も同じように調べます。ISTEXTは文字列かどうかを見るだけなので(IS 関数)、0になった後で文字にした番号もTRUEになります。TRUEの行も数式バーで16桁目以降を確かめます。FALSEの行は、空欄でなければ数値など文字列以外で入っていて、16桁以上の番号なら末尾がすでに0のおそれがあります(指数表記で数値を表示する)。
A列とB列の番号を1行ずつ比べるなら、C2セルに =EXACT(A2,B2) と入れて下の行へコピーします。EXACT 関数は2つの文字列を比較して、まったく同じならTRUE、そうでなければFALSEを返します。