ExcelファイルをCSVで保存したら列が崩れた、CSVをExcelで開いたら「繧オ繝シ繝薙せ」みたいな呪文になった—— ExcelとCSVを行き来するたびに起きる文字化け・データ崩れ・区切り文字の誤認識は、 仕事でファイルを扱う人なら一度は経験する壁です。 この記事では、その原因と対策を手順ベースで解説します。 UTF-8・Shift_JIS・BOM の違いも図解し、どの設定を選べばよいかをはっきり示します。
ExcelをCSVに保存する方法
ExcelファイルをCSVに変換する基本操作は「名前を付けて保存」です。 ただし保存形式の選び方を間違えると、後で文字化けやデータ崩れの原因になります。
Windows(Excel 2016以降)
- 対象の Excel ファイルを開く
- 「ファイル」→「名前を付けて保存」を選択
- ファイルの種類のドロップダウンから 「CSV UTF-8(コンマ区切り)(.csv)」 を選ぶ
- ファイル名を入力して「保存」をクリック
「CSV(コンマ区切り)」という似た選択肢がありますが、こちらは Shift_JIS で保存されます。 Googleスプレッドシートやプログラムで使うなら必ず「CSV UTF-8」を選んでください。
Mac(Numbers)
- ファイルを開き、メニューバーの「ファイル」→「書き出す」を選択
- 「CSV」を選択
- テキストエンコーディングが「Unicode(UTF-8)」になっていることを確認して「次へ」
- 保存先とファイル名を指定して「書き出す」
CSVをExcelで正しく開く方法
CSV ファイルをダブルクリックで開くと、Excel がエンコーディングを自動推測します。 BOM なしの UTF-8 ファイルを Windows 版 Excel でダブルクリックすると、 Shift_JIS として読んでしまい文字化けします。 確実に開くには「データ」タブからのインポートを使います。
- Excel を起動し、新しいブックを開く
- 「データ」タブ →「データの取得」→「テキストまたは CSV から」を選択
- 対象の CSV ファイルを選んで「インポート」
- 「ファイルの起点」ドロップダウンで文字コードを指定
- UTF-8 のファイル:
65001: Unicode (UTF-8) - Shift_JIS のファイル:
932: 日本語 (シフト JIS)
- UTF-8 のファイル:
- 区切り記号が「コンマ」になっていることを確認して「読み込み」
どの文字コードか分からない場合は、文字コード確認ツールにCSVをドロップすれば自動で判定できます。
文字化けの原因と対策
文字化けは「保存したときの文字コード」と「開くときに想定した文字コード」のズレが原因です。 日本語の「あ」という文字は、Shift_JIS では2バイト(0x82A0)、 UTF-8 では3バイト(0xE38182)で表現されます。 開く側が間違ったルールで解読すると、意味不明な文字列が表示されます。
Shift_JIS と UTF-8 の比較
| Shift_JIS | UTF-8 | |
|---|---|---|
| 対応文字 | ASCII と日本語 | 世界中すべての文字 |
| 日本語1文字のサイズ | 2バイト | 3バイト |
| Excel(Windows)既定 | Shift_JIS で書き出す | BOM付きなら自動認識 |
| Web・API 連携 | 非推奨(文字化けリスク大) | 事実上の標準 |
BOM(Byte Order Mark)の役割
BOM はファイルの先頭に置く3バイト(EF BB BF)の目印です。 Excel はこれを見つけると「UTF-8 で書かれている」と判断し、ダブルクリックでも文字化けしません。
ただし BOM は万能ではありません。Python・Node.js・Ruby などのプログラムで CSV を読む場合、 BOM が最初のセルの値として混入しバグの原因になることがあります。Excelで開くなら BOM付き、プログラムで処理するなら BOMなし、と用途で使い分けるのが実務的です。
ブラウザツールで変換する方法
ExcelとCSVの相互変換を手軽に行うなら、ぱんだツールズのツールが便利です。 処理はすべてブラウザ内で完結し、ファイルがサーバーに送信されないため、 機密データを含むファイルでも安心して使えます。
- CSV↔Excel変換— CSV を Excel(.xlsx)に、または Excel を CSV に変換。文字コードを選択してダウンロードできます。
- Excel→CSV一括変換— 複数の Excel ファイルをまとめて CSV に変換。文字コードを統一して出力できます。
- CSV文字コード変換— 既存のCSVのエンコーディングを Shift_JIS ↔ UTF-8 で変換。既存ファイルの文字化けをすぐ直せます。
まとめ
- ExcelでCSVを保存するときは「CSV UTF-8(コンマ区切り)」を選ぶ。「CSV(コンマ区切り)」を選ぶと Shift_JIS になる
- CSVをExcelで開くときはダブルクリックを避け、「データ → テキストまたはCSVから」でエンコーディングを指定してインポートする
- 文字化けの原因は「保存時の文字コード」と「読み込み時の想定」のズレ。BOM付き UTF-8 にすれば Excel と Web 系の両方で最大限互換性が取れる
- 複数ファイルの一括変換やエンコーディング変換は、ブラウザ内変換ツールを使えばマクロ不要で処理できる