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がどう解釈するか」
ではなく、
「元の文字列をそのまま維持できているか」
を見るのがポイントです。


コメント