SkillStack Lab(スキスタ) 運営者の「スタック」です。
毎月各部署から送られてくるフォーマットの違うエクセルファイルを、ひたすら開いてはコピーしマスターファイルに貼り付ける作業に限界を感じていませんか。
パワークエリで複数ファイルを結合するやり方をネットで調べてみたものの、設定の順番が分からなかったり、同一フォーマットのはずなのになぜかうまくいかないと悩む方は非常に多いです。
途中でエラーが出てデータが結合できないと、結局いつも通りマクロを組んで乗り切るか、手作業のコピペ地獄に戻ってしまうという声も現場でよく耳にします。
特に、拠点ごとにシート名が違うファイルや、入力者によって微妙に見出しが違うことや列名が違うことによるズレがあるファイルが1つのフォルダに集まるのは、実務において日常茶飯事です。
この記事では、そういった面倒なファイルの統合処理を全自動化し、毎月の更新作業のストレスから完全に解放されるための実践的なアプローチを解説していきます。
- パワークエリを使ったフォルダ単位での全自動データ集計の基本メカニズム
- マクロと比較した際の圧倒的な保守性と属人化回避のメリット
- 結合処理で頻発するエラーの根本原因と運用フェーズでの予防策
- シート名や見出しが異なるイレギュラーなファイルへの高度な対処法
パワークエリの複数ファイル結合で手作業を撲滅
散在するデータを手作業で繋ぎ合わせる非効率な業務から脱却し、自動化パイプラインを構築するための基礎知識とメリットについて、元情シスの視点から詳しく解説していきますね。
フォルダ指定で自動化の仕組みを作る
エクセルの集計業務において最も時間がかかり、かつ人間のミスが起きやすいのが、「ファイルを開いて、必要な範囲を選択し、コピーして、閉じる」という単純な反復動作です。
パワークエリの最大の強みは、このプロセスをフォルダ単位で丸ごと自動化できる点にあります。
エクセルの「データ」タブから「データの取得」へと進み、「フォルダーから」を選択して対象のパスを指定するだけで、システムが指定フォルダ内のすべてのファイルを自動的に読みに行きます。(出典:Microsoft公式ドキュメント『ファイルの結合の概要』)にも記載されている通り、この機能を使うと各ファイルの中身であるバイナリデータが一括で抽出され、バックグラウンドで「ヘルパークエリ」と呼ばれる一連の変換プロセスが自動生成されます。
これにより、私たちが一つ一つのファイルの中身を意識することなく、システムが最初のサンプルファイルを基準にして全データを縦にガチャンと結合してくれるのです。
もはや手動でファイルを開く必要すらなくなるので、これだけでも相当な業務効率化になりますね。システムが勝手に裏側で動いてくれる感覚は、一度味わうと手作業には戻れなくなります。
マクロ開発より保守が圧倒的に簡単
複数のファイルを一つにまとめる作業と聞くと、これまではVBAを使ってマクロをゴリゴリ書くのが当たり前でした。
私も元情シスとして、Dir関数を使ってフォルダ内をループさせ、Workbooks.Openでファイルを開くようなコードを山のように書いてきた過去があります。
しかし、マクロには現場の運用において致命的な弱点があります。それは「作った本人にしか直せない」という属人化のリスクです。
パワークエリの強み:ステップの可視化
パワークエリでは、データの加工手順が画面右側の「適用したステップ」として日本語で記録されます。
コードを一切読まなくても、どこで不要な列を削除したか、どこでデータ型を変えたかが一目でわかるため、後任者への引き継ぎがマクロに比べて圧倒的に簡単です。
現場の運用において「保守が簡単」であることは、何よりも優先されるべき正義かなと思います。
複雑なプログラミング言語の解読から担当者を解放し、チーム全体でメンテナンスできる状態を作れるのが、パワークエリを選ぶ最大の理由ですね。
もし「今すぐ実務で使えるパワークエリの構築手順を、プロの画面を見ながら体系的に学びたい」という方は、以下の記事で厳選した動画講座も参考にしてみてください。
独学でつまづく時間を、圧倒的にショートカットできますよ。
\ 非エンジニアの残業をなくす神教材を厳選! /
クリックのみでデータ更新が完了する
パワークエリで構築した結合パイプラインの真価は、翌月以降の運用フェーズで発揮されます。
一度「このフォルダの中身を合体させる」というルールを作ってしまえば、次にやることは新しいファイルをそのフォルダに放り込むだけです。
月次作業が数秒で終わる感動
月末に各部署から予算入力シートや売上CSVデータが送られてきたら、それらを集約用のローカルフォルダ(あるいはSharePointなどの共有フォルダ)に保存します。
あとはエクセルのリボンにある「すべて更新」ボタンをワンクリックするだけで、全自動で最新の結合データが生成され続けます。
月次レポートの作成にかかっていた何時間もの作業が、文字通り数秒のクリック作業へと圧縮されるのは、非常に感動的な体験です。
データ集計にかける時間をゼロにして、本来やるべきデータ分析に時間を使えるようになりますよ。
結合できない原因の大半は形式のズレ

