Excelで複数シートを横断集計する方法

Excelで複数シートを横断集計する方法 IT
  1. まず押さえるべき「横断集計」の考え方(やりたいことを整理する)
  2. 一番カンタン:3D集計(同じレイアウトの複数シートを一括合計)
    1. 3D集計の基本形(合計・平均など)
    2. いちいち式を書かない:機能で作る手順
    3. 3D集計の強み:シートが増えても“間に挟めば”追従する
    4. 注意点:レイアウトがズレると一気に事故る
  3. 応用編:INDIRECT+SUMIF/SUMIFSでシート名を指定して集計する
    1. 考え方:シート名を“セルで管理”して、関数に渡す
    2. SUMIFで単一条件(商品名など)を拾って合計する
    3. SUMIFSで複数条件(商品×日付×担当など)に対応する
    4. この方法が刺さる場面/刺さらない場面
    5. 注意点:INDIRECTは“便利だけど重い&壊れやすい”
  4. 実務で強い:Power Queryで複数シートを取り込み→整形→集計まで自動化
    1. Power Queryの考え方:横に散らばる明細を“縦に積む”
    2. 手順(例:同じ形式の月別シートを一括取り込み)
    3. 「どのシートから来たデータか」を残す:実務で必須の一手
    4. 集計までPower Queryでやる/Excel側(ピボット)でやる
    5. Power Queryが刺さる場面(=採用判断)
  5. 失敗しない運用術(シート追加に強い設計・よくあるエラーと対処・時短Tips)
    1. シート追加に強い設計:Start/Endで範囲を固定する(3D集計の必須ワザ)
    2. よくあるエラーと対処:#REF!/0になる/合計がズレる
    3. Power Query運用の落とし穴:列名変更とデータ型
    4. 時短Tips:運用をラクにする3つの小技

まず押さえるべき「横断集計」の考え方(やりたいことを整理する)

Excelで「複数シートを横断して集計したい」と言うと、つい関数や機能の名前(3D集計、INDIRECT、Power Queryなど)から探しがちです。でも実務で最短ルートを選ぶには、先に「横断集計で何をしたいのか」を整理するのが近道。ここが曖昧だと、作った後に「シートが増えたら壊れた」「レイアウトが違って集計できない」「更新が面倒」で詰みます。

横断集計の基本はシンプルで、やっていることは次のどれかに分類できます。

  • 同じ形の表が複数シートにある(例:1月〜12月の売上シート)を、合計・平均したい
  • シートごとに条件で拾って集計したい(例:部署ごとのシートから「商品A」だけ合計)
  • シート構造がバラバラ/増減するので、取り込み→整形→集計を自動化したい

この分類ができると、選ぶべき手段が見えてきます。ざっくり言えば、

  1. レイアウトが完全に同一なら3D集計が最速
  2. シート名を変数として扱いたいならINDIRECT+SUMIF/SUMIFS
  3. 増えるデータを継続運用するならPower Queryが強い

ここで、あなたのファイルを判断するためのチェック項目を用意します。以下にサクッと答えるだけで、2章以降のどれを読めばいいか決まります。

チェック YESなら 主な候補
各シートの集計したいセル位置が同じ(例:B2が必ず売上) 同一レイアウト 3D集計
「商品名」「担当」「日付」など条件指定して合計したい 条件集計が必要 INDIRECT+SUMIF/SUMIFS
シート追加・形式変更が多い/毎月更新が面倒 運用負荷が高い Power Query

さらにもう一歩だけ。横断集計でよくある失敗は、「集計の目的」と「データの持ち方」が噛み合っていないことです。例えば、月別シートに同じ表が並ぶ形式は見た目が分かりやすい一方で、後から分析(商品別・担当別・前年差など)を増やすと一気に苦しくなります。逆に、Power Queryで縦持ち(明細が1表にまとまる)にしておくと、ピボットやグラフが作りやすくなります。

つまり横断集計は「合計を出す技」ではなく、運用を含めた設計の話。この後の章では、難易度が低い順に「今すぐできる方法」から「実務で壊れない方法」へ進めます。まずはあなたの状況が同一レイアウト型なのか、条件集計型なのか、自動化型なのかを決めてから読むと、ムダなく最短でたどり着けます。

