月別・支店別・担当者別に分かれたExcelファイルを1つにまとめたい場合、コピーと貼り付けを繰り返すだけでは、時間がかかるうえに転記ミスも起こりやすくなります。
複数ファイルのデータ結合では、ファイルごとの表の形をそろえ、目的に応じてPower Query、数式、VBAを使い分けることが重要です。
同じ列構成の表を縦に追加する作業と、共通のIDを使って情報を横に結び付ける作業では、適した方法が異なります。
この記事では、Excelで複数ファイルをまとめる方法、データの結合、集計表の作成手順を、サンプルデータと操作イメージを交えて解説します。
複数ファイルをまとめる基本の考え方
・同じ項目の明細を1つの一覧へ追加する場合はPower Query
・別表の情報をキーで取得する場合はXLOOKUP関数
・繰り返し処理を自動化する場合はVBA
元データは、1行目に見出しがあり、2行目以降にデータが入力されている前提で進めます。
Power Queryによる複数ファイルの結合手順
| ファイル名 | A列 | B列 | C列 |
|---|---|---|---|
| 東京.xlsx | 日付 | 商品名 | 売上 |
| 大阪.xlsx | 日付 | 商品名 | 売上 |
それではまず、同じ形式のExcelファイルをフォルダーから読み込み、1つの表へ結合する方法について解説していきます。
毎月追加される売上ファイルや、各部署から回収する明細ファイルは、Power Queryを使うと更新作業までまとめて自動化できます。
結合前のフォルダーと表形式の準備
複数ファイルを安定して結合するには、対象ファイルだけを専用フォルダーへ保存します。
たとえば「2026年売上データ」というフォルダーを作成し、その中に東京.xlsx、大阪.xlsx、名古屋.xlsxのように元ファイルを配置しましょう。
各ブックでは、1行目の見出しを日付、商品コード、商品名、数量、売上のように統一します。
列の順番だけでなく、見出しの表記、全角半角、余計な空白までそろえることが、エラーを減らす基本です。
途中に空白行、表題行、結合セルがあると、Power Queryがデータ範囲を意図どおり認識できない場合があります。
ファイルごとにシート名が異なっていても処理できることはありますが、初心者のうちは「売上明細」など同じシート名へそろえると確認しやすくなります。

元ファイルの1行目をヘッダーにし、2行目から連続したデータとして入力する状態が理想です。
結合に向く元データの条件
・すべてのファイルで列見出しが一致している
・1つのファイルに1種類の表だけがある
・集計済みの合計行は元データへ含めない
フォルダーからのデータ取得操作
集計用の新しいExcelブックを開き、リボンの「データ」タブから「データの取得」を選択します。
続けて「ファイルから」を選び、「フォルダーから」をクリックしましょう。
表示されたフォルダーの参照画面で、先ほど元ファイルを保存したフォルダーを選択して「開く」を押します。

ファイル一覧が表示されたら、内容を確認してから「結合して変換」を選択します。
いきなり読み込むのではなく、変換画面を経由することで、不要な列やエラーを事前に確認できます。
サンプルファイルを選ぶ画面では、列構成が正しいファイルを基準として指定します。
ここで選んだファイルをもとに、Excelが他のファイルにも同じ読み込み処理を適用します。
Power Queryエディターでの確認と読み込み
Power Queryエディターが開いたら、日付や商品名、売上などの列が縦方向に追加されているかを確認します。
不要な「Source.Name」列は、どのファイル由来のデータかを確認する用途に役立つため、最初は残しておくと安心です。
日付列の型が日付、売上列の型が整数または小数になっているかも見ておきましょう。
データ型が文字列のままだと、後でSUM関数やピボットテーブルの集計結果が正しくならないことがあります。
確認できたら「ホーム」タブの「閉じて読み込む」をクリックすると、新しいシートに結合済みの一覧表が作成されます。
次回以降は元フォルダーに新しいファイルを追加して、集計ブックの「すべて更新」を実行するだけで反映できます。
【操作のポイント】元ファイルを追加する際は、既存ファイルと同じ列見出し・同じデータ形式を守り、結合後は件数と合計金額を必ず照合しましょう。
数式による別ファイルデータの参照と集計
| 商品コード | 商品名 | 東京売上 | 大阪売上 |
|---|---|---|---|
| A001 | ノート | 12500 | 9800 |
続いては、商品コードや社員番号などの共通項目を使い、別ファイルの値を参照して集計する方法を確認していきます。
すでに集計用の一覧があり、必要な情報だけを取り込みたいときは、関数を使った結合が便利です。
XLOOKUP関数による商品名の取得
集計シートのA列に商品コード、B列に商品名を表示したい場合を考えます。
商品マスター.xlsxの「商品一覧」シートでは、A列に商品コード、B列に商品名が入力されているものとします。
B2セルには、次の数式を入力します。
=XLOOKUP(A2,'[商品マスター.xlsx]商品一覧’!$A$2:$A$1000,'[商品マスター.xlsx]商品一覧’!$B$2:$B$1000,”該当なし”)
この数式では、A2の商品コードを検索値として、別ファイルのA列から探し、対応するB列の商品名を返します。
検索範囲と戻り範囲の開始行をそろえることが重要で、片方だけA1から指定すると見出し行まで検索対象になるため注意が必要です。

