公開日:
CSVをExcelで開くと先頭の0が消える原因と対処法|商品コード・郵便番号を正しく読み込む方法
取引先から届いたCSVをExcelで開いたら、商品コードの「00125」が「125」になっていた。そんな経験はありませんか。
商品コード、得意先コード、郵便番号などの先頭に付く0は、数字としての大きさではなく識別するための文字です。Excelが勝手に数値として読み取ると、後で別の台帳と照合できなくなることがあります。
この記事では、CSVの原文を確認し、Excelに先頭の0を残したまま取り込む手順を紹介します。すでに消えてしまった場合の考え方も説明します。
最初に結論:CSVをダブルクリックせず、文字列として取り込む
- 元のCSVに
00125が残っている場合は、CSVをExcelへ再取り込みするのが確実です。 - Excelの[データ]→[テキスト/CSVから]を使い、商品コードなどの列をテキスト(文字列)として読み込みます。
- Excel上で
125になった後からセルの表示形式を「文字列」に変えるだけでは、失われた0は戻りません。
なぜ先頭の0が消えるのか
例えば、次のCSVがあるとします。
商品コード,商品名,数量
00125,封筒,30
00070,コピー用紙,12
このファイルをExcelで直接開くと、先頭の0が付いたコードを数値と判断し、次のように表示することがあります。
| CSVの文字 | Excelが数値として読んだ場合 | 商品コードとして正しい値 |
|---|---|---|
00125 |
125 |
00125 |
00070 |
70 |
00070 |
数値の125と、5桁のコード00125は別の情報です。識別子に数値の計算は必要ありません。商品コードや郵便番号は文字列として扱うのが基本です。
手順1:元のCSVに0が残っているか確認する
- 元のCSVをコピーし、確認用のファイルを作ります。
- コピーしたCSVをメモ帳などのテキストエディターで開きます。
- 対象のコードが
00125のまま書かれているか確認します。
原文が 00125 なら、Excelでの取り込み方を変えることで保持できる見込みがあります。元CSVもすでに 125 なら、元の桁数やコード規則を別資料から確認する必要があります。
注意: Excelで開いて保存したCSVは、値が書き換わっている可能性があります。確認する前に元ファイルを上書きしないでください。
手順2:Excelの「テキスト/CSVから」で読み込む
Windows版Excelの一般的な操作例です。バージョンによってボタン名は多少異なります。
- Excelで新しい空のブックを開きます。
- [データ]タブの[テキスト/CSVから]を選び、対象CSVを指定します。
- プレビュー画面で[データの変換]を選び、Power Queryエディターを開きます。
- 画面右の「適用したステップ」に、自動で列を数値へ変える「変更された型」などのステップがある場合は、元の0が残る状態に戻してから、コード列のデータ型を「テキスト」にします。
- プレビューで
00125と00070が残っていることを確認します。 - [閉じて読み込む]でワークシートに取り込みます。
ここで大切なのは、数値に変換された後で文字列に戻すのではなく、最初から数値に変えないことです。プレビューにすでに 125 と出ている場合は、自動型変換のステップや取り込み設定を見直してください。
桁数が固定なら「00000」の表示形式でもよい?
5桁の数値 125 にユーザー定義の表示形式 00000 を設定すると、画面上は 00125 にできます。ただし、これは見え方を整える方法です。元の値を文字列として保持したことにはなりません。
桁数が5桁と決まっていて、表示だけを整えたい場合には使えます。一方、商品コードを他システムへ渡すCSVや、桁数が一定でない識別子には、文字列として取り込む方法をおすすめします。
読み込み後に確認する3項目
- 先頭ゼロのあるコードが、サンプルと一致しているか。
- コード列に数値と文字列が混在していないか。
- 別の台帳と照合した際に、同じコードが一致するか。
特に管理台帳では、見た目が直っていても照合キーとして使えないことがあります。原文・Excel表示・照合結果の3つで確認すると安心です。
よくある質問
Excelで保存してしまったCSVの0は戻せますか?
保存によって元の0が失われ、原本も残っていない場合、元の桁数が不明なら正確には復元できません。コード規則やバックアップ、取引先からの再取得を確認してください。
先頭にアポストロフィを付ければよいですか?
Excelのセルへ手入力する場合は文字列として扱う方法の一つですが、数千行のCSVを毎回直す用途には向きません。取り込み時に列の型を指定する方が再現性があります。
文字化けも同時に起きています
文字化けは文字コードの問題で、先頭ゼロの消失はデータ型の問題です。別々に確認してください。詳しくはExcelでCSVが文字化けしたときの直し方をご覧ください。
まとめ
CSVをExcelで開いた際の先頭0の消失は、識別子が数値として読み取られることで起こります。元CSVを保持し、[テキスト/CSVから]で対象列を文字列に指定するのが基本です。原文の0が消える前に型変換を止めることが最も重要です。
参考:Microsoft サポート「先頭のゼロおよび大きい数値の保持」
画面の名称や操作は、Officeのバージョンや表示幅などによって異なる場合があります。