一番カンタン:3D集計(同じレイアウトの複数シートを一括合計)

1章のチェックで「各シートの集計したいセル位置が同じ(B2が必ず売上など)」にYESなら、まず覚えるべき最短ルートが3D集計です。難しいことは不要で、やることは「シートA〜シートBの同じセルをまとめて足す」だけ。月別シート(1月〜12月)や拠点別シート(東京〜福岡)みたいに、同じフォーマットが横に増えるタイプに刺さります。

3D集計の基本形(合計・平均など)

書き方はシンプルで、次の形になります。

=SUM(開始シート:終了シート!セル)

例えば、各月シートのB2に「売上合計」が入っているなら、集計シートでこう書けばOK。

=SUM(1月:12月!B2)

これだけで、1月〜12月シートのB2を一括で合計できます。SUM以外も同様に使えて、例えば平均なら =AVERAGE(1月:12月!B2) のように書けます。

いちいち式を書かない:機能で作る手順

関数が苦手でも大丈夫。Excelの「統合」機能を使うと、3D参照の集計を一瞬で作れます。

  1. 集計結果を置くシートを開く
  2. データタブ → 統合
  3. 集計方法(合計/平均など)を選ぶ
  4. 参照に各シートの範囲を追加(同じ位置の表を指定)
  5. 必要なら「上端行」「左端列」を使って見出しで揃える

「とにかく今日中に合計を出したい」なら、この統合が最速です。

3D集計の強み:シートが増えても“間に挟めば”追従する

3D集計の地味に強いポイントがここ。たとえば =SUM(1月:12月!B2) の場合、1月と12月の間に新しいシート(例:6.5月)を追加すると、そのシートのB2も自動で集計対象に入ります。

逆に、間ではなく範囲外に作ると拾われません。運用するなら、集計対象の先頭・末尾シートを固定するのがコツです(例:「Start」「End」シートを作り、その間に月シートを入れる)。

注意点:レイアウトがズレると一気に事故る

3D集計が効く条件は明確で、各シートで同じセルに同じ意味の数字があること。これが崩れると、合計は出ても中身が間違います。

  • ある月だけ行追加して、売上合計のセルがB2→B3にズレた
  • 一部シートだけ列構成が違う(=別の数字を足してしまう)
  • 集計対象に休眠シートやメモ用シートが紛れた

つまり3D集計は、「同一レイアウトを守れる職場」ほど強い。逆に「商品別に条件集計したい」「シート名を変数で回したい」になったら、次章のINDIRECT+SUMIF/SUMIFSが出番です。

応用編:INDIRECT+SUMIF/SUMIFSでシート名を指定して集計する

3D集計は「同じセル」を足すのが得意でした。一方で実務だと、「シートごとに明細があって、その中から条件に合うものだけ合計したい」がよく起きます。たとえば「各部署シートから“交通費”だけ合計」「各月シートから“商品A”の売上だけ集計」みたいなケース。ここで効くのがINDIRECT+SUMIF/SUMIFSです。

考え方:シート名を“セルで管理”して、関数に渡す

ポイントは、関数の中に直接 1月!A:A などと書くのではなく、シート名を一覧にしてセルに持たせること。こうすると「どのシートを集計するか」を後から差し替えたり、表として増やしたりできます。

例として、集計シートのA列に対象シート名、B列に条件、C列に合計を出す形にします。

A列:シート名(例:1月、2月、3月…)
B列:条件(例:商品A)
C列:集計結果

SUMIFで単一条件(商品名など)を拾って合計する

各シートに「商品名がA列、金額がD列」の明細があるとして、A2にシート名、B2に商品名が入っているなら、C2はこう書けます。

=SUMIF(INDIRECT("'"&$A2&"'!$A:$A"), $B2, INDIRECT("'"&$A2&"'!$D:$D"))
  • INDIRECT("'"&$A2&"'!$A:$A"):A2のシートのA列(商品名列)を参照
  • $B2:条件(商品Aなど)
  • INDIRECT("'"&$A2&"'!$D:$D"):合計する金額列を参照

シート名にスペースが入る可能性があるので、シート名は必ず '(シングルクォート)で囲う書き方にしておくのが安全です。

