ExcelでUTF-8のCSVが文字化けするときは、CSVが壊れているとは限りません。多くはExcelの読み込み方が原因で、まずはファイルをダブルクリックせず、Excelを開いてから [データ] → [テキスト/CSVから] で読み込むのが近道です。UTF-8のCSVはBOM付きなら通常どおり開けることがありますが、BOMなしではExcelの自動判定が外れることがあり、Power Queryやテキスト インポート ウィザードを使ったほうが安定します。 (Microsoft Support)
さらに、.csv をそのまま開くと、Excelは現在の既定のデータ書式設定で各列を解釈します。つまり、文字化けだけでなく、郵便番号の先頭ゼロ消失、日付の勝手な変換、列ずれまで起きます。この記事では、ExcelでUTF-8 CSVが文字化けするときの読み込み方を、症状別の直し方、Power Queryとテキスト インポート ウィザードの使い分け、再発防止策まで実務目線で整理します。 (Microsoft サポート)
ExcelでUTF-8 CSVが文字化けしたら、まず「テキスト/CSVから」
急いで直したいなら、最初に試すべきは Power Query経由の取り込み です。Power Queryは外部データを取り込み・接続し、整形して、必要に応じて更新できます。UTF-8のCSVを安定して読むだけでなく、区切り文字や列の型までその場で調整しやすいのが強みです。 (Microsoft サポート)
- Windowsでは、Excelを開いて [データ] → [テキスト/CSVから] を選びます。
- Macでは、[データ] → [データの取得] からテキスト/CSVを選びます。
- プレビューで日本語が崩れていたら、[ファイルの配信元] / エンコード を見直します。
- 列の分かれ方がおかしいなら、区切り文字 を見直します。
- 郵便番号や社員番号のように先頭ゼロを守りたい列があるなら、[データの変換] に進み、該当列をテキストとして扱います。
この方法では、プレビュー段階で 文字コード、区切り文字、データ型検出 をまとめて見直せます。MacでもPower Query経由のテキスト/CSV取り込みと更新がサポートされています。 (Microsoft Learn)
毎月同じ帳票CSVを取り込む、日次ログを確認する、といった繰り返し運用なら、Power Queryの更新機能が特に便利です。逆に、一度だけ正確に読み込めればよく、ブックに外部データ接続を残したくないなら、後述するテキスト インポート ウィザードのほうが向いています。 (Microsoft サポート)
なぜExcelでUTF-8 CSVが文字化けするのか
ポイントは、UTF-8かどうかよりも、ExcelがUTF-8として認識できるか です。Microsoftの案内では、UTF-8のCSVは BOM付き なら通常どおり開けることがあります。一方、Power QueryのText/CSVコネクタは、UTF-8を自動推定できるのが UTF-8 BOMで始まる場合 に限られるため、BOMなしファイルは [ファイルの配信元] / エンコードの指定が必要になりやすくなります。 (Microsoft Support)
しかも、.csv を直接開いたときのExcelは、現在の既定のデータ書式設定で列を解釈します。つまり、問題は「文字コード」だけではありません。日付の並び順、先頭ゼロ、区切り文字、引用符の扱いまで含めて、開き方で結果が変わる と考えたほうが実務では正確です。 (Microsoft サポート)
文字化け・列ずれ・先頭ゼロ消失を切り分ける
実務では、文字化け、列ずれ、型崩れは別問題 と考えると直しやすくなります。同じ「CSVが変だ」という見え方でも、見るべき設定は違います。 (Microsoft サポート)
日本語が「ãƒ」などになる
これはほぼエンコードの読み違いです。まず Power Query のプレビューで [ファイルの配信元] / エンコードを見直し、UTF-8として読ませてください。1回限りの取り込みなら、テキスト インポート ウィザードで文字セットを選び直す方法でも直せます。 (Microsoft Learn)
1セルに全部入る、または列がずれる
これは文字化けではなく、区切り文字やテキスト修飾子 の問題です。Power Queryではコンマ、セミコロン、タブ、カスタム区切り文字などを選べますし、テキスト インポート ウィザードでも区切り文字とテキスト修飾子を指定できます。たとえば、"東京,本社" のようにカンマを含む値は、引用符の扱いがずれると2列に割れて見えます。なお、Windowsのリスト区切りを変える方法は全アプリに影響するため、まずはExcelの読み込み側で区切り文字を合わせるほうが安全です。 (Microsoft Learn)
00123が123になる
これはExcelが列を数値として解釈した結果です。郵便番号、社員番号、商品コード、JANコードのような「見た目は数字でも実体は文字列」の列は、Power Queryでデータ型の自動検出を使わないか、[データの変換] で該当列をテキストにしてから読み込みます。テキスト インポート ウィザードを使う場合も、列データ形式を [テキスト] にしてください。 (Microsoft Learn)
日付が勝手に変わる
CSVを直接開くと、Excelは既定のデータ書式で日付を解釈します。そのため、01/02/2025 のような値は環境によって意味が変わります。Power Queryではロケール設定で解釈を合わせられ、クエリを含むブックを共有した場合は、そのロケール設定が保持されます。複数国のデータを扱うなら、日付列はいったんテキストで受けてから変換するほうが事故が少ないです。 (Microsoft サポート)
途中で切れる、全件入らない
ワークシートに読み込む前提なら、Excelには 最大 1,048,576 行、16,384 列 の上限があります。大量CSVで「途中までしか見えない」と感じたら、まず文字化けではなくExcelの上限を疑ってください。ワークシートに載せる必要がないなら、分割や別ツールの利用も検討したほうが現実的です。 (Microsoft サポート)
テキスト インポート ウィザードが向いている場面
テキスト インポート ウィザードはレガシ機能ですが、1回だけ正確に取り込みたいCSV には今でも強いです。特に、先頭ゼロを守りたい、列ごとに日付/文字列を厳密に決めたい、固定幅ファイルを読みたい、ブックに外部データ接続を残したくない、という場面ではこちらが向きます。Microsoftも、ウィザード経由ではブックへの外部リンクが作成されないと案内しています。 (Microsoft サポート)
手順は次のとおりです。
- [ファイル] → [オプション] → [データ] を開きます。
- [従来のデータ インポート ウィザードを表示する] で [テキストから (レガシ)] を有効にします。
- [データ] → [データの取得] → [従来のウィザード] → [テキストから (レガシ)] を選びます。
- 手順1で [ファイルの配信元] を確認します。
- 手順2で 区切り文字 と テキスト修飾子 を確認します。
- 手順3で、列ごとに [全般] / [テキスト] / [日付] を選びます。
このウィザードは、文字セット、区切り文字、引用符、列型 を細かく指定できるのが最大の利点です。 (Microsoft サポート)
なお、.csv をダブルクリックすると、ウィザードを経由せず自動で開かれます。ウィザードで細かく制御したいときは、接続してインポートするか、必要に応じて拡張子を .txt に変えてから開く方法が使えます。 (Microsoft サポート)
読み込み方の比較
迷ったら、次の基準で選ぶと早いです。
| 方法 | 向いているケース | 強み | 注意点 |
|---|---|---|---|
| ダブルクリックで開く | BOM付きUTF-8を一度ざっと確認するだけ | とにかく速い | エンコード、区切り文字、列型の制御が弱い |
| [データ] → [テキスト/CSVから] | 迷ったらこれ。日常運用や再利用にも向く | エンコード、区切り文字、型、更新を扱いやすい | 外部データ接続ベースになる |
| テキスト インポート ウィザード | 一発取り込み、先頭ゼロ保持、固定幅 | 列ごとの指定が細かい。外部リンクを作らない | レガシ機能の有効化が必要な場合がある |
※この整理は、BOM付きUTF-8の挙動、Power Queryの接続・整形・更新、テキスト インポート ウィザードの列指定と外部リンクの有無をもとにまとめています。 (Microsoft サポート)
CSVを作る側なら、ここを揃えると再発しにくい
再発を減らすなら、読む側ではなく作る側のCSV仕様をそろえるのが最も効きます。Excelの案内でも、UTF-8 CSVはBOM付きだと通常どおり開きやすく、Windows版の対応環境では [CSV UTF-8 (コンマ区切り)] 形式で保存できます。プログラムや自動処理でCSVを生成するなら、BOM付きUTF-8を選べるかを一度確認しておくと、受け手のExcel事故がかなり減ります。 (Microsoft サポート)
- 日本語を含むなら、UTF-8を前提にし、できればBOM付きで出力する
- 区切り文字をコンマかセミコロンかで統一し、値内に区切り文字や改行を含む項目は引用符で囲む
- ExcelからCSV保存する場合は、現在のワークシートだけ が保存対象で、書式や数式などCSVで持てない情報は残らないことを前提にする
この3点をそろえるだけで、「開くたびに文字化けする」「別の人のPCだけ崩れる」といったトラブルはかなり減らせます。 (Microsoft サポート)
迷ったらこの順番で対応する
- まずは Power Query の [テキスト/CSVから] で読み込む
- 日本語が崩れるなら [ファイルの配信元] / エンコード を見直す
- 1列に入る、列がずれるなら 区切り文字 と テキスト修飾子 を見直す
- 郵便番号、社員番号、商品コード、日付が壊れるなら 列の型 を見直す
- 毎回同じCSVで困るなら、出力元に BOM付きUTF-8 か CSV UTF-8 での出力をそろえてもらう
ExcelでUTF-8 CSVが文字化けするときの読み込み方は、実際には エンコード、区切り文字、列型 の3点を順番に合わせる作業です。この順で見れば、多くのCSVトラブルはその場で切り分けて直せます。 (Microsoft Learn)

コメント