公開日:

CSVをExcelで開くと先頭の0が消える原因と対処法|商品コード・郵便番号を正しく読み込む方法

取引先から届いたCSVをExcelで開いたら、商品コードの「00125」が「125」になっていた。そんな経験はありませんか。

商品コード、得意先コード、郵便番号などの先頭に付く0は、数字としての大きさではなく識別するための文字です。Excelが勝手に数値として読み取ると、後で別の台帳と照合できなくなることがあります。

この記事では、CSVの原文を確認し、Excelに先頭の0を残したまま取り込む手順を紹介します。すでに消えてしまった場合の考え方も説明します。

最初に結論:CSVをダブルクリックせず、文字列として取り込む

  • 元のCSVに 00125 が残っている場合は、CSVをExcelへ再取り込みするのが確実です。
  • Excelの[データ]→[テキスト/CSVから]を使い、商品コードなどの列をテキスト(文字列)として読み込みます。
  • Excel上で 125 になった後からセルの表示形式を「文字列」に変えるだけでは、失われた0は戻りません。
CSV原文とExcelでの数値化の違い
説明用の概念図です。図は左右にスクロールできます。図を原寸で開く

なぜ先頭の0が消えるのか

例えば、次のCSVがあるとします。

商品コード,商品名,数量
00125,封筒,30
00070,コピー用紙,12

このファイルをExcelで直接開くと、先頭の0が付いたコードを数値と判断し、次のように表示することがあります。

CSVの文字 Excelが数値として読んだ場合 商品コードとして正しい値
00125 125 00125
00070 70 00070

数値の125と、5桁のコード00125は別の情報です。識別子に数値の計算は必要ありません。商品コードや郵便番号は文字列として扱うのが基本です。

手順1:元のCSVに0が残っているか確認する

  1. 元のCSVをコピーし、確認用のファイルを作ります。
  2. コピーしたCSVをメモ帳などのテキストエディターで開きます。
  3. 対象のコードが 00125 のまま書かれているか確認します。

原文が 00125 なら、Excelでの取り込み方を変えることで保持できる見込みがあります。元CSVもすでに 125 なら、元の桁数やコード規則を別資料から確認する必要があります。

注意: Excelで開いて保存したCSVは、値が書き換わっている可能性があります。確認する前に元ファイルを上書きしないでください。

手順2:Excelの「テキスト/CSVから」で読み込む

Windows版Excelの一般的な操作例です。バージョンによってボタン名は多少異なります。

  1. Excelで新しい空のブックを開きます。
  2. [データ]タブの[テキスト/CSVから]を選び、対象CSVを指定します。
  3. プレビュー画面で[データの変換]を選び、Power Queryエディターを開きます。
  4. 画面右の「適用したステップ」に、自動で列を数値へ変える「変更された型」などのステップがある場合は、元の0が残る状態に戻してから、コード列のデータ型を「テキスト」にします。
  5. プレビューで 00125 と 00070 が残っていることを確認します。
  6. [閉じて読み込む]でワークシートに取り込みます。

ここで大切なのは、数値に変換された後で文字列に戻すのではなく、最初から数値に変えないことです。プレビューにすでに 125 と出ている場合は、自動型変換のステップや取り込み設定を見直してください。

先頭ゼロを保持してCSVを取り込む流れ
説明用の概念図です。図は左右にスクロールできます。図を原寸で開く

桁数が固定なら「00000」の表示形式でもよい?

5桁の数値 125 にユーザー定義の表示形式 00000 を設定すると、画面上は 00125 にできます。ただし、これは見え方を整える方法です。元の値を文字列として保持したことにはなりません。

桁数が5桁と決まっていて、表示だけを整えたい場合には使えます。一方、商品コードを他システムへ渡すCSVや、桁数が一定でない識別子には、文字列として取り込む方法をおすすめします。

読み込み後に確認する3項目

  1. 先頭ゼロのあるコードが、サンプルと一致しているか。
  2. コード列に数値と文字列が混在していないか。
  3. 別の台帳と照合した際に、同じコードが一致するか。

特に管理台帳では、見た目が直っていても照合キーとして使えないことがあります。原文・Excel表示・照合結果の3つで確認すると安心です。

よくある質問

Excelで保存してしまったCSVの0は戻せますか?

保存によって元の0が失われ、原本も残っていない場合、元の桁数が不明なら正確には復元できません。コード規則やバックアップ、取引先からの再取得を確認してください。

先頭にアポストロフィを付ければよいですか?

Excelのセルへ手入力する場合は文字列として扱う方法の一つですが、数千行のCSVを毎回直す用途には向きません。取り込み時に列の型を指定する方が再現性があります。

文字化けも同時に起きています

文字化けは文字コードの問題で、先頭ゼロの消失はデータ型の問題です。別々に確認してください。詳しくはExcelでCSVが文字化けしたときの直し方をご覧ください。

まとめ

CSVをExcelで開いた際の先頭0の消失は、識別子が数値として読み取られることで起こります。元CSVを保持し、[テキスト/CSVから]で対象列を文字列に指定するのが基本です。原文の0が消える前に型変換を止めることが最も重要です。

参考:Microsoft サポート「先頭のゼロおよび大きい数値の保持」

画面の名称や操作は、Officeのバージョンや表示幅などによって異なる場合があります。