Excel関数 逆引き集 | 条件付き積算 → SUMPRODUCT

Excel
スポンサーリンク

概要

「条件付き積算」は、“条件を満たす行だけ”について「単価×数量」などの掛け算を行い、その合計を出す計算です。
Excel では、これを SUMPRODUCT 関数でとてもきれいに書けます。

イメージはこうです。
「条件を満たす行は 1、満たさない行は 0 に変換 → その 1/0 を掛け算に混ぜて、欲しい行だけ積算する」。


SUMPRODUCT の基本と「条件付き積算」の考え方

SUMPRODUCT の基本動作

SUMPRODUCT の書式は次のとおりです。

=SUMPRODUCT(配列1, [配列2], [配列3], …)

やっていることはシンプルで、

  1. 配列同士を「同じ位置」ごとに掛け算する
  2. その掛け算結果をすべて合計する

という動きです。

例えば、B2:B5 に単価、C2:C5 に数量が入っているとき、

=SUMPRODUCT(B2:B5, C2:C5)

は、内部的には

= B2*C2 + B3*C3 + B4*C4 + B5*C5

を 1 本の式でやっているのと同じです。
これが「積算(掛け算の合計)」の基本形です。


条件付き積算の基本パターン

条件を 1/0 に変えて掛け算に混ぜる

「条件付き」にするためのコアアイデアは、条件を TRUE/FALSE → 1/0 に変換して掛け算に混ぜることです。

例えば、A 列に「部門」、B 列に「単価」、C 列に「数量」があるとします。
「部門が“営業”の行だけ、単価×数量を合計したい」場合は、次のように書けます。

=SUMPRODUCT(--(A2:A100="営業"), B2:B100, C2:C100)

ここでの動きはこうです。

  • (A2:A100="営業")
    → 営業なら TRUE、それ以外は FALSE の配列ができる
  • --(A2:A100="営業")
    → TRUE を 1、FALSE を 0 に変換(ダブルマイナスで数値化)
  • 1/0 × 単価 × 数量
    → 営業行:1×単価×数量 → そのまま
    → それ以外:0×単価×数量 → 0 になる
  • SUMPRODUCT が全部足す
    → 結果として「営業だけの単価×数量の合計」になる

これが「条件付き積算」の基本パターンです。


複数条件の条件付き積算

AND 条件(かつ)の場合

例えば、次のような表を考えます。

  • A 列:部門
  • B 列:月(”2025-09″ など)
  • C 列:単価
  • D 列:数量

「部門が“営業”かつ 月が“2025-09”の行だけ、単価×数量を積算したい」場合は、こう書きます。

=SUMPRODUCT(--(A2:A100="営業"), --(B2:B100="2025-09"), C2:C100, D2:D100)

動きは次の通りです。

  • (A2:A100="営業") → 営業なら TRUE
  • (B2:B100="2025-09") → 2025-09 なら TRUE
  • それぞれ -- で 1/0 に変換
  • 1/0 × 1/0 × 単価 × 数量
    → 両方の条件を満たす行だけが「1×1×単価×数量」として残る
    → どちらか一方でも条件を満たさない行は 0 になる
  • SUMPRODUCT がそれらを合計 → AND 条件付き積算

「AND 条件=掛け算で絞り込む」と覚えると、配列計算の感覚がつかみやすくなります。


条件付き積算のテンプレート集

1 条件での条件付き積算

部門が「営業」の行だけ、単価×数量を積算する例:

=SUMPRODUCT(--(A2:A100="営業"), B2:B100, C2:C100)

一般形で書くと:

=SUMPRODUCT(--(条件範囲=条件), 値1の範囲, 値2の範囲, …)

「条件を満たす行だけ、値1×値2×… を合計する」という形です。

複数条件(AND)の条件付き積算

部門が「営業」かつ 月が「2025-09」の行だけ、単価×数量を積算する例:

=SUMPRODUCT(--(A2:A100="営業"), --(B2:B100="2025-09"), C2:C100, D2:D100)

一般形で書くと:

=SUMPRODUCT(--(条件範囲1=条件1), --(条件範囲2=条件2), 値1の範囲, 値2の範囲, …)

条件が増えても、--(条件) を増やしていくだけです。


条件付き積算として使うときの注意点

配列のサイズを必ずそろえる

SUMPRODUCT に渡すすべての範囲(条件範囲・単価・数量など)は、行数・列数が同じである必要があります
例えば、

=SUMPRODUCT(--(A2:A100="営業"), B2:B90, C2:C100)

のように長さが違うと、#VALUE! エラーや意図しない結果の原因になります。

条件範囲と値の範囲の対応関係

条件範囲と、掛け算する値の範囲は「同じ行が対応している」必要があります。
行がずれていると、「別の行の単価×数量」を拾ってしまうので、範囲指定は慎重にそろえましょう。


例題

問題1

A2:A10 に「部門」、B2:B10 に「単価」、C2:C10 に「数量」が入っています。
部門が「営業」の行だけについて、「単価×数量」を合計したいとき、SUMPRODUCT を使ってどのような式を書けばよいか答えてください。

(ヒント:--(A2:A10="営業") を掛け算に混ぜます)

問題2

A2:A100 に「部門」、B2:B100 に「月(”2025-09″ など)」、C2:C100 に「単価」、D2:D100 に「数量」が入っています。
部門が「営業」かつ 月が「2025-09」の行だけについて、「単価×数量」を合計する式を書いてください。

問題3

次の式は、どのような条件付き積算を行っているか、日本語で説明してください。

=SUMPRODUCT(--(A2:A50="A班"), --(B2:B50="2025-10"), C2:C50, D2:D50)

「どの列に何が入っていて、どんな条件を満たす行の、何と何を掛け算して合計しているのか」を説明してみてください。

問題4

B2:B20 に「単価」、C2:C20 に「数量」が入っています。
次の 2 つの式は、結果として同じ値になります。なぜ同じになるのか、SUMPRODUCT の動きを踏まえて説明してください。

=SUMPRODUCT(B2:B20, C2:C20)
=SUMPRODUCT(--(ROW(B2:B20)>=2), B2:B20, C2:C20)

(ヒント:--(ROW(B2:B20)>=2) は、実質的にどんな配列になっているでしょうか)

問題5

次の式が #VALUE! エラーになりました。原因を「条件付き積算」という観点から説明してください。

=SUMPRODUCT(--(A2:A100="営業"), B2:B80, C2:C100)

どの範囲の長さが合っていないか、そして SUMPRODUCT がなぜそれを許容できないのかを言葉で説明してみてください。

タイトルとURLをコピーしました