Excelで別途指定したシートのデータから特定分類のみ抽出して集計したい。
例えば、Excelで”臨時収入”に分類された金額の合計を合計したいとします。
- 集計結果を出力”集計結果”Sheetと、月別の金額データとして”3月度データ”Sheet、”4月度データ”Sheetの3種類のシートがあったとします。
- UIは、”集計結果”Sheet上で”3月度データ”または”4月度データ”を指定して、どちらかのSheetを選択して集計ができるとします。
データの指定はプルダウンの選択により”集計結果”SheetのA1列に選択したSheet名が入力されるとします。 - “4月度データ”、”5月度データ”Sheetは、A列が”臨時収入”のみを対象としたい”分類”列で、D列が合計を求めたい金額列だったとします。
- “4月度データ”、”5月度データ”Sheetは共に1行目はヘッダとし、データ件数は500件に満たないとします(2行目から501行目がデータの最大範囲と仮定)。
この前提条件下で、VBAでなく関数を使って実現します。
“集計結果”Sheetの合計を出力したいセルに以下の数式を入力すればOKです。
=SUMIF(INDIRECT($A$1&"!$A$2:$A$501"),"臨時収入",INDIRECT($A$1&"!$D$2:$D$501"))
SUMIFというのが、条件付きで合計を求める関数で、SUMIF(条件の範囲, 条件, 合計の範囲)です。
INDIRECTというのが、セル参照を動的に組み立てる関数でINDIRECT(シート名!セル名)で使えます。