Power Queryを使って複数のテーブルを結合する際、期待した結果が得られず、原因が結合キーに含まれる空白(空欄)にあるケースは少なくありません。特に、元データに空白が含まれていると、見た目は同じでも一致判定で不一致となり、結合結果から除外されてしまいます。本記事では、Power Queryにおける結合キーの空白が原因で一致しない問題を特定し、修正する手順を具体的に解説します。また、よくある失敗パターンや管理者への確認事項も取り上げます。
【要点】この記事で確認すること
- 最初に見る場所: 結合元テーブルのキー列をデータプレビューで確認し、空白セルがないかフィルターで絞り込む。
- 切り分けの軸: 端末側(Power Queryの変換手順)とアカウント側(データソースの権限やプライバシーレベル)と管理設定側(組織のデータクレンジングポリシー)を分けて検討する。
- 注意点: 会社PCで共有のデータソースに対してPower Queryのプライバシーレベルを無闇に変更しない。管理者に確認の上、データクレンジングルールを統一する。
ADVERTISEMENT
目次
結合キーの空白が一致しない理由
Power Queryにおけるテーブル結合(マージ)では、結合キーの値が完全に一致する行だけが結果に含まれます。このとき、空白(空文字列””)と実際のテキスト値(例えば”商品A”)は異なるものとして扱われます。また、データソースによっては空白セルがNULL(Null値)として読み込まれる場合があり、NULLと空文字列はPower Query上で区別されるため、結合キーとして使用すると予期せぬ不一致が発生します。
さらに、元データに含まれる空白が「全角スペース」「改行コード」「非改行スペース」などの見えない文字であるケースもあります。これらの空白は人間の目では区別できませんが、Power Queryの一致判定では異なる文字として扱われます。結果として、結合キーが一致せず、本来結合されるべき行が結果から漏れてしまうのです。
事前確認:空白を含むキーを特定する方法
データプレビューで確認
Power Queryエディターを開き、結合元のテーブルを選択します。該当するキー列のヘッダーをクリックし、”列の統計”を表示させて「空の値」「空の文字列」の数値を確認します。数値がゼロでない場合は、空白を含む行が存在します。
フィルターで空白を抽出
キー列のドロップダウンフィルターを開き、”空”(空の値)と”空の文字列”のチェックボックスをオンにしてフィルターを適用します。これにより、空白やNULLが含まれる行だけが表示されます。ビジュアルに確認することで、どのような空白(NULLか空文字列か)が存在するか把握できます。
また、条件列を追加して「Text.Length([キー列]) = 0」や「[キー列] = “”」などのカスタム条件で空白を特定することも可能です。
空白を除去して結合を成功させる修正手順
- Power Queryエディターで結合元のテーブルを選択し、”変換”タブの”値の置換”をクリックします。
- 「置換する値」に空文字列(何も入力しない)を指定し、「置換後の値」に任意のプレースホルダー(例:”未設定”)を入力します。これにより空文字列がテキストに変わります。
- NULLのセルも同様に置換したい場合は、”値の置換”をもう一度実行し、「置換する値」に「null」(半角小文字)を指定し、「置換後の値」に同じプレースホルダーを入力します。
- 次に、キー列を選択し、”変換”タブの”トリム”をクリックして前後のスペースを除去します。必要に応じて”クリーン”も実行し、非印刷文字を取り除きます。
- “ホーム”タブの”閉じて読み込む”で変更を適用後、再度マージクエリを実行し、結合が正しく行われるか確認します。
- もし結合結果にまだ不一致がある場合は、キー列のデータ型を確認します。数値型とテキスト型が混在していないかどうか、”データ型”の変更で統一します。
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を使う際は、結合前にキー列をチェックする習慣をつけましょう。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
