ExcelでCSVファイルを開いたとたん、文字が「“  」のように化けてしまった経験はありませんか?
原因のほとんどは「文字コードの不一致」です。CSVがUTF-8で保存されているのに、Excelがそれを別の文字コード(Shift-JIS)として読み込んでしまうため、文字化けが起きています。
私もフリーランスのブロガーとして日々データを扱う中で、UTF-8のCSVを二度見したくなるほど文字化けさせたことがあります。でも安心してください。手順を知ってしまえば、2〜3分で確実に直せます。
この記事では、ExcelでCSVが文字化けする根本的な原因から、UTF-8を正しく開く具体的な手順、さらに再発を防ぐ設定まで、まとめて解説します。
ExcelでCSVが文字化けする根本的な原因
文字化けを直すには、まず「なぜ起きるのか」を理解しておく必要があります。
原因を知らずに対処すると、別の方法を試すたびに時間を浪費してしまうからです。
文字コードの不一致が原因のほぼすべて
CSVファイルには「文字コード(エンコード)」という、文字をどのルールで数値に変換するかの規格が存在します。代表的なものは以下の2種類です。
| 文字コード | 主な使われ方 | Excelとの相性 |
|---|---|---|
| UTF-8 | Webサービス・システム出力・Google スプレッドシートのエクスポート | そのままダブルクリックすると文字化けしやすい |
| Shift-JIS(CP932) | 旧来の日本語Windowsアプリ・古い業務システム | ダブルクリックで正常に開ける |
Excelはデフォルトで「Shift-JIS」を想定してCSVを読み込みます。
そのため、Webからダウンロードしたような「UTF-8」で保存されたCSVを単純にダブルクリックすると、文字コードが違うまま解釈されてしまい、文字化けが発生するというわけです。
BOM(Byte Order Mark)の有無が見逃せない
UTF-8にはさらに2種類あります。「BOM付きUTF-8」と「BOMなしUTF-8」です。
BOMとは、ファイルの先頭に付加される短い識別子で、Excelはこれを手がかりに「このファイルはUTF-8だ」と判断できます。
つまり、BOM付きUTF-8のCSVはダブルクリックだけで正常に開けるのですが、Webサービスやシステムが自動出力するCSVは「BOMなしUTF-8」が大半です。これが文字化けの主犯です。
ExcelでCSVの文字化けを直す3つの方法
文字化けを直す方法は大きく3つあります。使っているExcelのバージョンや用途によって最適な手順が変わるので、自分の状況に合ったものを選んでみてください。
方法①「データ」タブの標準機能(テキストまたはCSVから)で開く
最もオーソドックスで確実な方法がこちらです。
CSVをダブルクリックせず、Excelからインポートする手順を踏むことで、文字コードを「UTF-8」と明示して開けます。
なお、Excel 2013以前などの古いバージョンでは「テキストから」という項目をクリックすると、昔ながらの「テキストファイルウィザード」が起動します。
画面は違いますが、元の文字コードに「UTF-8」を指定する流れは同じです。
方法②:Power Query「エディター」で変換設定を保存する(繰り返し使う場合)
同じCSV(毎月の売上データなど)を定期的に更新・再取り込みするケースでは、プレビュー画面で「読み込み」ではなく「データの変換」を選び、Power Queryエディターを経由する方法が便利です。
一度設定しておけば、次回以降は「更新」ボタンひとつで最新データを取り込めるようになります。
方法③:メモ帳で「BOM付きUTF-8」として上書き保存する(最も手軽な裏技)
実務で一番手軽なのがこの方法です。Windowsの「メモ帳」を使って、CSVに「BOM(これはUTF-8だよという目印)」を付けて保存し直します。この方法を使えば、その後はExcelで普通にダブルクリックするだけで文字化けせずに開けるようになります。
【⚠️超重要:やってはいけない操作】
メモ帳でCSVを開いた時点で「文字化けして見えている」場合、絶対にそのまま上書き保存しないでください。化けた状態のまま保存するとデータが完全に破壊され、二度と元の日本語に戻せなくなります。メモ帳を開いて文字化けしている場合は、メモ帳を閉じて方法①の「データ」タブからの読み込みを行ってください。
CSVが文字化けしたまま開いてしまった時の対処法
すでに文字化けした状態でExcelに取り込んでしまった場合も、焦らなくて大丈夫です。上書き保存さえしていなければ、元のファイルは無傷です。
ファイルを閉じて、上記の方法①か③で改めて開き直せば解決できます。
「すでにデータを加工・上書き保存してしまった」場合の救済策
文字化けに気づかず加工・上書き保存してしまったケースは、残念ながら元のデータに戻すのが極めて困難です。
まずはバックアップから再取り込みすることを優先してください。
バックアップがない場合でも、以下の方法で部分的な回復が可能なことがあります。
| 状況 | 対処策 |
|---|---|
| 元CSVがダウンロードフォルダ等に残っている | 元CSVから正しい手順で再インポートする(最優先) |
| OneDriveやSharePointに保存していた | ファイルの「バージョン履歴」から文字化け前の状態を復元する |
| Excelの自動バックアップがある | 「ファイル」→「情報」→「ブックの管理」から未保存のブックを回復する |
Excelファイルそのものが壊れてしまった場合は、Excelのファイル開けない・破損した時の修復方法も参考にしてみてください。
数値や日付が崩れている時の追加確認
文字コードの問題を解決した後でも、日付が「44927」のようなシリアル値で表示されたり、頭のゼロ「001」が「1」に消えたりすることがあります。
これは文字化けとは別の「列のデータ形式」の問題です。
Power セディター(手順②)でデータ変換を行う際、対象の列を選択して「データ型」を「テキスト」や「日付」に手動で指定するのが確実な対処策です。
CSVの文字化けを根本から防ぐ設定・運用のポイント
毎回インポート手順を踏むのが面倒なら、CSVを出力・保存する側のルールを統一してしまうのが一番スマートです。
Google スプレッドシートからエクスポートする場合の注意点
Google スプレッドシートで「ファイル」→「ダウンロード」→「CSV」を選ぶと、強制的に「BOMなしUTF-8」でダウンロードされます。これをそのままExcelで開くと文字化けするのは避けられません。
解決策は「Excel(.xlsx)としてダウンロードする」か、「Excelで開く際に毎回データタブからインポートする」かの2択です。
チームで共有するデータなら、最初からExcel形式でダウンロードするようルール化するほうがトラブルを防げます。
BOM付きUTF-8でCSVを出力するようシステムを改修する
自分でCSVを出力するスクリプトを書く、または社内システムを管理している立場であれば、最初から「BOM付きUTF-8」で出力するように変更することをおすすめします。
たとえばPythonでCSVを出力する場合は、エンコーディングに encoding='utf-8-sig' を指定するだけでBOM付きになります。
| 場面 | 推奨する対策 |
|---|---|
| Webサービスからのエクスポート | Power Queryでインポート設定を保存しておく |
| 社内システムからのエクスポート | システム担当者に「BOM付きUTF-8」での出力を依頼する |
| 自分でスクリプトからCSVを作成する | BOM付きUTF-8(utf-8-sig等)で保存するコードに変更する |
| Google スプレッドシートとの連携 | 可能なら「.xlsx形式」でダウンロードする |
Excelの関数や数式でエラーが出ている場合は、Excel関数エラーの原因と直し方|#VALUE!・#REF!・#NAME?症状別逆引きも合わせて確認してみてください。
よくある質問(Q&A)
ここでは私が実際にCSV文字化けで詰まった経験や、フリーランスの仕事の中で受けたよくある質問をまとめています。
まとめ:ExcelでCSVが文字化けしたらまずUTF-8でインポートを試みよう
ExcelでCSVが文字化けする原因は、UTF-8とShift-JISの文字コードの不一致がほぼすべてです。
ダブルクリックで開く習慣を見直して、「データ」タブからインポートするか、メモ帳でBOMを付与するだけで、ほとんどのケースは解決できます。
状況に合わせた選び方としては、次のように考えると判断しやすいでしょう。
- 一度だけ開きたい・安全に開きたい → 方法①:「テキストまたはCSVから」読み込み
- 定期的に同じフォーマットを再取り込みする → 方法②:Power Queryエディター
- ダブルクリックで手軽に開きたい・人に渡したい → 方法③:メモ帳で「BOM付きUTF-8」に変換
Excelでデータ管理に関わるトラブルは、文字化け以外にも種類が多いですよね。貼り付けができない場合はExcelで貼り付けできない原因と即解決する5つの対処法、VLOOKUPがうまく動かない場合はVLOOKUPエラーの原因と直し方も参考にしてみてください。