業務用アプリケーションは、CSVファイルにデータを出力する機能がついていることがよくあります。
「一度データをファイルの形にしてから、別のアプリケーションに読み込ませてデータを移す」
というのが主な使い方になります。
ExcelでもCSVファイルを取り扱うことができ、通常のExcelファイルと同じ感覚で使用することが出来ます。
ところが、CSVファイルを本当にExcelファイルと同じように扱ってしまうと――
「せっかくデザインを見やすく変えたのに元に戻ってしまった」
「正常に取り込めない」「商品コードが変わってしまった」
――と、思わぬ弊害につながってしまうおそれがあります。
なぜこのようなことが起きてしまうのでしょうか。
対処法も含め、考えてみたいと思います。
ExcelでCSVを読み込んだときに何が起きるか
Excelには、自動的に書式を判断して設定する機能があります。
CSVファイルを読み込んだ際に「これは数値っぽいデータだな」と、
Excelが判断し、書式を自動的に設定します。
Excelファイルはセルごとに書式が設定されています。
用途に合った書式を選択することで、より分かりやすい形式でデータを表示できるというものです。
しかし、この「自動的に判断する」という部分に不都合があり、判断が正確でない場合があります。
本来の値を別の値に書き換えてしまうのです。
例えば、「000001」のような商品コードのデータを読み込んだ時に、
Excelは「これは全部数字だから数値だ」と判断してしまいます。
その結果、Excelは「000001」を「1」に変換して読み込みます。
数値ならば「000001」と「1」はイコールであり、0は余計だからです。
このCSVファイルを使って商品取り込み処理を行うと、
「1」という別の商品コードを持った新しいデータが出来てしまいます。
「12345678901234567890」といった数値だけの長いIDのようなデータは、
「1.23457E+19」と指数変換してしまいます。
日付でも「2023-04-06」といったデータは「2023/4/6」に書き換えてしまいます。
どれも、CSVファイルを正常に取り込めなくなる原因となります。
ExcelでCSVを保存したときに何が起きるか
CSVファイルを保存しようとしたときに、下記のような確認ダイアログが出ます。
一部の機能とありますが、いったい何が失われるのか。確かめてみます。
CSVファイルをExcel上で開き、下記のようなデータを入力しました。
計はSUM関数で合計しています。
そして、これを上書き保存します。
この段階では特に問題はないように思えますが、一度ファイルを閉じて、
再度このファイルを開くと、下記のような表示になります。
色情報は全て失われています。
中央寄せ、罫線、列や行の幅、セルの結合、フォントの情報もなくなってしまっています。
見た目からはわかりにくいですが、計のSUM関数が無くなり、合計後の値だけ残った状態です。
さらに、複数をシートを作っていた場合は、入力中だったシート以外は丸ごとなくなってしまいます。
なぜなくなってしまうのか。
その答えは、CSVファイルをメモ帳で読み込んでみるとわかります。
CSVファイルの正体はテキストファイル。
ただいくつかの項目をカンマと改行で区切っただけのファイルです。
それもそのはず。CSVはCamma Separated Values(カンマで区切られた値)の略です。
カンマで列を、改行で行を表現しているだけであり、
それ以外の文字列は全て入力値とみなされます。
そのため、書式情報を持つことができないのです。
どうすればExcelでCSVファイルを正しく取り扱えるか
ここまでの情報でネガティブなイメージが生まれてしまっているかもしれませんが、
CSVファイルはデータの管理が手軽に出来るファイル形式なのは間違いありません。
ExcelでCSVファイルを正しく読み込む方法はちゃんと用意されています。
以下はExcel 2016での手順となります。
1. 「ファイル」タブから「新規」を押し、空白のブックを開く
2. 「データ」タブの「外部データの取り込み」から「テキストファイル」を選択
3. 読み込ませたいCSVファイルを選ぶ
4. 「次へ」を押す
5. 「区切り文字」の中から「カンマ」にチェックを入れて「次へ」を押す
6. データのプレビュー欄で列をクリック
列のデータ形式の「G/標準」を「文字列」に選択し直す
(これを全列分くりかえしてから「完了」を押す)
7. 「OK」を押す
文字だけではわかりにくいため、以下に画像付きの手順を示します。
こうすると、Excelファイル上にCSVファイルのデータを正しく転写することができます。
実際にやってみます。
そのまま開いてしまうと別の値になってしまうCSVファイルを用意します。
上記のCSVファイルを、直接ダブルクリックして開いた場合と、
先の方法で読み込んだ場合とで見比べてみます。
正しく読み込むことが出来ました。
CSVファイルを専門に扱える便利なフリーソフトなどもあるのですが、
未指定のフリーソフトの導入が禁止されていたりなど、Excelしか使えない状況も多々あります。
覚えておけば、役に立つ時が来るかもしれません。
他にも下記情報を投稿していますので、興味がございましたらご覧ください。
エクスプローラでのファイル選択のしかたに、ちょっとした変化を
マウスホイールをタブブラウザでより効果的に活用する