CSVをExcelで開くと先頭の0が消える原因と対処法

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

CSVをExcelで開いたら、

001245 → 1245
0600042 → 600042

のように、先頭の0が消えてしまった。

商品コードや郵便番号を扱っていると、よく起きるトラブルです。

しかも厄介なのは、Excel上では普通に開けているため、すぐには異常に気づかないこと。

編集して保存したあと、アップロード先でエラーになって初めて気づくこともあります。

この記事では、商品コード・郵便番号・注文管理番号などの先頭ゼロを消さずにCSVをExcelで扱う方法を説明します。


なぜExcelで先頭の0が消えるのか

Excelは、

001245

というデータを見ると、

「これは数字の1245だろう」

と判断することがあります。

数値として扱う場合、

001245

も、

1245

も同じ数値です。

そのため、先頭の0が省かれます。

ですが、商品コードや郵便番号の場合は事情が違います。

たとえば、

001245

という商品コードと、

1245

という商品コードは、システム上では別の値として扱われることがあります。

郵便番号も同じです。

0600042

から0が消えると、

600042

になってしまいます。

計算するための数字ではなく、識別するための番号だからです。


商品コードは「数値」ではなく「文字列」と考える

CSVを扱うとき、私は次のように考えています。

足し算するもの → 数値
人・商品・注文を見分けるもの → 文字列

たとえば、

数量:3
価格:1280
在庫数:15

こうした値は計算に使うので数値です。

一方、

商品コード:001245
郵便番号:0600042
注文番号:00001234

こうした値を足したり掛けたりすることはありません。

そのため、Excelでは文字列として扱うほうが安全です。


CSVをダブルクリックで開かない

一番簡単な対策はこれです。

CSVファイルをダブルクリックしてExcelで開かないこと。

ダブルクリックすると、Excelが各列の内容を見て、

「これは数字」

「これは日付」

と自動で判断します。

その結果、先頭の0が消えることがあります。


先頭ゼロを残してCSVを開く手順

手順1 元のCSVをコピーする

まず原本を残します。

たとえば、

orders.csv

をコピーして、

orders_作業用.csv

にします。


手順2 Excelだけを起動する

CSVはまだ開きません。

先にExcelを起動します。


手順3 空白のブックを開く

新しいExcelファイルを開きます。


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

Excel上部の「データ」タブを選びます。


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

Excelのバージョンによっては、

データ
↓
データの取得
↓
ファイルから
↓
テキスト/CSVから

となっています。


手順6 編集したいCSVを選ぶ

先ほどコピーした作業用CSVを選択します。


手順7 「データの変換」を選ぶ

すぐに読み込まず、データの変換画面を開きます。


手順8 商品コード列を選ぶ

商品コードが入っている列をクリックします。


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

数値ではなく、テキストとして扱います。


手順10 郵便番号列もテキストにする

同じ方法で設定します。


手順11 注文番号などもテキストにする

先頭0を残したい列は同じように設定します。


手順12 Excelへ読み込む

値を確認してからシートへ読み込みます。


「セルの書式設定」で直せない場合がある

ここで注意したいのが、

001245

がすでに、

1245

になったあとに、

「セルの書式設定を文字列にすれば戻るのでは?」

という方法です。

これは元の値を復元する方法にはなりません。

Excelがすでに、

001245 → 1245

と変換してしまったあとでは、先頭に何個0があったのか分からないからです。

6桁の商品コードだと分かっているなら、

001245

と見せる設定はできます。

ですが、それは表示を調整しているだけです。

CSVを外部システムへ再登録する用途なら、原本から文字列として読み直したほうが確実です。


すでに先頭0が消えていたらどうするか

元CSVを確認してください。

たとえば元データが、

001245

なのか、

0001245

なのかは、変換後の、

1245

だけを見ても判断できません。

商品コードなどを推測で戻すのは避けます。

原本や管理システムから確認します。


CSV編集前に確認しておきたい列

CSVをExcelで編集するときは、次のような列がないか先に見ています。

  • 商品コード
  • SKU
  • JANコード
  • 郵便番号
  • 電話番号
  • 注文番号
  • 顧客ID
  • 伝票番号
  • 管理番号

数字だけで構成されていても、計算に使わない番号なら文字列候補です。


まとめ

CSVをExcelで開いたときに先頭の0が消えるのは、Excelがその値を数値として判断するためです。

対策は、

CSVを直接開かない
↓
「テキスト/CSVから」で読み込む
↓
商品コードや郵便番号をテキスト型にする

という流れです。

商品コードや郵便番号は、

「数字に見える文字列」

として扱う。

この考え方を覚えておくと、CSV編集時のミスをかなり減らせます。

コメント

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