数式を入力したら、セル右下のフィルハンドルを下方向へドラッグして、データの最終行までオートフィルします。
SUMIFS関数による複数条件の売上集計

複数ファイルを直接つなぐより、Power Queryで結合した明細表を作成してからSUMIFS関数で集計すると、数式がわかりやすくなります。
結合後のシート名を「全明細」とし、A列に日付、B列に支店、C列に商品コード、E列に売上がある場合を例にします。
集計シートで、A2の商品コード、B1の支店名に対応する売上を求める数式は次のとおりです。
=SUMIFS(全明細!$E$2:$E$5000,全明細!$C$2:$C$5000,$A2,全明細!$B$2:$B$5000,B$1)
SUMIFS関数は、合計範囲を最初に指定し、その後に条件範囲と条件を組み合わせます。
$A2とB$1のように行と列の固定位置を使い分けると、横方向と縦方向の両方へ数式をコピーできます。
数値が0になる場合は、商品コードが文字列と数値で混在していないか、支店名に空白が含まれていないかを確認しましょう。
外部参照ファイルの更新と注意点
別のExcelファイルを参照する数式では、参照先のブック名や保存場所が変更されるとリンクが切れることがあります。
参照先を移動した後に「更新」や「編集」の確認メッセージが出た場合は、「データ」タブの「リンクの編集」から参照先を確認します。
共有フォルダーで運用する場合は、ファイル名とフォルダー構成をむやみに変えないことが安定運用につながります。
また、外部参照は元ファイルが閉じている状態でも計算できますが、複雑な関数や大量の参照があるとブックが重くなるかもしれません。
日々追加される明細の統合にはPower Query、少数のマスター参照にはXLOOKUPという使い分けが実用的です。
【操作のポイント】XLOOKUP関数で参照するファイルは、集計ブックと同じ共有場所に固定し、商品コードなどのキー列を重複させないよう管理しましょう。
ピボットテーブルによる結合データの集計
| 支店 | 商品名 | 売上 |
|---|---|---|
| 東京 | ノート | 12500 |
| 大阪 | ノート | 9800 |
続いては、結合した明細データから支店別、商品別、月別の集計表を素早く作成するピボットテーブルについて確認していきます。
明細をひとつに結合しておけば、集計軸を変更する作業はピボットテーブルだけで完結します。
集計元データのテーブル化
結合済みの明細表内の任意のセルを選択し、「挿入」タブから「テーブル」をクリックします。
範囲を確認する画面では、「先頭行をテーブルの見出しとして使用する」にチェックを入れましょう。
テーブル化したデータは、新しい行を追加しても範囲が自動で広がるため、ピボットテーブルの元データとして扱いやすくなります。
売上列には数値だけを入力し、円記号や文字を手入力しないことも、正しい合計のための大切な準備です。
テーブル名は「tbl売上明細」のように内容が分かる名前へ変更すると、数式やクエリの管理も楽になります。
ピボットテーブル前の確認事項
・見出し名に空欄や重複がない
・日付列が文字列ではなく日付形式になっている
・合計行や小計行を明細の中に残していない
支店別商品別のピボットテーブル作成
「挿入」タブの「ピボットテーブル」をクリックし、テーブルまたは範囲が正しいことを確認して配置先を選びます。
新規ワークシートを選ぶと、元データと集計表を分けられるため見やすくなります。
右側のフィールド一覧で、支店を行、商品名を列、売上を値へドラッグします。
値の欄が「合計」ではなく「個数」になった場合は、売上列に文字列や空白が混ざっている可能性があります。
値フィールドの設定を開き、「合計」を選択して表示形式を通貨または桁区切りへ整えましょう。
月別集計と更新の運用
日付フィールドを行へ配置した場合、日付の上で右クリックして「グループ化」を選ぶと、月別や四半期別にまとめられます。
月別売上を確認したいときは、年と月を行に置き、支店を列に置くと比較しやすい表になります。
元データに新しいファイルを追加した後は、最初にPower Queryを「すべて更新」し、その後にピボットテーブルを更新します。
結合、更新、集計の順序を固定することで、古いデータをもとにレポートを作るミスを防げます。
ピボットテーブルのフィルターには、支店、担当者、商品分類など、確認したい切り口を置くと便利です。
【操作のポイント】ピボットテーブルは元データを直接編集せず、更新操作で最新化する運用にすると、集計表の整合性を保ちやすくなります。
VBAによるブック一括統合の自動化
| 統合先 | 統合元 | 結果 |
|---|---|---|
| 集計.xlsm | 月次フォルダー内の.xlsx | 明細シートへ順番に追加 |
続いては、決まったフォルダー内のブックを開き、明細を1つのシートへ順番にコピーするVBAの考え方を確認していきます。
ファイルの形式が毎回同じで、ボタンやショートカットから一括処理したい場合に向く方法です。
VBA実行前の保存形式と安全確認
マクロを使う集計ブックは、Excelマクロ有効ブックであるxlsm形式で保存します。
統合先のシート名を「統合明細」と決め、1行目に元ファイルと同じ見出しをあらかじめ入力しておきましょう。
VBAはコピー元ファイルを変更しない設計にし、処理前にバックアップを作成することが安心です。
また、対象フォルダーに集計ブック自身を置くと、同じファイルを開こうとしてエラーになることがあります。
統合用ブックは対象フォルダーの外に保存するか、コードで除外する設定にします。
VBA統合に向く場面
・毎週または毎月、同じ形式のファイルを受け取る
・処理手順を他の担当者にも共通化したい
・読み込み後に整形や保存まで連続して行いたい
フォルダー内ファイルを統合するマクロ
AltキーとF11キーでVBEを開き、「挿入」から「標準モジュール」を選択します。
次のコードでは、指定フォルダー内にあるxlsxファイルの「売上明細」シートについて、2行目以降を統合明細シートへ追加します。
Sub 複数ファイルを統合()
Dim folderPath As String
Dim fileName As String
Dim srcBook As Workbook
Dim srcSheet As Worksheet
Dim dstSheet As Worksheet
Dim lastRow As Long
Dim dstRow As Long
folderPath = "C:\Data\売上\"
Set dstSheet = ThisWorkbook.Worksheets("統合明細")
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
Set srcBook = Workbooks.Open(folderPath & fileName)
Set srcSheet = srcBook.Worksheets("売上明細")
lastRow = srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row
dstRow = dstSheet.Cells(dstSheet.Rows.Count, "A").End(xlUp).Row + 1
If lastRow >= 2 Then
srcSheet.Range("A2:E" & lastRow).Copy dstSheet.Cells(dstRow, "A")
End If
srcBook.Close SaveChanges:=False
fileName = Dir
Loop
End Sub
folderPathには、実際に統合元ファイルを保存したフォルダーのパスを入力します。
コード内のA2:Eは、元データがA列からE列までである例ですので、必要な列数に合わせて変更してください。
1行目のヘッダーはコピーせず、2行目から最終行だけを追加する指定になっています。
重複防止とエラー確認
このマクロを同じ統合明細に何度も実行すると、元データが重複して追加されます。
実行前に統合明細の2行目以降を削除する処理を加えるか、ファイル名と行番号を記録して未処理ファイルだけを判定する仕組みが必要です。
簡易的には、統合明細のデータをテーブル化し、重複の削除機能でファイル名、日付、伝票番号などを基準に確認する方法もあります。
伝票番号のような一意のキーを元データに持たせると、重複検出と後からの追跡がしやすくなります。
マクロ実行時にエラーが出たら、対象ブックに売上明細シートが存在するか、フォルダーパスの末尾にバックスラッシュがあるかを確認しましょう。
【操作のポイント】VBAで統合する前には、対象フォルダーのファイル名、シート名、列構成を確認し、必ずコピー済みデータの件数と金額を検算しましょう。
結合時のエラー確認とデータ整形
| 確認項目 | よくある状態 | 対処 |
|---|---|---|
| 商品コード | 001と1が混在 | 文字列へ統一 |
| 日付 | 文字列として保存 | 日付型へ変換 |
続いては、複数ファイルを結合した後に発生しやすいエラー、重複、データ形式の違いについて確認していきます。
結合操作が成功して見えても、キー列や日付形式に差があると、集計の正確性が損なわれます。
列見出しとデータ型の不一致
「商品コード」と「商品コード 」のように末尾スペースがある見出しは、見た目が同じでも別の列として扱われることがあります。
Power Queryでは、列名を右クリックして名前の変更を行い、統一した見出しへ直します。
商品コードの先頭ゼロを残したい場合は、文字列型として取り込むことが必要です。
001を数値の1へ変換してしまうと、マスター表との照合に失敗する場合があります。
日付は、年、月、日が正しく認識されているかをフィルターや表示形式で確認しましょう。
空白行と合計行の混入
元ファイルの末尾に「合計」行が入っていると、結合後に各ファイルの小計まで重複して合計されます。
Power Queryでは、商品名列が「合計」である行をフィルターで除外する方法が有効です。
空白行についても、必須項目である商品コードや日付がnullの行を除外すると、明細表を整理できます。
元データは明細だけ、集計は別シートという役割分担を守ると、ファイル結合後の処理が安定します。
確認用の件数計算式
=COUNTA(全明細!$A$2:$A$5000)
この式で結合後の明細件数を確認し、各元ファイルの件数合計と一致するかを照合できます。
重複データの判定基準
同じファイルを2回フォルダーへ保存した場合や、前月データに当月分が含まれている場合は、重複データが発生します。
日付、伝票番号、商品コード、数量など、複数の項目を組み合わせて重複を判断しましょう。
Excelの「データ」タブにある「重複の削除」は便利ですが、削除前に元データを複製しておくことをおすすめします。
重複を削除する列の選択を誤ると、別取引まで消えてしまう可能性があります。
まずは条件付き書式やCOUNTIFS関数で重複候補を色付けし、内容を確認してから削除する手順が安全です。
【操作のポイント】結合直後には、件数、売上合計、重複件数を確認し、元ファイルの合計と比較してから集計表を共有しましょう。
まとめ エクセルで複数ファイルをまとめる方法
Excelで複数ファイルをまとめる際は、まず元データの1行目のヘッダー、列順、データ形式をそろえることが出発点です。
同じ形式の明細ファイルを増やしながら統合するなら、Power Queryでフォルダーから読み込む方法が特に便利です。
更新ボタンだけで追加ファイルを反映できる仕組みを作れば、毎月のコピーと貼り付けを大きく減らせます。
別ファイルのマスター情報を取り込む用途ではXLOOKUP関数、結合済み明細を支店別や月別に集計する用途ではピボットテーブルが役立ちます。
定型的な統合作業をさらに自動化したい場合はVBAも選択肢になりますが、バックアップ、重複防止、エラー確認を組み込むことが大切です。
複数ファイルの結合・集計で押さえる流れ
・元データの見出しと形式を統一する
・Power Queryまたは関数でデータを結合する
・ピボットテーブルで集計し、件数と合計を検算する
目的に合う方法を選び、更新後の数字を必ず確認しながら、正確で再利用しやすい集計ブックへ整えていきましょう。