SUMIFSで複数条件(商品×日付×担当など)に対応する

「商品A」かつ「担当:佐藤」だけ、のように条件が増えるならSUMIFSを使います。たとえば各シートで、商品がA列・担当がB列・金額がD列だとして、

  • A2:シート名
  • B2:商品名
  • C2:担当名

このときD2に集計結果を出すなら、次のように書けます。

=SUMIFS(
  INDIRECT("'"&$A2&"'!$D:$D"),
  INDIRECT("'"&$A2&"'!$A:$A"), $B2,
  INDIRECT("'"&$A2&"'!$B:$B"), $C2
)

「シート名だけ変えれば同じロジックで回せる」ので、A列にシート名を並べて下へコピーすれば、月別・部署別の横断条件集計が一気に作れます。

この方法が刺さる場面/刺さらない場面

  • 刺さる:各シートに明細があり、条件で拾って合計したい(商品別、科目別、担当別など)
  • 刺さらない:データ量が多い・シート数が多い・頻繁に更新する(後述のPower Queryの方が安定)

注意点:INDIRECTは“便利だけど重い&壊れやすい”

INDIRECTは文字列から参照を作る分、Excel的にはコストが高めです。特に次の点は押さえておくと事故が減ります。

  • シート名の変更に弱い:一覧(A列)のシート名が実物とズレると即 #REF!。運用では「シート名ルール」を固定する
  • ブックをまたぐとやや面倒:別ファイル参照は原則“開いている必要”が出ることが多い
  • 列全体参照は重くなりがち:$A:$A ではなく、可能なら $A$2:$A$1000 のように範囲を絞る

まとめると、INDIRECT+SUMIF/SUMIFSは「シート名を変数にして、条件で拾って集計する」ための実戦的な武器です。ただ、運用が大きくなるほど負荷や壊れやすさが出るので、毎月更新・データ増加が前提なら、次章のPower Queryで“取り込み→整形→集計”を自動化が一段ラクになります。

実務で強い:Power Queryで複数シートを取り込み→整形→集計まで自動化

3D集計やINDIRECTは「式で頑張る」方法でした。ですが毎月の更新、シート追加、明細行の増減が当たり前の現場だと、いずれ更新漏れ・参照ズレ・ファイルが重いの壁に当たります。そこで強いのがPower Query。一度作ってしまえば、次回以降は基本更新ボタン1つで「取り込み→整形→集計」まで自動で回せます。

Power Queryの考え方:横に散らばる明細を“縦に積む”

ポイントは、複数シートの明細をいったん1つの表(縦持ち)にまとめること。月別シートが12枚あるなら、Power Queryで12枚を結合(Append)して「月」「部署」などの情報を列として持たせます。こうすると、その後はピボットテーブルや集計表が作り放題になります。

手順(例:同じ形式の月別シートを一括取り込み)

  1. データタブ → データの取得ブックから(同一ファイル内なら「このブック」でもOK)
  2. ナビゲーターで「シート一覧」や「テーブル」を選び、データの変換(Power Queryエディターを開く)
  3. 対象シートだけに絞る(例:1月〜12月、あるいは名前に「月」が入るもの)
  4. 結合(追加/Append)で明細を縦に積む
  5. 列名を整える/不要列を削除/データ型(日付・数値)を設定
  6. 最後に閉じて読み込む(テーブル or ピボット用データとして読み込み)

ここまで作れば、各月シートに新しい行が増えても、基本は更新で追従します(レイアウト変更がない前提)。

「どのシートから来たデータか」を残す:実務で必須の一手

Power Queryで結合するときは、あとで原因調査できるように出どころを持たせるのがコツです。具体的には、取り込み時にシート名(=1月、2月…)を列として追加します。

  • 列に「月」や「部署」を追加しておく
  • 集計表で月別・部署別の内訳がすぐ切れる
  • 数字がズレたときも「どのシートのデータか」追える

集計までPower Queryでやる/Excel側(ピボット)でやる

集計は2択です。

  • Power Queryで集計:「グループ化」で商品別合計、月別合計を作って、その結果だけ読み込む(軽い・安定)
  • Excelで集計:結合した“明細テーブル”を読み込み、ピボットテーブルで自由に切る(分析の自由度が高い)

