Excelにはデータを集計するための便利な関数がたくさんありますが、なかでもSUMIFS関数は「複数の条件で合計」を簡単に求められる定番機能です。
しかし、実務では「条件が増える」「期間を動的に変える」「複雑なフィルターをかける」といった場面が多く、SUMIFSだけでは対応しきれないこともあります。
そこで役立つのが配列数式(スピル数式)との組み合わせです。
1. SUMIFS関数の基本
=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
たとえば、以下のような売上データがあるとします。
| 日付 | 担当者 | 商品 | 売上金額 |
|---|---|---|---|
| 2025/8/1 | 田中 | 商品A | 5000 |
| 2025/8/1 | 佐藤 | 商品B | 8000 |
| 2025/8/2 | 田中 | 商品A | 3000 |
| 2025/8/2 | 田中 | 商品B | 6000 |
「担当者が田中」の売上合計を求めるには、
=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業務に取り入れてみてください。



コメント