非常に便利なパワークエリですが、最初のうちはデータの読み込みプロセスでエラー画面に遭遇し、心が折れそうになることがあります。
ファイルが正常に結合できない原因の大半は、対象となるファイル群の形式やルールが統一されていないことに起因しています。

例えば、拡張子の不一致が代表的です。「.xlsx」のファイル群の中に、古い「.xls」や「.csv」が混ざっていると、パワークエリのコネクタがバイナリの解釈に失敗して致命的なエラーを引き起こします。
また、誰かがファイルに読み取りパスワードをかけていたり、結合処理の最中に他の誰かがそのファイルを開きっぱなしにしている(プロセスロックがかかっている)場合も、データソースにアクセスできず処理が途中で停止してしまいます。
システムは融通が利かない分、人間側がしっかりルールを敷いてあげる必要がありますね。
事前にエラーを防ぐファイル管理術

このようなエラーで毎月の更新作業が止まるのを防ぐためには、事前の防衛策をクエリに組み込んでおくことが重要です。
最も効果的なのは、結合プロセスをセットアップする段階で「エラーのあるファイルをスキップする」という設定を能動的に有効にしておくことです。
空フォルダや破損ファイルの取り扱いに注意
対象フォルダ内にデータが破損しているファイルが紛れ込んだり、サブフォルダを含めて処理する際に「中に何も入っていない空のフォルダ」が存在したりすると、クエリ全体がクラッシュする原因になります。
処理対象外のデータは絶対にフォルダに入れない運用を徹底しましょう。
システム側でエラーファイルを弾く設定を行いつつ、運用ルールとして「パスワードはかけない」「ファイルは必ず閉じる」といったルールを現場に徹底させることも、安定したデータパイプラインを維持する上では欠かせません。

また、大規模なデータを扱う場合は、処理速度がエクセルファイルより数倍速いCSV形式での保存を現場に推奨するといった工夫も、全体のパフォーマンス向上に極めて有効です。
パワークエリの複数ファイル結合の実践と応用
基本的な結合はできるようになったものの、現場から上がってくるイレギュラーなデータ形式につまづいてしまう方へ、さらに一段階上のトラブルシューティングを提示します。
ここからが腕の見せ所かなと思います。
うまくいかない時の高度なトラブル対応
標準的な「ファイルの結合」ボタン(双方向の矢印アイコン)は魔法のように便利ですが、データが少しでも汚れていると途端にうまくいかないケースがあります。
標準機能が内部で自動生成する「サンプルファイル」を基準としたヘルパークエリの仕組みは、すべてのファイルがサンプルと全く同じ構造であることを大前提としているからです。
自動生成されたクエリがエラーを吐き出して身動きが取れなくなった場合は、思い切って標準の結合ボタンを使わずに、カスタム列を用いて手動でバイナリ(Content)を展開する手法に切り替えるのがプロのやり方です。
M関数を使った強制展開
ファイルの一覧画面で「Content」列以外の不要な列を削除した後、「列の追加」から「Excel.Workbook([Content])」というM関数を記述します。
これにより、各バイナリデータがエクセルワークブックとして解釈され、内部のシート一覧が手動で展開できるようになります。
ブラックボックス化していたエラーの原因を特定し、柔軟に回避することが可能になるため、元情シスとしてはぜひ知っておいてほしいテクニックですね。
各部門でシート名が違う場合の解決策

