ExcelでCSVを開くと日付に勝手に変わる原因と防ぎ方

Google スプレッドシート(Excel)

CSVに、

1-2
3-4
5-6

というコードが入っていた。

ところがExcelで開いたら、日付のような表示になってしまった。

商品バリエーション、棚番号、管理コードなどを扱っていると起きることがあります。

CSVを編集しただけなのに、触っていない列までExcelが勝手に変えてしまう。

これがCSV作業の怖いところです。

この記事では、日付に見える文字列をExcelでそのまま扱う方法を説明します。


Excelは日付らしい文字を自動変換する

Excelには入力内容を自動で判断する機能があります。

たとえば、

1-2

という文字が入っていると、Excelが日付と判断する場合があります。

人間から見ると管理コードでも、Excelにはその意味までは分かりません。

同じことは、

3/4

のようなデータでも起こります。

商品管理では単なる番号でも、Excel側では日付として解釈される可能性があります。


見た目だけで判断しない

ここで少し厄介なのが、

「画面では1-2と見えているから問題なさそう」

というケースです。

Excelでは、セル内部には日付を表す値が入っていて、表示だけ別の形式になっていることがあります。

その状態でCSVとして保存すると、元の文字列と同じ内容にならない可能性があります。

私はCSV作業では、

画面にどう見えているかではなく、元データと同じ文字列として扱われているか

を重視しています。


日付にしたくない列は文字列として読み込む

対策は、先頭ゼロのときと基本的に同じです。

CSVをダブルクリックでは開きません。


日付変換を防ぐ手順

手順1 元CSVを複製する

原本を残します。


手順2 Excelを起動する

CSVではなく、Excelを先に開きます。


手順3 空白ブックを開く

新しいシートを表示します。


手順4 「データ」をクリックする

Excel上部のメニューを開きます。


手順5 「テキストまたはCSVから」を選ぶ

CSVを読み込みます。


手順6 対象ファイルを選択する

作業用CSVを指定します。


手順7 「データの変換」をクリックする

読み込む前に列の種類を設定します。


手順8 管理コード列を選ぶ

たとえば、

1-2
3-4
5-6

が入っている列です。


手順9 データ型を「テキスト」にする

日付ではなく文字列として扱います。


手順10 ほかの日付化しそうな列も確認する

商品番号や型番も確認します。


手順11 元データと比較する

1-2
3-4
5-6

が変わっていないか見ます。


手順12 Excelへ読み込む

問題がなければシートへ読み込みます。


「12E5」のような商品コードにも注意

日付以外にも、自動変換で困る値があります。

たとえば、

12E5

です。

これは商品コードとしてはただの5文字かもしれません。

しかしExcelでは、

12 × 10の5乗

という数値に見えることがあります。

その結果、

1200000

のように解釈される可能性があります。

そのため、

  • ハイフンを含むコード
  • スラッシュを含むコード
  • Eを含むコード
  • 先頭0を含むコード

は、CSV編集前に一度確認しておくと安心です。


数字に見えるかどうかで判断しない

私はCSVの列を、

「数字が入っているか」

ではなく、

「何のための値なのか」

で判断しています。

たとえば、

1-2

が棚番号なら文字列です。

2026-09-09

が注文日なら日付として扱ってもよいかもしれません。

つまり、

同じ見た目でも用途が違えば扱いも変わります。


日付に変わってしまったあとで直す場合

すでにExcelが日付へ変換してしまった場合は、元CSVを確認するのがおすすめです。

変換後の値から、

1-2

だったのか、

01-02

だったのかを判断できない場合があります。

セルの表示形式を変えるだけで済ませず、原本を確認します。


CSVを扱う前の簡単なチェック

ファイルを開く前に、私は次のようなデータがないか見ます。

  • 1-2
  • 3-4
  • 10-11
  • 3/4
  • 12E5
  • 00123
  • 00001234

こうした値があるCSVなら、直接Excelで開かないほうが安全です。


まとめ

ExcelはCSVの中身を見て、値の種類を自動判断します。

そのため、

1-2
3-4
12E5

のような管理コードが、日付や数値として解釈されることがあります。

対策はシンプルです。

CSVをダブルクリックで開かない
↓
「テキスト/CSVから」で読み込む
↓
コード列をテキストとして指定する

CSV編集では、

「Excelがどう解釈するか」

ではなく、

「元の文字列をそのまま維持できているか」

を見るのがポイントです。

コメント

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