ADVERTISEMENT

【Excel】Power QueryでCSVの文字化けが起きる時の文字コード確認手順

【Excel】Power QueryでCSVの文字化けが起きる時の文字コード確認手順
🛡️ 超解決

Power QueryはCSVファイルの読み込み時に自動で文字コードを推測しますが、この推測が外れると文字化けが発生します。特にUTF-8とShift-JISの混在した環境や、BOM(Byte Order Mark)の有無によってトラブルが頻発します。本記事では、文字化けの原因を特定するための具体的な確認手順と、Power Queryで正しく読み込むための設定方法を解説します。会社のPCで勝手にレジストリを変更するリスクを避けながら、確実に解決へ導くための情報をまとめました。

【要点】この記事で確認すること

  • 最初に見る場所: Power Queryエディターの「クエリの設定」ペイン、またはファイルのバイナリデータを直接確認する方法
  • 切り分けの軸: 元ファイルの文字コード(UTF-8, Shift-JIS, UTF-16など)とBOMの有無、Power Queryの自動検出結果、Excel側の表示設定
  • 注意点: 会社のPCではOSのシステムロケールやレジストリの変更は管理者への相談が必要。Power Query内で完結する設定変更に留めること

ADVERTISEMENT

なぜPower Queryで文字化けが起きるのか

Power QueryはCSVファイルのインポート時に、先頭の数バイトを読み取って文字コードを推定します。しかし、この推定は完璧ではなく、特に日本語環境では「UTF-8なのにShift-JISと誤認する」「BOMなしUTF-8を正しく認識できない」などの問題が発生します。文字化けの原因は大きく以下の3つに分類できます。

  • ファイルの文字コードが複数混在している: 一つのCSVファイル内でUTF-8とShift-JISが混ざっているケースは稀ですが、異なるシステムから出力されたファイルを結合する際に発生します。
  • BOM(Byte Order Mark)の有無: UTF-8にはBOMあり(UTF-8 BOM)とBOMなしの2種類があり、Power QueryはBOMありの場合は正しく認識しやすいものの、BOMなしUTF-8をShift-JISと誤認しやすいです。
  • Power Queryのエンコーディング自動検出の限界: ファイルの先頭にASCII文字しかない場合、検出が困難です。特に日本語が先頭から出てこないデータだと誤判定が増えます。

これらの原因を切り分けるために、まずはファイルの実際の文字コードを確認する必要があります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

CSVファイルの文字コードを確認する3つの方法

文字化けの原因を特定するには、元のCSVファイルがどの文字コードで保存されているかを確かめます。以下に代表的な方法を紹介します。

方法1: メモ帳で開いて確認する

Windows標準のメモ帳は、ファイルを開くときに文字コードを自動判定し、ステータスバーに表示します。ただし、この判定は必ずしも正確ではなく、参考程度にしてください。手順は次の通りです。

  1. CSVファイルを右クリックし、「プログラムから開く」→「メモ帳」を選択します。
  2. メモ帳の下部にあるステータスバーに「UTF-8」「ANSI」「UTF-16 LE」などと表示されます。これがメモ帳が認識した文字コードです。
  3. 文字化けしている場合は、「ファイル」→「名前を付けて保存」を選び、ダイアログ下部の「文字コード」に現在の設定が表示されます。ここで改めて確認できます。
  4. ただし、メモ帳はBOMなしUTF-8を正しく認識できない場合があるため、次の方法も併用します。

方法2: バイナリエディタで先頭のBOMを確認する

厳密に文字コードを確認するには、ファイルの先頭バイトを直接見ます。Windowsの「フォーマット hex 表示」機能やフリーのバイナリエディタを使います。ここではPower Queryのバイナリビューアを利用する方法を説明します。

  1. Excelを開き、「データ」タブ→「データの取得と変換」→「テキストまたはCSVから」を選択します。
  2. 該当CSVファイルを選択し、「インポート」をクリックします。Power Queryエディターが開きます。
  3. 左側の「クエリの設定」ペインで「ソース」の歯車アイコンをクリックし、「ファイルのプレビュー」ダイアログを表示します。
  4. ダイアログ下部に「元のファイルの先頭」としてバイト列が表示されます。先頭が「EF BB BF」ならUTF-8 BOM、「FF FE」ならUTF-16 LE(BOMあり)、「FE FF」ならUTF-16 BEです。先頭にBOMがない場合は、そのままASCIIまたはShift-JISの可能性があります。
  5. この情報を元に、Power Queryの設定で文字コードを明示的に指定します。

方法3: PowerShellで確認する(管理者権限不要)

PowerShellを使ってファイルのバイト列を取得する方法です。管理者権限は不要で、誰でも実行できます。

  1. Windowsのスタートメニューで「PowerShell」と検索し、Windows PowerShellを開きます。
  2. 以下のコマンドを入力し、Enterキーを押します。Get-Content -Path "C:\パス\ファイル.csv" -Encoding Byte -TotalCount 4
  3. 出力された数値(例: 255,254,0,32)を16進数に変換してBOMを確認します。255=0xFF, 254=0xFE ならUTF-16 LE BOMです。
  4. ただし、この方法はBOMの有無しかわかりません。文字コード自体の特定には追加分析が必要です。

Power Queryでの文字コード指定手順

