CSV取り込みで先頭の0が消える原因と対処法|Excelで確実に防ぐ3つの方法

Excel全般

CSVファイルをExcelで開いたときに、
「00123 → 123 になってしまう」
という現象に困ったことはありませんか?

特に、以下のようなデータでよく発生します。

  • 郵便番号
  • 社員番号
  • 商品コード
  • 顧客ID

この問題は一見すると単純ですが、原因を知らないと何度でも繰り返してしまいます。
この記事では、先頭の0が消える原因と、確実に防ぐ方法を3つ解説します。

なぜCSVを開くと0が消えるのか?

原因はシンプルで、Excelが自動的に「数値」と判断してしまうためです。CSVはただのテキストファイルなので、「00123」という値も単なる文字列として保存されています。
しかしExcelで直接開くと、

  • 数字だけ → 数値として解釈
  • 先頭の0 → 不要と判断して削除

という動きになります。つまり、Excel側の「親切機能」が逆にトラブルの原因です。

対処法①:インポート時に「文字列」として読み込む

一番おすすめなのは、CSVを直接開かずにインポートする方法です。

手順

1.Excelを開く

2.「データ」タブ → 「テキストまたはCSVから」をクリック

csv取り込み

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

csv取り込み

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

csv取り込み

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

csv取り込み

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

Excel

ポイント

「ダブルクリックで開かない」が重要です。

対処法②:後から修正する方法

すでに取り込んでしまった場合でも、復元は可能です。

方法①:TEXT関数を使う

例えば5桁のコードなら:

=TEXT(A1,"00000")

これで「123 → 00123」に戻せます。

方法②:表示形式を変更

1.対象列を選択し、右クリック → 「セルの書式設定」を選択

セルの書式設定

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

セルの書式設定

注意
これは見た目だけの変更なので、元データは数値のままです。

対処法③:CSV側で対策する

業務で頻繁に使う場合は、CSV側で対策するのが最も安全です。

方法①:ダブルクォーテーションで囲む

CSV内を以下のようにする:

"00123"

こうするとExcelは文字列として認識します。

方法②:先頭にシングルクォートを付ける

'00123

これも強制的に文字列扱いになります。

どの方法を使うべきか?

おすすめは以下の通りです。

  • 単発対応 → インポート方法(対処法①)
  • すでに壊れた → TEXT関数(対処法②)
  • 業務改善 → CSV側修正(対処法③)

まとめ

CSV取り込みで先頭の0が消える原因は、Excelが自動で数値変換してしまうことです。
防ぐには以下のいずれかを使いましょう。

  • インポート時に「文字列」を指定する
  • TEXT関数で復元する
  • CSV側で文字列として出力する

この問題は地味ですが、業務ミスにつながりやすい重要ポイントです。
一度対処法を覚えておけば、今後は迷わず対応できます。

 

タイトルとURLをコピーしました