サク箱

ExcelとCSVの行き来で、値が壊れないようにする

先頭の0が消える、日付が勝手に変わる、文字が化ける。この3つの直し方

更新日:

何が起きているのか

CSVは値を並べただけの文字のファイルで、「これは文字列」「これは数値」という区別を持ちません。そのため、開いたソフトが中身を見て推測します。Excelの推測は、実務ではしばしば裏目に出ます。

代表的なのが、郵便番号の先頭の0が消える、商品コードが日付として表示される、長い数字が指数表示になる、の3つです。

先頭の0が消える

0120や0570で始まる番号、商品コード、会員番号は、数値と判断されると先頭の0が落ちます。CSVの中には残っているので、ファイルが壊れたわけではありません。

当サイトのExcelをCSVに変換は、数字に見える文字列を勝手に数値へ変えずに書き出します。Excelで開くときに「データ」タブから読み込み、その列を「文字列」として指定してください。

コードが日付になる

1-2や3/4のような値は、Excelが日付だと判断して「1月2日」に変えてしまいます。いったん変わると、元の文字列には戻せません。

防ぐには、読み込むときにその列を文字列として指定するのが確実です。すでに変わってしまったファイルは、元のCSVから読み込み直してください。

文字が化ける

日本語が化けるのは文字コードのずれです。CSVの文字コードを変換でBOM付きUTF-8に変換しておくと、Excelでダブルクリックしても化けません。相手のシステムがShift_JISを求める場合だけ、そちらへ変換します。

Shift_JISには絵文字や一部の漢字がありません。書けない文字があるときは、実行の前に画面でお知らせします。

行き来する前に、形を整えておく

列が多すぎて扱いにくいときはCSVの列を選ぶ・並べ替えるで必要な列だけにできます。重複した行はCSVの重複行・空行を削除で取り除けます。ファイルを渡す前に整えておくと、相手の手間も減ります。

ExcelへCSVを戻すときはCSVをExcelに変換を使ってください。ただし、元のExcelにあった罫線や数式は戻りません。

壊れていないかを、渡す前に確かめる

書き出したCSVは、そのまま渡す前に一度開いて、1行目の見出しと、番号の列を目で見てください。先頭の0が残っているか、日付の列が意図した形かは、数秒で分かります。事故のほとんどは、この確認を飛ばしたときに起きています。

件数が多い場合は、先頭と末尾の数行だけでも見ておくと、途中で列がずれていないかに気づけます。

やり取りの形を決めておく

同じ相手と繰り返しやり取りするなら、文字コードと区切り、列の順番を決めて文書に残しておくと、担当が変わっても同じところでつまずきません。

取り込むシステムがある場合は、その仕様書に書かれた形式に合わせるのが最優先です。見た目が同じでも、区切りや改行の違いで弾かれることがあります。

よくある質問

Excelで開かずに中身を見られますか?
CSVを表として見るで表として確かめられます。Excelの推測が入らないので、ファイルの本当の中身が分かります。
数式はCSVに残りますか?
残りません。CSVは値だけを持つ形式なので、数式のセルは計算結果の値になります。
複数のCSVを1つにまとめられますか?
CSVを結合で結合できます。列の並びが同じファイル同士でお使いください。
ファイルはどこかへ送られますか?
送られません。変換も確認も、すべてブラウザの中だけで行います。顧客名簿のような持ち出せないファイルでも扱えます。

この記事で使う道具

記事で紹介しているツールは、すべて登録不要・ブラウザ内で動きます。