文字コードが特定できたら、Power Queryで明示的に設定することで文字化けを解消します。以下に手順を示します。

  1. Excelで「データ」タブ→「データの取得と変換」→「テキストまたはCSVから」をクリックします。
  2. 文字化けしているCSVファイルを選択し、「インポート」をクリックします。Power Queryエディターが表示されます。
  3. 右側の「クエリの設定」ペインで「ソース」をクリックし、歯車アイコンを選択します。
  4. 「ファイルのプレビュー」ダイアログが開きます。ここで「ファイルの元の書式」セクションの「文字コード」ドロップダウンから正しいコードを選びます。例えばUTF-8(65001)、Shift-JIS(932)、UTF-16 LE(1200)などです。
  5. 「OK」をクリックして設定を反映します。プレビュー画面で文字化けが解消されていることを確認し、必要に応じて区切り文字やデータ型も調整します。
  6. 「閉じて読み込む」をクリックし、データをシートに反映します。

ADVERTISEMENT

文字化け発生時によくある失敗パターン

実際の現場でよく見られる失敗例を紹介します。これらに該当する場合は、別の原因も考慮してください。

失敗パターン1: メモ帳で保存し直して解決しようとする

社内システムから出力されたCSVを、メモ帳で開いて「名前を付けて保存」でUTF-8に変換し、再度Power Queryで読み込むという方法です。この方法は一時的に解決しますが、元のデータがShift-JISだった場合、変換後に文字化けが解消しても、別のシステムで再度文字化けが起きる可能性があります。根本的な原因は元ファイルの文字コード設計にあります。

失敗パターン2: システムの地域設定を変更する

「コントロールパネル」→「時計と地域」→「地域」の「管理」タブから「システムロケール」を日本語に変更する方法です。しかし、会社のPCではグループポリシーでロケールが固定されていることが多く、変更できないか、変更しても再起動で元に戻る場合があります。また、他のアプリケーションに影響を与えるリスクがあるため、管理者への相談が必要です。

失敗パターン3: Power Queryの自動検出を信頼しすぎる

ファイルの先頭がASCII文字で始まる場合、Power Queryは常にShift-JIS(コードページ932)を仮定します。このため、先頭に日本語がないUTF-8ファイルでは必ず文字化けが発生します。自動検出に頼らず、バイナリ確認を習慣化しましょう。

状況別:文字コードの選択判断基準

以下の表は、文字化けの症状と確認すべきポイントをまとめたものです。実際のファイルの状態と照らし合わせて判断してください。

症状 考えられる文字コード 確認方法 Power Queryでの対処
「???」や「・」などが表示される UTF-8のファイルをShift-JISで読んだ場合 メモ帳で開き、文字コードがUTF-8と表示されるか確認 文字コードをUTF-8 (65001) に変更
「縺ゅ>」などの2バイト文字が正しく見えない Shift-JISのファイルをUTF-8で読んだ場合 Power Queryのバイナリビューアで先頭にBOMがないか確認 文字コードを日本語 (シフトJIS) (932) に変更
英数字や半角カナだけ正しく表示される BOMなしUTF-8で、先頭がASCII 先頭バイトがEF BB BFでなければUTF-8の可能性 強制的にUTF-8 (65001) を指定
文字化けが発生しないが、一部の記号が違う UTF-16 LE / BE の可能性 ファイルサイズが2倍程度ならUTF-16 Unicode (UTF-16 LE) 1200 などを指定

管理者に確認すべき情報

文字コード問題が頻発する場合、組織全体の設定やルールを見直す必要があります。以下の情報を整理してIT管理者に伝えるとスムーズです。

  • どのシステムから出力されたCSVファイルか(例: 基幹システム、Webダウンロードなど)
  • ファイルの文字コード(メモ帳またはバイナリ確認の結果)
  • Power Queryの自動検出で認識された文字コード
  • 社内で統一すべき文字コードの基準(例: 新規ファイルは全てUTF-8 BOM付きにするなど)
  • グループポリシーでシステムロケールが固定されているかどうか

管理者がシステムロケールを変更する場合は、全ての端末に影響が出るため、事前にテスト環境で検証する必要があります。

よくある質問(FAQ)

Power Queryで文字コードを変更しても文字化けが直らない場合の原因は?

考えられる原因として、区切り文字や引用符の設定がファイルと合っていない場合があります。また、ファイル自体が壊れているか、複数の文字コードが混在している可能性もあります。まずはメモ帳で正しく表示できるか確認し、もしメモ帳でも文字化けするならファイル自体の問題です。

ファイルの文字コードを変換するツールはありますか?

フリーのテキストエディタ(例: TeraPad, Sakura Editor)を使うと、文字コードを指定して保存し直せます。Power Query内では変換できないため、事前にツールで変換してからインポートする方法も有効です。ただし、元の生データを変換すると別のシステムで不具合が出る可能性があるため、コピーを取ってから行ってください。

大量のCSVファイルを一括で処理するときに文字化けを防ぐ方法は?

Power Queryで複数ファイルを結合する場合は、サンプルファイルで正しい文字コードを設定した上で、「データの取得」→「フォルダーから」を利用します。その際、変換ステップで「各ファイルの処理」を開き、文字コードを明示的に指定するカスタム関数を作成すると効率的です。

まとめ

Power QueryでのCSV文字化けは、ファイルの文字コードとBOMの有無を正しく特定すれば、大半は解決できます。まずはバイナリ確認でファイルの実態を把握し、Power Query内で明示的に文字コードを設定することが重要です。会社のシステム設定を変更する前に、必ず管理者に相談してください。定期的に文字コードルールを見直すことで、再発を防止できます。今回紹介した手順を日常業務に取り入れ、トラブルを未然に防ぎましょう。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT