ADVERTISEMENT

【Excel】Power Queryで複数ファイル結合後に列の順番がずれる時の確認手順

【Excel】Power Queryで複数ファイル結合後に列の順番がずれる時の確認手順
🛡️ 超解決

Power Queryで複数のCSVやExcelファイルを結合するとき、列の順番が想定と異なる形で出力されることがあります。この問題はデータ分析の効率を大きく損ねるため、早急に原因を特定し修正する必要があります。列の順番がずれる原因は、ソースファイルの列構成の違いやPower Query側の設定ミスなど複数考えられます。本記事では、原因を切り分ける具体的な確認手順をステップごとに解説します。また、トラブルを未然に防ぐための管理方法についても触れます。

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

  • 最初に見る場所: 結合元の各ファイルを開き、列名・列順・空白の有無を比較する。
  • 切り分けの軸: 端末側(列名の表記ゆれ・余分な空白・非表示列)とアクション側(Power Queryの読み込み設定・結合オプション・データ型変換)に分けて調査する。
  • 注意点: 会社PCでは、列の削除や並び替えを自動化するマクロやPower Queryの詳細エディターを変更する前に、必ず管理者の承認を得てください。また、共有のテンプレートファイルを扱う場合は、編集権限の有無を確認してください。

ADVERTISEMENT

1. 列の順番がずれる主な原因

結合後に列の順番が想定と異なる場合、以下のような原因が考えられます。

  • ソースファイル間で列名が一致していない:スペルミス、余分な空白、全角半角の違い、大文字小文字の違いなどにより、Power Queryが別の列と認識し、列が追加されたり順序が変わったりします。
  • ソースファイルごとに列の順序が異なる:各ファイルの列の物理的な並びがバラバラだと、結合結果で順序が維持されないことがあります(特にCSVやテキストファイルで発生しやすい)。
  • 非表示列や空白列が混在している:Excelファイルで列を非表示にしていたり、途中に空白の列があると、Power Queryが見えない列も読み込み、結果の列順が乱れます。
  • Power Queryの「サンプルファイル」の設定が不適切:フォルダーから結合する際、先頭のサンプルファイルだけを基に列構成を決定するため、他のファイルに追加の列があると順序が狂います。
  • 結合後に列の並び替えを手動で行っていない:Power Queryはデフォルトでソースファイルの列順を保持しようとしますが、何らかの変換(列の削除、データ型の変更、テーブルの展開など)を加えると、意図しない順序になることがあります。
お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 原因を切り分けるための事前確認

本格的な調査に入る前に、最低限確認すべき項目を整理します。

2.1 ソースファイルの列構成を確認する

結合対象となるすべてのファイルをExcelやメモ帳で開き、以下の点をチェックします。

  1. 1行目(ヘッダー行)の列名を書き出し、表記ゆれがないか確認します。特に「顧客名」と「顧客 名」(スペースあり)のような違いは要注意です。
  2. 各ファイルの列の物理的な並び順を記録します。CSVの場合はカンマ区切りの位置で判断できます。
  3. 非表示列やゼロ幅の列が存在しないか確認します。Excelファイルでは「ホーム」→「セル」→「書式」→「非表示/再表示」で確認できます。
  4. データの途中に空白の列や行がないか目視します。空白列があるとPower Queryが列を間違って解釈する可能性があります。

2.2 Power Queryの読み込み設定を確認する

Power Queryエディターを開き、「ホーム」タブの「データソース設定」や「クエリのプロパティ」から、読み込み方法を確認します。

  • 「フォルダーから」結合している場合、「サンプルファイルのパス」が正しいかどうか。
  • 「最初の行をヘッダーとして使用」が有効になっているか。
  • 「列のデータ型」が自動検出ではなく明示的に設定されているかどうか(自動検出だとデータ内容により型が変わり、列順に影響することがある)。

3. ファイルごとの列構成を比較する手順

ソースファイルが多い場合、どのファイルが原因かを特定するため、以下の手順でチェックします。

  1. 新しいフォルダーを作成し、結合対象のファイルを1つずつコピーします。
  2. Power Queryでそのフォルダーから結合クエリを作成し、結果の列順を確認します。
  3. ファイルを1つずつ追加しては列順を確認し、最初にずれが発生したファイルを特定します。
  4. 特定したファイルを開き、先述の列構成の違い(列名の表記ゆれや順序の違い、非表示列など)を修正します。
  5. 修正後、再度同じクエリを実行し、列順が意図通りになるか確認します。

ADVERTISEMENT

4. Power Queryエディタで列の順序を固定する

ソースファイルの列構成を統一しても、Power Queryの変換ステップによっては順序が変わることがあります。以下の方法で順序を固定します。

4.1 「列の並び替え」機能を使う

