例えば、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(シート名!セル名)で使えます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です