複数のシートからのデータ集計: INDIRECT関数とSUMIFS関数を使った効率的な方法
Excelでは、複数のシートにまたがるデータの集計が必要な場合があります。この記事では、INDIRECT関数とSUMIFS関数を使って、複数のシートからデータを集計する方法を紹介します。
サンプルデータの作成
まずは、以下のような3つのシートを用意します。各シートには、商品ごとの売上データが記録されています。
シート名 | A | B |
---|---|---|
Sheet1 | 商品A | 100 |
Sheet1 | 商品B | 200 |
Sheet2 | 商品A | 300 |
Sheet2 | 商品B | 400 |
Sheet3 | 商品A | 500 |
Sheet3 | 商品B | 600 |

Sheet1のサンプル図
INDIRECT関数とSUMIFS関数の組み合わせ
集計用シートを作成します。
ここで、集計用シートのA2には集計対象のシート名(例:Sheet1)が入力されているものとします。また、集計用シートのB1には集計対象の商品名(例:商品A)が入力されているものとします(下記の「★サンプル図」を参照)。
集計用シートののB2に、以下のような式を入力します。
=SUMIFS(INDIRECT("'" & A2 & "'!$B$1:$B$10"), INDIRECT("'" & A2 & "'!$A$1:$A$10"), B1)
この式を、集計対象のシート数に応じてコピーし、最後にSUM関数を使って合計を求めます。
※コピーする場合は上記式の「A2」を「$A2」(列固定)、「B1」を「B$1」(行固定)のように調整するのがよいでしょう。
結果
以下のように、複数のシートから商品の売上データが集計されます。
商品A | 商品B | 合計 | |
Sheet1 | 100 | 200 | 300 |
Sheet2 | 300 | 400 | 700 |
Sheet3 | 500 | 600 | 1100 |
合計 | 900 | 1200 | 2100 |
以上のように、INDIRECT関数とSUMIFS関数を組み合わせることで、複数のシートから特定の条件に合致するデータを効率的に集計することができます。これにより、データが分散している場合でも、柔軟な集計が可能となります。
注意点
INDIRECT関数を使用する際には、シート名やセル範囲の指定に注意が必要です。シート名に空白や特殊文字が含まれる場合、シート名をシングルクォーテーションで囲むことでエラーを回避できます。また、セル範囲は適切な範囲を指定することで、計算速度の向上やエラーの回避につながります。
まとめ
ExcelのINDIRECT関数とSUMIFS関数を組み合わせることで、複数のシートからのデータ集計が容易になります。これにより、複雑なデータ構造に対応しながら、効率的な集計が可能となります。是非、この方法を試して、Excelのデータ集計スキルを向上させましょう。
コメント