Power Queryエディターで、目的の順序に列を並べ替える手順は次の通りです。

  1. Power Queryエディターを開き、並べ替えたい列のヘッダーをShiftキーを押しながら複数選択します。
  2. 右クリックして「列の並び替え」→「昇順」または「降順」を選びます。ただし、これはアルファベット順やデータ順であり、任意の順序にはなりません。
  3. 任意の順序にしたい場合は、列を1つずつドラッグ&ドロップするか、または「変換」→「列の並び替え」→「列の移動」で前方/後方に移動します。
  4. 手順3を繰り返してすべての列を意図した並びにします。
  5. 閉じて読み込む前に、適用ステップに「並べ替えた列」という新しいステップが追加されていることを確認します。

4.2 高度なエディターで順序をコード指定する

「ホーム」→「詳細エディター」を開き、Table.ReorderColumns関数を使用して順序を固定することもできます。例:Table.ReorderColumns(#"展開された列",{"列C","列A","列B"})。この方法は列数が多い場合や、毎回同じ順序を保証したい場合に便利です。ただし、コードを直接編集するため、誤った変更を避けるために事前にバックアップを取ってください。

5. 結合設定を見直して再発防止する

原因を修正したら、今後同じ問題が起きないように設定や運用ルールを整備します。

5.1 ソースファイルのテンプレートを統一する

すべてのファイルが同じ列構成になるように、標準テンプレートを配布し、列の追加・削除・順序変更が発生した場合は必ずテンプレートを更新するルールにします。

5.2 Power Queryのクエリをパラメーター化する

列名のリストをパラメーターとして受け取り、Table.SelectColumnsTable.ReorderColumnsを組み合わせて柔軟に対応できるようにします。これにより、新しい列が増えても順序を自動で保てます。

原因 症状 確認方法 解決策
列名の表記ゆれ(スペース、大文字小文字) 同じような列が複数表示される ファイルを開いて列名を比較 列名を統一、またはPower Queryで列名の正規化(例:Text.Trim)
列の物理的な順序がファイルで異なる 結合後に列順がばらばら 各CSVをテキストエディタで開いてカンマ位置を確認 ソースファイルの列順を揃える、またはPower Queryで並び替え
非表示列や空白列が存在する 通常より多い列数が表示される Excelの「列の選択」で非表示列の有無を確認 非表示列を削除、またはPower Queryで不要列を削除
サンプルファイルと他ファイルの列構成が不一致 一部のファイルで列が欠落または余分に出現 「サンプルファイルのパス」設定を確認 すべてのファイルを含むフォルダを指定、または「CombineFiles」関数をカスタマイズ

6. 管理者に確認すべき設定やポリシー

会社の環境では、以下の点を管理者に確認することでトラブルの根本解決につながります。

  • 共有フォルダのアクセス権:複数ユーザーがファイルを編集する場合、編集権限の管理が不十分だと列構成が勝手に変更される原因になります。
  • Power Queryの更新設定:クエリの自動更新が有効になっていると、予期せぬタイミングで再読み込みされ、問題が発生する可能性があります。管理者に問い合わせて更新頻度を調整してもらいましょう。
  • 組織のテンプレートポリシー:統一されたテンプレートが存在する場合、その配布方法やバージョン管理のルールを確認します。
  • Excelバージョンの差異:異なるバージョンのExcelを使用していると、Power Queryの動作が微妙に異なる場合があります。全員が同じバージョンかどうか確認してください。

7. よくある質問とトラブルシューティング

読者から寄せられる典型的な質問とその回答をまとめました。

Q1: 結合後に列が増えすぎてしまうのはなぜですか?

列名の微妙な違い(例:「顧客名」と「顧客 名」)により、Power Queryが異なる列と認識して並列に表示している可能性があります。ソースファイルの列名を統一するか、Power Queryで列名を正規化(例:Text.Trim、Text.Upperなど)してください。

Q2: 毎回列の順番が変わって困ります。固定する方法は?

Power Queryエディターで列をドラッグ&ドロップして並び替え、そのステップを保存します。より確実にするには、詳細エディターでTable.ReorderColumns関数を使用して順序をコードに直接書き込みます。また、ソースファイルの列順を統一することも重要です。

Q3: 非表示列を無視して結合したいのですが、どうすれば良いですか?

Power Queryは非表示列も読み込みます。事前にExcelで非表示列を削除するか、Power Queryの「列の選択」で不要な列を削除する変換ステップを追加してください。なお、非表示列が含まれるクエリを共有する場合は、その旨をチームに周知しましょう。

8. まとめ

Power Queryで複数ファイルを結合する際の列順ずれは、ソースファイルの列構成の不一致が主な原因です。まずは全ファイルの列名と順序を確認し、表記ゆれや非表示列を修正してください。Power Queryエディターで列の並び替えを明示的に設定することで、理想的にはサンプルファイルに依存しない安定した結合結果が得られます。

組織全体で統一したテンプレートを使用し、変更履歴を管理することで、根本的な再発を防止できます。なお、会社のポリシーによりPower Queryの詳細設定を変更できない場合には、管理者に相談の上で適切な対応を取ってください。

以上の手順を実践することで、列順のトラブルから素早く脱却し、データ分析の本来の作業に集中できるようになります。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT