Excelで複雑な条件のデータを自動集計!SUMIFSと配列数式の応用

Excel小技part3

Excelにはデータを集計するための便利な関数がたくさんありますが、なかでもSUMIFS関数は「複数の条件で合計」を簡単に求められる定番機能です。
しかし、実務では「条件が増える」「期間を動的に変える」「複雑なフィルターをかける」といった場面が多く、SUMIFSだけでは対応しきれないこともあります。
そこで役立つのが配列数式(スピル数式)との組み合わせです。


1. SUMIFS関数の基本

=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)

たとえば、以下のような売上データがあるとします。

日付担当者商品売上金額
2025/8/1田中商品A5000
2025/8/1佐藤商品B8000
2025/8/2田中商品A3000
2025/8/2田中商品B6000

「担当者が田中」の売上合計を求めるには、

=SUMIFS(D2:D5, B2:B5, "田中")

これで 5000 + 3000 + 6000 = 14000 が返ります。


2. SUMIFSでできないこと

  • 「商品A または 商品B」のように、複数条件を「OR」で指定する
  • 「今月の売上」など、条件を動的に変化させたい
  • 複雑なフィルター(例:特定担当者かつ特定商品群)

こうした場合、配列数式と組み合わせると柔軟に対応できます。


3. 配列数式との組み合わせ

たとえば「担当者が田中 または 佐藤」の売上合計を求める場合、SUMIFSでは直接OR条件を指定できません。

配列数式を使うと次のように書けます(Excel 365 / 2021 の場合はスピル数式としてそのまま使えます)。

=SUM(SUMIFS(D2:D5, B2:B5, {"田中","佐藤"}))

この式では、{“田中”,”佐藤”} という配列を条件として渡し、両方の結果をSUMで合計しています。


4. 動的な期間集計の例

「今日から過去30日間の売上」を自動集計する場合:

=SUMIFS(D2:D100, A2:A100, ">=" & TODAY()-30, A2:A100, "<=" & TODAY())

この式は、日付列(A2:A100)が今日から30日前以降かつ今日までの範囲に含まれる売上(D列)を合計します。
条件の日付を変更すれば、自動で結果も更新されます。


5. 実務でよく使う応用パターン

  • 営業成績ランキング:SUMIFSで担当者別売上を集計 → LARGE関数で上位抽出
  • 複数商品カテゴリ集計:配列定数 {“A”,”B”,”C”} を条件に指定
  • 期間別比較:SUMIFSで前年同期と今年の同期間を別々に集計 → 差分を算出

6. 注意点

  • 配列数式はバージョンによっては Ctrl + Shift + Enter が必要(Excel 365 / 2021では不要)
  • 条件範囲と合計範囲のサイズは必ず一致させる
  • 配列の要素が多い場合、計算が重くなることがある

まとめ

SUMIFSは単体でも強力ですが、配列数式と組み合わせることで「OR条件」や「動的期間指定」など、さらに高度な集計が可能になります。
実務では「複雑な条件の自動集計」が求められる場面が多く、このテクニックを覚えておくと集計作業が大幅に効率化されます。
ぜひ、日々のExcel業務に取り入れてみてください。

コメント