通販サイトからECデータとしてCSVデータを取り込むときに番地が日付になったり郵便番号の最初の0が消えたりする場合の対策

この記事は約5分で読めます。

CSVデータを取り込むBASEなどの通販サイトから販売情報をCSVでダウンロードしたあとにエクセルで読み込むと不具合が発生することがあります。その原因はエクセル側がデータを自動的に「いい感じ」に変換してくれるという親切な機能が「おせっかい」になってしまうということです。
具体的には「1-6-11」という番地が「2001/6/11」という日付に変換されたり、「0540****」という北海道の郵便番号の「最初の0が消えてしまう」という不具合が起きることです。
この不具合を解消する方法を紹介します。

エクセルでCSVデータを読み込む

エクセルはCSVデータを自動的に判別し読み込んでくれます

CSVデータというのは本来はエクセル用のデータではありません。表のようなデータをテキスト形式で表を表すために「,で区切られたテキストデータ」です。

例えば、BASEの販売データをCSVでダウンロードすると、その中身は以下のようになっています。

▼CSVデータをテキストエディタで読み込んだ場合の見え方

上記の例では「注文ID,注文日時,…」というように「,」で区切られたテキストが並んでいることがわかりますね。

CSVをそのままエクセルで開くと…

このようなCSVデータをエクセルで開くとちゃんと表組みになるのですが、一部のセルでは不具合が発生します。

上記の例では
・番地が日付になってしまう
・郵便番号の最初の0が消されてします
ということが起きていますね。

このような不具合を解決する方法としては
・CSV形式の段階で文字をダブルコーテーション「”」でくくる形式にする
とよいです。

例えば「注文ID,注文日時,…」なら「”注文ID”,”注文日時”,”…」というような感じです。ダブルコーテーション「”」でくくられるとそこは「文字列」として認識されるので変な変換はされません。

しかし、膨大なテキストデータをこのように変換するのはかえって大変なので、「出力されているCSVをいかにエクセルで正しく読み込むか」のほうが大事です。

エクセルでは「データ」を選びCSVを読み込む

CSVという拡張子がついたテキストファイルをダブルクリックするとエクセルが自動的に開くという設定になっているPCが多いと思います。
その場合は、まず「空白のブック」でエクセルを開き、そのメニューから「データ」を選択し、「テキストまたはCSVから」をクリックします。

するとファイルを選択する画面になりますので、読み込みたいCSVファイルを選ぶと読み込まれます。

プレビュー画面で確認します

この読み方だとプレビュー画面が表示されるので確認します。

この読み込みの場合は列単位でデータ形式を変更できるようなので問題が起きそうな「住所2」や「郵便番号」のところをチェックしてください。

上記のプレビュー画面では、郵便番号のところが北海道などで頭の0が消えています。これは郵便番号の列が数字データとして判断されていることが原因で、そのため頭の0が自動的に除去されているのですね。

不具合があったら列単位で修正する

ここで列の書式指定を確認しておきましょう。

「123」→セル内が数値の形式になる
「ABC」→セル内が文字列の形式になる

郵便番号は数字ですが計算する必要がありませんので文字列のほうがよいです。文字列なら最初に0がついても自動的に削除されることはありません。

上記のデータでは「住所2」は「ABC」という表示になっていました。「ABC」は文字列であるということです。ですから番地が入っていても日付に変換されずに文字列として読みこんでくれます。

しかし、郵便番号のところは「123」という数値の形式でした。そこで、郵便番号の列は「文字列」で読み込むことに変更します。

郵便番号のセルのところをクリックすると、書式設定を変更することができます。ここで「123」を「ABC」に変更することができますので、「ABC」に変更してから保存します。

すると、郵便番号は頭に0があってもすべて7桁の数字(のような文字列)にて表示することができます。

マイクロソフトのヘルプでも使い方を確認してください

エクセルのオンラインヘルプ

Excel のヘルプとラーニング
Microsoft Excel のヘルプと学習リソースを見つけます。 Excel を効率的に使用するためのハウツー記事、ガイド、トレーニング ビデオ、ヒントについて説明します。
テキスト (.txt または .csv) ファイルのインポートまたはエクスポート - Microsoft サポート
テキスト ファイルをインポートするには、ファイルを開くか、テキスト ファイルを外部データ範囲としてインポートします。 テキスト ファイルをエクスポートするには、 コマンドを使用します。

上記にマイクロソフトの解説がありますので参考までに。