現場のエクセル集計で本当に多いのが、各部門の担当者が好き勝手にシート名を変更してしまう問題です。
サンプルファイルのシート名が「Sheet1」だった場合、他のファイルでシート名が「東京営業所」や「4月売上」となっていると、「キーと一致する行がテーブルに見つかりませんでした」というエラーが出て処理が完全に止まります。
これを解決する最もエレガントな手法は、ファイルの結合ダイアログボックスにおいて、特定のシート名を選択するのではなく、階層の上位にある「パラメータ」またはフォルダ自体のアイコンを選択することです。
この操作により、パワークエリは特定のシート名に依存することをやめ、「各ファイル内に存在する最初のシート(またはテーブル)」という動的な条件でデータを抽出する関数を作ってくれます。
これなら、シート名がどれほどバラバラでも、中身の構造化データさえ存在すれば強制的に結合させることができるのです。担当者の気まぐれにシステムが振り回されなくなる、非常に強力な設定です。
見出しが違うエクセルをまとめる裏技
シート名の次に厄介なのが、見出しの不一致です。
「売上」と「売上額」のように、担当者によって見出し(ヘッダー)の表記揺れが存在するファイルをそのまま結合しようとすると、パワークエリはこれらを完全に別の属性として認識してしまいます。
パワークエリ側で吸収することも可能ですが、可能であれば各部門に配布するエクセルの入力フォーマットを保護し、見出しをいじれないようにロックをかけておくのが最も確実な裏技です。
どうしても現場のフォーマットを統一できない場合は、自動生成された「サンプルファイルの変換」クエリの出番です。このクエリ内で、データの見出しをあらかじめ強制的にリネーム(変更)するステップを追加しておきます。
| 現場の入力例(バラバラ) | サンプルファイル内での変換後 |
|---|---|
| 売上額 | 売上 |
| 売上金額(税抜) | 売上 |
| 本日の売上 | 売上 |
このように、本体の結合処理にデータが流れ込む前段階で、すべてのファイルの見出しが均一にクレンジングされるように仕込んでおくことで、表記揺れを綺麗に吸収することができます。
列名が違うデータの階段状ズレを直す

見出しの違いが数カ所であればリネーム手順で対応できますが、列名がまったく違うファイルが大量に存在したりすると、結合後のデータが右側にどんどん追加され、階段状のズレを起こしてしまいます。
膨大な数のNull(空白)値を含む非効率なデータセットが生成されてしまうと、後続の分析がまったく進みません。
この列名が違うことによる階段状ズレを根本から直す最終手段として、M言語を用いた高度な動的結合テクニックが存在します。
List.Union関数による列名の和集合抽出
結合クエリにおけるデータ展開のステップにおいて、引数として渡される静的な列名のリストを、List.Union関数とTable.ColumnNames関数を組み合わせた動的な記述に置き換えるのです。
このコードを数式バーに記述することで、フォルダ内の全ファイルに存在するすべての列名を走査し、和集合(一意の要素リスト)を生成してくれます。
これにより、未知の新しい列名を持つファイルが将来的に追加されたとしても、クエリが破綻することなく全列を綺麗に自動展開してくれます。
少しハードルは上がりますが、元情シスとしてはこういう「変化に強いスケーラブルな力技」を知っておくと、実務で非常に頼りになるかなと思います。

Udemyで学ぶパワークエリの複数ファイル結合
ここまで、現場で直面するさまざまなエラーや、列名・シート名が異なる場合の高度な対処法について解説してきました。
お伝えした通り、パワークエリは非常に強力なツールですが、イレギュラーなデータ形式に完璧に対応しようとすると、M言語の書き換えなど少しマニアックな知識が要求されます。
こうしたイレギュラー対応を、その都度ネット検索でツギハギの知識として集めるのは、非常に時間がかかり非効率です。
パワークエリ 複数ファイル 結合に関するスキルを最短で身につけ、実務で確実な成果を出したいのであれば、Udemyなどの動画学習プラットフォームで体系的に学ぶことを強くおすすめします。
私自身、独学でM言語のエラーと格闘していた時期がありましたが、プロの講師が順序立てて解説するコースを受講したことで、点と点の知識が線で繋がり、開発スピードが劇的に向上しました。
とはいえ、Udemyには数え切れないほどの講座があり、どれが本当に実務(バックオフィス)で使えるのか迷ってしまいますよね。
そこで、元情シス・現役管理部門長である私が、非エンジニアの方でも挫折せずに「手作業ゼロ」の仕組みを構築できる神講座を厳選しました。
【受講およびシステム導入時のご注意】
Udemyの講座価格は頻繁に開催されるセール時期によって大きく変動します。購入の際は、ご自身の目的と合致しているかプレビュー動画を確認し、必ず公式サイトの最新価格をご確認ください。
また、本記事で紹介した機能やM言語の仕様はあくまで執筆時点の一般的な目安であり、Microsoft社のアップデートにより仕様が変更される可能性があります。
企業の基幹データを扱う高度なシステム構築を行う際は、最終的な判断は社内のシステム管理者などの専門家にご相談ください。
手作業のコピペ地獄から解放され、本来注力すべきマネジメント業務やデータ分析に時間を使える日はすぐそこです。
ぜひ以下のページからご自身に合った講座を見つけて、管理部門の業務効率化を大きくリードしていきましょう!
\ 一生モノの時短スキルをセール価格で! /
