BlueprintLab Quick Guide
CSVをExcelで開いたら文字化けした、全部A列に入った。まずどこを見ればいい?
文字化け、全部A列、途中だけ列ずれ。似て見えるCSVトラブルを、原因別に順番に切り分けます。
CSVをExcelで開いたら、日本語がいきなり意味不明な文字になった。
もう一回ダウンロードしてみても、やっぱり同じ。
あるいは文字はちゃんと読めるのに、本来は表になるはずのデータが全部A列に入っている。
こうなると「元のCSVがおかしいのでは?」と思いたくなるんですが、実はそうとも限らないんですよ。
CSVそのものは無事で、Excelがファイルの読み方を取り違えているだけということがけっこうあります。
しかも少しややこしいのが、
- 日本語がおかしい
- 全部A列に入る
- 途中の行だけズレる
この3つ、見た目は似ていますが原因が別なんです。
なので、いきなりCSVを作り直すより、まず「何がおかしいのか」を分けて見た方が早いです。
まず見たいのは「文字」なのか「列」なのか
「譁」「縺」みたいな文字になっている
これは、文字の読み方が合っていない可能性が高いです。
ここで出てくるのが UTF-8 と Shift_JIS です。
名前だけ見ると急に難しくなった感じがしますが、いまは「日本語を数字として保存するときのルールが何種類かある」くらいの理解で十分です。
例えば、CSVを作った側はUTF-8で保存した。でもExcelはShift_JISだと思って読んだ。
すると、同じ数字の並びを別のルールで日本語へ戻してしまうので、文字がぐちゃっとなります。
ファイルが壊れたように見えるんですが、実際には読解ルールが食い違っているだけなんです。
文字は読める。でも全部A列
こちらは文字コードではなく、区切り文字を見ます。
CSVという名前なので「カンマで区切られているに決まっている」と思うんですが、実際にはタブやセミコロンで区切られたファイルが渡されることもあります。
例えば、これはカンマ区切りです。
name,age,city
山田,35,東京
こちらはセミコロン区切り。
name;age;city
山田;35;東京
人間が見ると違いは一目ですが、Excelが「カンマで区切るファイルだ」と思っているところへセミコロン区切りのデータを渡すと、区切る場所を見つけられません。
その結果、1行丸ごとA列へ入ります。
「あれ、文字は読めているのに表にならない」というときは、こっちです。
途中の行だけズレる
これはもう少し別の話で、値の中に入っているカンマや改行、それを囲むダブルクォートの扱いが崩れている可能性があります。
例えば住所にカンマが入る場合、本来はこうします。
name,address
山田,"東京都渋谷区,神南1-2-3"
住所全体を " で囲って、「この中のカンマは列の区切りじゃないですよ」と伝えているわけです。
この " が片方だけ消れたりすると、Excelは住所の途中のカンマまで列の区切りだと思います。
すると、ある行から突然ズレ始めます。
ここまで分けられれば、かなり話が簡単になります。
文字化けなら、CSVをダブルクリックする前にExcelを開いてみます
Windows版Excelなら、CSVをそのままダブルクリックするより、Excel側からCSVを読み込む方が安全です。
やることは次の通りです。
- Excelを先に起動します。
- 上の [データ] を開きます。
- [テキストまたはCSVから] を選びます。
- 問題のCSVを指定します。
- 読み込み前のプレビューを見ます。
- 文字コードを切り替えて、日本語が普通に見えるところを探します。
UTF-8なら、Excel上では 65001: Unicode (UTF-8) のように表示されることがあります。
ここで日本語がすっと読める状態に戻ったら、ひとまず安心です。
CSVが壊れていたわけではなくて、最初の読み方が合っていなかった、ということです。
ファイルを作り直すのは、その後で十分です。
UTF-8かShift_JISか分からない。それは普通です
ここで「じゃあ、このCSVはUTF-8なの? Shift_JISなの?」となるんですが、ファイル名を見ても分かりません。
.csv としか書いていないので、知らなくて当然なんです。
作成元のシステムに「UTF-8で出力」「Shift_JISで出力」という選択肢があったなら、そこを見るのが一番確実です。
ただ、もうファイルしか手元にないこともありますよね。
その場合は、わざわざ仕様書を探し回るより、CSV文字コード・区切り文字チェッカーへ入れてプレビューを見た方が早いです。
- CSV文字コード・区切り文字チェッカー — UTF-8 / Shift_JIS と区切り文字の候補を確認する
文字コードを切り替えて、日本語が自然に読める方を見る。それで十分です。
「全部A列」なら、同じ画面で区切り記号を変えます
Excelの[テキストまたはCSVから]で読み込むと、区切り記号も選べます。
まずカンマ。
ダメならタブ。
それでも違えばセミコロン。
この順で見ればだいたい切り分けできます。
タブだけは少し分かりづらくて、テキストエディタで開いても「ちょっと広い空白」にしか見えないことがあります。
なので、目で探すより読み込み画面のプレビューで切り替えた方が楽です。
列がパッと正しい位置へ分かれたら、その区切り文字が当たりです。
実は、CSVでちょっと怖いのは「開けない」ことではありません
ここ、けっこう大事です。
文字化けしていれば「何かおかしい」とすぐ気付きます。
全部A列でも、さすがに気付きます。
でも、普通に表として開けているのに、中の値だけExcelが勝手に変えていることがあるんです。
こちらの方があとで気付きにくいので、むしろ厄介です。
例えば商品コードが、
001234
だったとします。
Excelがこれを数字だと判断すると、
1234
と表示することがあります。
数字としては同じ。でも商品コードとしては別物ですよね。
1-2 のような値を日付だと判断することもあります。
CSVってExcelのファイルっぽい顔をしているんですが、中身はかなり素朴なテキストファイルなんです。
一方のExcelはかなり親切で、「これは数字でしょう」「これは日付でしょう」と先回りして解釈してくれます。
普段はその親切さが便利なんですが、商品コードやIDでは余計なお世話になることもあるんですよ。
なので、大事なCSVは最初にコピーを1つ残しておきます
これは地味ですが、かなり大事です。
元CSVを直接開いて、そのまま上書き保存してしまうと、Excelが変換した値で保存されることがあります。
あとから「先頭の0が消えてる」と気付いても、元データが残っていないと戻すのが面倒です。
なので、業務データや商品データなら、まずコピーを1つ。
そのコピーで読み込み方を試す。
これだけでだいぶ安心です。
迷ったら、この順で見れば大丈夫です
日本語が読めない
→ 文字コードを見る。
文字は読めるけど全部A列
→ 区切り文字を見る。
一部の行だけズレる
→ カンマ・改行・ダブルクォートを見る。
普通に開けるけど、先頭0や日付が変わる
→ Excelの自動変換を疑う。
BlueprintLabでは、症状ごとに次のツールが使えます。
- CSV文字コード・区切り文字チェッカー — 文字コードと区切り文字の候補を確認する
- Excelで崩れたCSVチェッカー — 先頭ゼロ・日付化・指数表記など、Excel特有の変換を確認する
- CSVクレンジング — 空行・重複・不要列などをまとめて整理する
- Excel ⇄ CSV変換 — ExcelファイルとCSVを相互変換する
CSVは、一見すると「Excelで開けばいいだけ」に見えるんですが、実はその“開き方”のところに小さな落とし穴がいくつかあります。
でも、全部を覚える必要はありません。
文字・列・自動変換。まずこの3つに分けて見る。
困ったときは、ここから始めればかなり切り分けやすくなります。
仕組みまで整理したいとき
このトラブルの直し方だけでなく、CSVの構造・UTF-8/BOM・引用符・Excelの自動変換まで一度まとめて理解したい場合は、CSV完全ガイドへ進めます。