ADVERTISEMENT

【Excel】Power Queryで結合キーの空白が原因で一致しない時の修正手順

【Excel】Power Queryで結合キーの空白が原因で一致しない時の修正手順
🛡️ 超解決

Power Queryを使って複数のテーブルを結合する際、期待した結果が得られず、原因が結合キーに含まれる空白(空欄)にあるケースは少なくありません。特に、元データに空白が含まれていると、見た目は同じでも一致判定で不一致となり、結合結果から除外されてしまいます。本記事では、Power Queryにおける結合キーの空白が原因で一致しない問題を特定し、修正する手順を具体的に解説します。また、よくある失敗パターンや管理者への確認事項も取り上げます。

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

  • 最初に見る場所: 結合元テーブルのキー列をデータプレビューで確認し、空白セルがないかフィルターで絞り込む。
  • 切り分けの軸: 端末側(Power Queryの変換手順)とアカウント側(データソースの権限やプライバシーレベル)と管理設定側(組織のデータクレンジングポリシー)を分けて検討する。
  • 注意点: 会社PCで共有のデータソースに対してPower Queryのプライバシーレベルを無闇に変更しない。管理者に確認の上、データクレンジングルールを統一する。

ADVERTISEMENT

結合キーの空白が一致しない理由

Power Queryにおけるテーブル結合(マージ)では、結合キーの値が完全に一致する行だけが結果に含まれます。このとき、空白(空文字列””)と実際のテキスト値(例えば”商品A”)は異なるものとして扱われます。また、データソースによっては空白セルがNULL(Null値)として読み込まれる場合があり、NULLと空文字列はPower Query上で区別されるため、結合キーとして使用すると予期せぬ不一致が発生します。

さらに、元データに含まれる空白が「全角スペース」「改行コード」「非改行スペース」などの見えない文字であるケースもあります。これらの空白は人間の目では区別できませんが、Power Queryの一致判定では異なる文字として扱われます。結果として、結合キーが一致せず、本来結合されるべき行が結果から漏れてしまうのです。

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

事前確認:空白を含むキーを特定する方法

データプレビューで確認

Power Queryエディターを開き、結合元のテーブルを選択します。該当するキー列のヘッダーをクリックし、”列の統計”を表示させて「空の値」「空の文字列」の数値を確認します。数値がゼロでない場合は、空白を含む行が存在します。

フィルターで空白を抽出

キー列のドロップダウンフィルターを開き、”空”(空の値)と”空の文字列”のチェックボックスをオンにしてフィルターを適用します。これにより、空白やNULLが含まれる行だけが表示されます。ビジュアルに確認することで、どのような空白(NULLか空文字列か)が存在するか把握できます。

また、条件列を追加して「Text.Length([キー列]) = 0」や「[キー列] = “”」などのカスタム条件で空白を特定することも可能です。

空白を除去して結合を成功させる修正手順

  1. Power Queryエディターで結合元のテーブルを選択し、”変換”タブの”値の置換”をクリックします。
  2. 「置換する値」に空文字列(何も入力しない)を指定し、「置換後の値」に任意のプレースホルダー(例:”未設定”)を入力します。これにより空文字列がテキストに変わります。
  3. NULLのセルも同様に置換したい場合は、”値の置換”をもう一度実行し、「置換する値」に「null」(半角小文字)を指定し、「置換後の値」に同じプレースホルダーを入力します。
  4. 次に、キー列を選択し、”変換”タブの”トリム”をクリックして前後のスペースを除去します。必要に応じて”クリーン”も実行し、非印刷文字を取り除きます。
  5. “ホーム”タブの”閉じて読み込む”で変更を適用後、再度マージクエリを実行し、結合が正しく行われるか確認します。
  6. もし結合結果にまだ不一致がある場合は、キー列のデータ型を確認します。数値型とテキスト型が混在していないかどうか、”データ型”の変更で統一します。

ADVERTISEMENT

状況別の対策比較表

状況 推奨対策 注意点
空文字列がキーに含まれる 値の置換で「””」→「”未設定”」に変換 結合後も空文字列を残したい場合は、別の一意な文字列に置き換える
NULLがキーに含まれる nullを「”未設定”」に置換、または「Text.From([キー])」で文字列化 NULLのまま結合したい場合(特殊な結合)は、結合条件をカスタムにする必要がある
見えないスペース(全角スペース等) トリムとクリーンの適用、またはText.Replaceで特定の文字を除去 全角スペースはトリムでは除去されないため、別途Text.Replaceで置換する
データ型不一致(数値 vs テキスト) 双方のキー列を「テキスト」型に統一する 数値の先頭ゼロが失われる可能性に注意。Text.PadStartで整形する

よくある失敗パターンと回避策

目に見えないスペースの見落とし

コピー&ペーストや外部システムから取り込んだデータには、改行コードや非改行スペース(Unicode 160)などが含まれることがあります。トリムだけでは除去できません。Power QueryでText.SelectやText.Removeを使用し、文字コード範囲を指定して除去すると確実です。

NULLと空文字列の混在

ソースによってNULLと空文字列が混在していると、両方を同じように扱わないと一致しません。対策として、結合前に両方のテーブルでNULLと空文字列を同じプレースホルダーに置換することを推奨します。データクレンジングのプロセスで一貫したルールを決めておくことが重要です。

データ型の不一致

一方のキー列が数値型、もう一方がテキスト型の場合、”123″と123は一致しません。結合前に両方の列をテキスト型に変換してから結合してください。変換の際、数値の書式が異なる(桁区切りや小数点の有無)場合も注意が必要です。

管理者に確認すべき設定と組織的なデータクレンジング

会社の共有データソースを使用する場合、Power Queryのプライバシーレベルが「組織」に設定されていることを確認してください。プライバシーレベルが「プライベート」に設定されていると、結合時にデータがマージされずエラーになることがあります。変更は管理者権限が必要なため、IT部門やデータ管理者に依頼しましょう。

また、組織全体でデータ入力時の空白防止ルールを策定することも効果的です。たとえば、データベースに制約をかけて空白を許可しない、またはETLプロセスで空白を自動的に置換するなどの対策があります。管理者はPower Queryの共有クエリやパラメーターを活用し、全社で統一したデータクレンジング手順を展開すると、個々のユーザーが手動で修正する手間が省けます。

よくある質問(FAQ)

Q: 結合キーに空白があっても、”あいまい一致”機能で対応できますか?
A: Power Queryの標準マージではあいまい一致は提供されていません。近似一致が必要な場合は、レーベンシュタイン距離などをカスタム関数で実装するか、Power BIのあいまいマージ機能を検討してください。

Q: トリムを実行しても空白が残るのですが、どうすればよいですか?
A: 全角スペースや改行コードが含まれている可能性があります。Text.Replace関数を使って、” ”(全角スペース)を空文字列に置換するステップを追加してください。

Q: 結合元のデータを変更せずに、結合結果だけ空白を無視することは可能ですか?
A: 直接はできません。結合前に変換ステップを追加し、空白を一時的に別の値に置き換える必要があります。元データを変更したくない場合は、参照専用のクエリで変換を行い、その結果を結合に使用してください。

まとめ

Power Queryの結合キーに空白が含まれていると、意図しない行の欠落が発生します。本記事で解説した事前確認手順と変換手法を用いることで、空白による不一致を解消できます。特に、空文字列とNULLの区別、見えないスペースの除去、データ型の統一は確実に行ってください。また、組織的なデータクレンジングルールを整備し、管理者と連携することで、再発を防止できます。日々の業務でPower Queryを使う際は、結合前にキー列をチェックする習慣をつけましょう。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT