CSV形式の使い方や表示の仕方を考える

CSVファイル関係でよくある問題について

CSVファイルはデータベース連携などでよく使われる定番の方法です。しかしこれにも知らないと大きな失敗に繋がる問題があります。
データ入力の作業でも定番中の定番であり、こういったデータを扱う際に気を付ける点があります。
特にCSVファイルの読み込み(インポート)を通常方法で取り込むと危険な場合があります。気づいた後では作業の大きな後戻りが発生することのないよう、事前に意識しておくべき点について説明します。

ExcelからCSV作成の流れ(Excel→CSV)の確認

例1:CSV前の商品リスト
商品リスト表イメージ

【解説】
上記を見て既にお気づきの方もいらっしゃるかもしれませんが、ここで見ていただきたいのは「商品名」です。
上記商品リストのファイルをCSVで保存します。
保存ダイアログボックス

なお、余談ですがCSVは1シート分のデータしかCSVにできません。従いまして「シート2」、「シート3」にもデータが有る場合は無視されます。

■例2:CSVで保存したファイルをテキストで開く
CSVをテキスト形式で開く

上記の青く網掛けしてある部分が注目データです。Excel→CSVまでは問題ありません。

上記で作成したCSVをExcelで取り込んでみる(CSV→Excel)

ではそれを今度は、このCSVファイルをExcelで開いて見たのが下記画像です。
CSVを再度読み直し

矢印にあるように元々商品名「1-1」だったデータがExcelに読み込ませると「1月1日」になりました。
これはExcelの仕様です。通常セルに入力する際も「1-1」で「1月1日」と表示されますが同じ仕組みがExcelで使われていると思われます。

この問題に対処する方法を考える

上記で説明したような「商品名」で「1-1」や「12-25」などをExcelで読み込む場合、Excelが勝手に日付と判断しては困る場合があります。
これを回避する方法のつもりで例えば下記のように「セルの書式設定」で「文字列」に変えます。

■例3:書式を変えてCSV保存(失敗します)
セルの書式設定

書式設定を変えてCSV形式で保存したもののそれでも同じ結果になります。
なお文字の先頭に「'(シングルクォーテーション)」を入れても同様です。
CSVをもう一度Excelで開く

■例4:日付として読み込まれない回避方法

データの取り込みウィザード画面
上記のように「テキストファイル」として取り込むことで回避できます。
下の方の画像は、ウィザード3/3で「商品名」を選択し、画面右上のところで「文字列」を選び今回の問題を回避します。
なお、この機能だと文字コードの指定もできるので例えばGoogle AnalyticsのCSV(UTF-8)も開くことができる便利な機能です。
VBAを使うことでも回避できますが、この方法が一般的回避方法だと思います。


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