Power Queryで複数のテーブルを追加(結合)する際に、列名が期待した位置とずれてしまうトラブルは、データ分析の現場で頻繁に発生します。特に、異なるシステムから出力されたCSVファイルや、担当者ごとにフォーマットが異なるExcelファイルを結合する場合に顕著です。列名のずれは、その後のデータ変換や集計に誤った結果をもたらすため、早急な対応が必要です。この記事では、列名がずれる原因を整理し、具体的な修正手順をステップバイステップで解説します。
【要点】この記事で確認すること
- 最初に見る場所: 追加クエリの「テーブル名」と「列名」の一覧、および各ソースデータの列構造(列名、順序、データ型)
- 切り分けの軸: ソースデータ間の列名の表記揺れ・順序の違い、Power Queryエディタ上の参照クエリの構成、データ型の不一致
- 注意点: 会社PCで共有されているクエリを直接編集する場合は、他のユーザーへの影響を考慮し、可能であればコピーを作成してから修正してください。管理者に確認が必要な設定(パラメータなど)もあります。
ADVERTISEMENT
目次
Power Queryの追加クエリで列名がずれる主な原因
列名のずれは、Power Queryの追加クエリ機能が「列名の文字列」と「列の位置(順序)」の両方を基準にデータをマージする仕様に起因します。具体的には、以下の3つの原因が考えられます。
原因1: ソース間で列名が完全一致していない
追加クエリは、各ソースの列名を文字列として比較し、完全一致した列同士を縦に連結します。そのため、例えば「顧客名」と「顧客名(全角スペース)」や「customer_name」と「CustomerName」のように、表記が少し異なる列は別の列として扱われ、結果として列が追加されたり、順序が変わったりします。特に、Excelファイルのヘッダー行に余分なスペースや非表示文字が含まれているケースが多く、これがずれの原因になります。
原因2: ソース間で列の並び順が異なる
列名がすべて一致していても、ソース間で列の物理的な順序(左から右への配置)が異なる場合、Power Queryは最初のソースの列順に合わせてデータを配置します。しかし、2つ目以降のソースで同じ列名が異なる位置にあると、意図しない列にデータが入ることがあります。例えば、ソースAが「氏名, 年齢, 部署」、ソースBが「氏名, 部署, 年齢」である場合、追加後は「氏名,年齢,部署」の順になり、ソースBの「部署」データが「年齢」列に格納される可能性があります。
原因3: データ型の不一致による自動調整
Power Queryは、追加時に各列のデータ型を最初のソースに合わせようとします。データ型が異なる列(例:文字列と数値)があると、型変換が行われ、列の内容が変わったり、エラーが発生したりすることがあります。この型変換が原因で列が分離されたり、列名がずれたように見える場合もあります。
修正手順:基本編(列名の統一と順序の調整)
まずは、最も一般的な原因である「列名の不一致」と「列順序の違い」を解消するための基本的な手順を説明します。
- 各ソースデータの列名と順序を確認する:Excelの元データまたはPower Queryエディタのプレビューで、追加するすべてのテーブルの列名と並び順をメモします。特に、全角・半角スペース、大文字小文字、記号の有無に注意してください。
- Power Queryエディタを開く:Excelの「データ」タブから「クエリと接続」をクリックし、該当クエリをダブルクリックしてエディタを開きます。
- 「追加」クエリの設定を確認する:左側の「クエリ」ペインで、追加クエリを選択します。リボンの「ホーム」タブにある「追加」のドロップダウンから「追加クエリの設定」を開き、どのテーブルがどの順序で追加されているか確認します。
- 列名を統一する:各ソーステーブル(参照元のクエリ)を個別に開き、列名を完全に一致させます。方法としては、ヘッダー行を置き換える、または「変換」タブの「列名の変更」機能を使います。例えば、ソースAの列名「顧客名 」から全角スペースを削除し、ソースBの「顧客名」と揃えます。
- 列の順序をそろえる:すべてのソーステーブルで、列の左から右への並び順を統一します。Power Queryエディタで列をドラッグするか、「列の並べ替え」機能を使って順序を変更します。
- 変更を適用して閉じる:各ソーステーブルを修正したら、追加クエリに戻り、プレビューで列名が正しくマッピングされていることを確認します。問題がなければ「閉じて読み込む」をクリックします。
修正手順:詳細編(手動マッピングとトラブルシューティング)
基本手順で解決しない場合、Power Queryの詳細設定を使って手動でマッピングを調整する必要があります。
手動マッピングの手順
- 追加クエリの設定ダイアログで、「追加するテーブル」の一覧から列名がずれているテーブルを選択します。
- ダイアログ下部の「列のマッピング」をクリックします。
- 「ソース列」と「ターゲット列」の対応関係が一覧表示されます。ドロップダウンリストから正しい列を選択してマッピングを修正します。すべての列が正しく対応するように設定してください。
- 「OK」をクリックしてダイアログを閉じます。プレビューで列名のずれが解消されていることを確認します。
- もしマッピングダイアログが表示されない場合は、追加クエリの「結合」ではなく「追加上」オプションであることを確認してください。「結合」は横方向のマージ、追加は縦方向のマージです。
データ型の調整
列名が合っているのにデータがずれる場合、データ型が原因の可能性があります。各ソーステーブルで、該当列のデータ型を統一します。例えば、すべての「日付」列を「日付/時刻」型に、「金額」列を「10進数」型に変更します。Power Queryエディタの列ヘッダーにあるアイコンをクリックするか、「変換」タブの「データ型」から変更できます。
ADVERTISEMENT
失敗パターンとその対処法
実際の現場でよく遭遇する失敗例を挙げ、その対処法を解説します。
| 状況 | 原因 | 対処法 |
|---|---|---|
| 列名が「顧客名_1」のようにサフィックスが付く | 列名が完全一致せず、Power Queryが自動的に重複を避けるため | ソースの列名を統一する。特に末尾のスペースや記号を削除する。 |
| 一部の列がNULLになる、またはデータが欠ける | 列順序が異なり、データが別の列に格納される | すべてのソーステーブルで列順を統一する。手動マッピングで強制的に合わせる。 |
| 「変換エラー」が表示される | データ型の不一致(例:数値列に文字列が混在) | 各ソースの該当列のデータ型を確認し、統一する。エラー行を除去する場合は「エラーの置換」も検討。 |
| 毎回クエリを更新するたびにずれる | ソースデータの列名や順序が頻繁に変わる | Power Queryで列名を動的に処理する(例:テーブルの列名を変数化)。または管理者にソースフォーマットの統一を依頼。 |
管理者に確認すべき設定
会社の共有環境でPower Queryを使用している場合、以下の点を管理者に確認してください。自己判断で変更すると、他のユーザーに影響が出る可能性があります。
- 共有クエリのパラメータ設定:特定のパラメータ(例:データソースのパス)がクエリに設定されている場合、それが列名の解釈に影響することがあります。管理者にパラメータの一覧と意味を確認してください。
- データソースの権限:共有フォルダやデータベースへのアクセス権限が不足していると、クエリの更新に失敗し、列名がずれる原因になります。
- クエリのバージョン管理:複数の担当者が同じクエリを編集している場合、意図しない変更が混入することがあります。管理者にクエリのバックアップや変更履歴の確認方法を問い合わせてください。
よくある質問(FAQ)
Q1: 列名がずれる原因は、スペース以外にありますか?
はい。全角と半角の違い、大文字小文字、アンダースコアなどの記号の有無、非表示文字(特にCSVファイルに含まれるBOMなど)も原因になります。また、列名の末尾に改行コードが含まれているケースもあります。
Q2: 毎回手動で修正するのは面倒です。自動化する方法はありますか?
Power Queryエディタでクエリに「変換」ステップを追加し、「各列のトリム(前後の空白除去)」や「大文字小文字の統一」を行うことで、ある程度自動化できます。ただし、根本的な列名統一はソースデータ側で行うことを推奨します。
Q3: VBAを使って列名を修正することは可能ですか?
理論上は可能ですが、Power QueryはVBAよりもクエリ内のM言語で制御する方が安全です。VBAを使うとバージョン管理が難しく、エラーが発生しやすくなります。Power Queryの「詳細エディタ」でMコードを直接編集する方法をおすすめします。
Q4: 追加クエリではなく「結合」でも同様の問題は起きますか?
「結合(マージ)」は横方向に列を追加するため、列名のずれよりも「キー列の不一致」によるデータ欠損が問題になります。ただし、キー列の名前が異なる場合も同様にマッピングが必要です。
まとめ
Power Queryの追加クエリで列名がずれる問題は、主にソースデータ間の列名表記や列順序の不統一、データ型の不一致が原因です。基本的な解決策は、すべてのソーステーブルで列名を完全一致させ、列の並び順を統一することです。それでも解決しない場合は、手動マッピングやデータ型の調整を行います。また、会社の共有環境では管理者への確認が必要な設定もあるため、慎重に対応してください。この記事で紹介した手順を実践することで、列名のずれを解消し、正確なデータ統合が可能になります。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