おすすめは、まず明細を1本化して読み込み、集計はピボットで回す運用。集計軸が増えても作り直しが効きます。

Power Queryが刺さる場面(=採用判断)

  • 毎月・毎週の更新がある(手作業をゼロにしたい)
  • データ量が多く、INDIRECTだと重い
  • シートが増える/部署や月が増える前提
  • 「集計だけ」で終わらず、後から分析軸が増えがち

関数で“今だけ”を乗り切るより、Power Queryでデータを整える仕組みを作った方が、結局いちばん速い。次章では、さらに運用で詰まらないための「シート追加に強い設計」や「よくあるエラー」の潰し方をまとめます。

失敗しない運用術(シート追加に強い設計・よくあるエラーと対処・時短Tips)

横断集計は「作る」より回し続ける方が難しいです。月末にシートが増える、誰かが列を足す、シート名が微妙に変わる——この“あるある”で集計は簡単に壊れます。ここでは、3D集計/INDIRECT/Power Queryそれぞれで事故を起こさない運用の型をまとめます。

シート追加に強い設計:Start/Endで範囲を固定する(3D集計の必須ワザ)

3D集計は「間に挟めば追従する」が強みでした。だから運用は、集計対象の両端を固定シートにするのが鉄板です。

  • 集計対象の先頭に Start、末尾に End を作る
  • 式は =SUM(Start:End!B2) のように書く
  • 月シートは必ずStartとEndの間に追加する(これだけで追加漏れが消えます)

「1月〜12月」のように名前で範囲を作ると、翌年や例外月で崩れがち。Start/End方式なら、運用ルールがシンプルで新人にも引き継げます。

よくあるエラーと対処:#REF!/0になる/合計がズレる

  • #REF!(参照が無い):INDIRECTで多いです。原因の9割はシート名の不一致。対策は「シート名一覧を手入力しない」こと。可能ならシート名ルールを固定し、一覧をコピペで更新。スペースや全角半角も要注意です。
  • 0になる(条件に引っかからない):SUMIF/SUMIFSの条件列に余計な空白が入っているケースが頻発。対策は、元データ側でTRIM相当(手作業なら「空白の削除」)を徹底、もしくは条件値の表記ゆれ(例:商品A / 商品A)をマスタで統一します。
  • 合計がズレる(数字は出るが間違ってる):3D集計で一番怖いパターン。レイアウトが1シートだけズレても気づきにくい。対策は「入力セルを触らせない」仕組み化(テンプレ運用/入力欄のみ色分け/保護)です。

Power Query運用の落とし穴:列名変更とデータ型

Power Queryは強い反面、現場の“軽い変更”に弱いことがあります。

  • 列名が変わると更新でコケる:対策は、取り込み元の見出しをマスタ化して変更禁止にするか、最初に「必要列だけ残す」ステップを作りすぎない(依存を減らす)こと。
  • 日付・数値の型が崩れて集計できない:月末にコピーして文字列になりがち。対策は、Query内でデータ型の設定を入れておく(更新時に自動で矯正)。
  • どのシート由来か分からなくなる:4章の通り、必ずシート名列を残しておくと、集計ミスの調査が秒速になります。

時短Tips:運用をラクにする3つの小技

  • 条件・シート名は「入力欄」を分ける:集計表の上部に「対象月」「商品」「部署」などをまとめるだけで、式の修正が激減します(触る場所を固定)。
  • 重いときは“列全体参照”をやめる:INDIRECT×列全体は一気に重くなります。範囲は $A$2:$A$10000 のように現実的な上限を決めると体感が変わります。
  • 集計の正しさチェック用の「突合」行を作る:例えば月別合計の総和と、明細側の総和が一致するかを最下段で確認。数字がズレた瞬間に気づけます。

結局、横断集計で一番効くのは「仕組み」と「ルール」です。3D集計ならStart/End、INDIRECTならシート名管理と範囲絞り、Power Queryなら列名と型の統一。ここまで押さえれば、月末の集計が“毎回のイベント”ではなく、ただの更新作業になります。

コメント

NewsTowerをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む