CSVファイルをExcelで開いたときに、
「00123 → 123 になってしまう」
という現象に困ったことはありませんか?
特に、以下のようなデータでよく発生します。
- 郵便番号
- 社員番号
- 商品コード
- 顧客ID
この問題は一見すると単純ですが、原因を知らないと何度でも繰り返してしまいます。
この記事では、先頭の0が消える原因と、確実に防ぐ方法を3つ解説します。
なぜCSVを開くと0が消えるのか?
原因はシンプルで、Excelが自動的に「数値」と判断してしまうためです。CSVはただのテキストファイルなので、「00123」という値も単なる文字列として保存されています。
しかしExcelで直接開くと、
- 数字だけ → 数値として解釈
- 先頭の0 → 不要と判断して削除
という動きになります。つまり、Excel側の「親切機能」が逆にトラブルの原因です。
対処法①:インポート時に「文字列」として読み込む
一番おすすめなのは、CSVを直接開かずにインポートする方法です。
手順
1.Excelを開く
2.「データ」タブ → 「テキストまたはCSVから」をクリック

3.CSVファイルを選択し、「インポート」をクリック

4.区切り記号「コンマ」(デフォルト)、データ型検出「データ型を検出しない」を選択

5.「読み込み」をクリック

これで、先頭の0を完全に保持したまま取り込めます。

ポイント
「ダブルクリックで開かない」が重要です。
対処法②:後から修正する方法
すでに取り込んでしまった場合でも、復元は可能です。
方法①:TEXT関数を使う
例えば5桁のコードなら:
=TEXT(A1,"00000")
これで「123 → 00123」に戻せます。
方法②:表示形式を変更
1.対象列を選択し、右クリック → 「セルの書式設定」を選択

2.「ユーザー定義」を選択し、「00000」と入力

注意 これは見た目だけの変更なので、元データは数値のままです。
対処法③:CSV側で対策する
業務で頻繁に使う場合は、CSV側で対策するのが最も安全です。
方法①:ダブルクォーテーションで囲む
CSV内を以下のようにする:
"00123"
こうするとExcelは文字列として認識します。
方法②:先頭にシングルクォートを付ける
'00123
これも強制的に文字列扱いになります。
どの方法を使うべきか?
おすすめは以下の通りです。
- 単発対応 → インポート方法(対処法①)
- すでに壊れた → TEXT関数(対処法②)
- 業務改善 → CSV側修正(対処法③)
まとめ
CSV取り込みで先頭の0が消える原因は、Excelが自動で数値変換してしまうことです。
防ぐには以下のいずれかを使いましょう。
- インポート時に「文字列」を指定する
- TEXT関数で復元する
- CSV側で文字列として出力する
この問題は地味ですが、業務ミスにつながりやすい重要ポイントです。
一度対処法を覚えておけば、今後は迷わず対応できます。
