更新日:、 作成日:

エクセル SUMPRODUCT 関数:セルの範囲同士を掛けた合計を求める

はじめに

エクセルの SUMPRODUCT 関数の使い方を紹介します。

SUMPRODUCT 関数はセルの範囲同士を掛け算した和の合計を求めます。

=SUMPRODUCT(A1:A3,B1:B3) のようにして、A 列 * B 列の和の合計を計算できます。

=SUMPRODUCT(IF(A1:A3="エクセル",B1:B3*C3:C6)) のようにして、条件を指定してセルの値が「エクセル」の範囲だけ掛け算できます。

金額 * 個数の合計を求めたいときに使用します。

掛け算した合計を求めるには「PRODUCT 関数」を使用します。
複数の条件で合計を求めるには「SUMIFS 関数」を使用します。

SUMPRODUCT 関数の引数

SUMPRODUCT(範囲1)
範囲の合計を求めます。

SUMPRODUCT(範囲1, 範囲2 …)
すべての範囲の対応するセル同士を掛け算した合計を求めます。

引数「範囲」セルの範囲、数値を指定できます。

使い方

SUMPRODUCT 関数の使い方を紹介します。

セルの範囲同士を掛け算する

列「B」* 列「C」の和の合計を求めます。

=SUMPRODUCT(B3:B4,C3:C4)

B3*C3 + B4*C4 のような式になります。

4

複数の範囲同士を掛け算する

列「B」* 列「C」* 列「D」の和の合計を求めます。

=SUMPRODUCT(B3:B4,C3:C4,D3:D4)

B3*C3*D3 + B4*C4*D4 のような式になります。

5

セルの範囲と数値を掛け算する

列「B」* 3, 4 を掛け算します。

=SUMPRODUCT(B3:B4,{3;4})

B3*3 + B4*4 のような式になります。配列を ; で区切ると縦に、, で区切ると横の値になります。

6

高度な使い方

SUMPRODUCT 関数と他の関数を組み合わせた使い方などを紹介します。

条件を指定する

条件に一致しているセルの範囲の掛け算をするには、判定用の列を作成してその中に「IF 関数」で条件を入力します。その結果を引数「範囲」に指定して合計を計算します。

名前が エクセル の条件を入力します。条件に一致しているときに、セルを掛け算します。

=IF(B2="エクセル",C2*D2)

その結果を引数「範囲」に指定して合計を求めます。

=SUMPRODUCT(E3:E6)
=SUM(E3:E6)
7

1 列の合計を求めるだけなので「SUM 関数」で求められます。

文字列かどうかや空白など、特定の値を条件にする方法は「COUNTIF 関数」にまとめています。

判定用の列を作成しない (スピル)

判定用の列を作成しないで掛け算するには「スピル」を使用します。

=SUM(IF(B3:B6="エクセル",C3:C6*D3:D6))

IF 関数」の中にセルの範囲を入力しているのでスピルします。

IF 関数」の条件に一致するときは、掛け算した結果を返しています。それを「SUM 関数」で合計します。

条件に「AND 関数」や「OR 関数」はスピルされないため使用できません。

スピルで AND や OR 条件にするには「スピル、動的配列数式の使い方」をご覧ください。
スピルは 365 または 2021 から使用できます。

数式を Ctrl + Shift + Enter で確定すると「配列数式」になり、すべてのバージョンで使用できます。

判定用の列を作成しない (ラムダ)

判定用の列を作成しないで掛け算するには「MAP 関数」を使用します。複雑なので詳細は関数のページをご覧ください。

=SUM(
MAP(B3:B6,C3:C6,D3:D6,
LAMBDA(b,c,d,
IF(b="エクセル",c*d,FALSE))))

MAP 関数」に条件を入力します。OR 条件にしたり、「EXACT 関数」を使用して大文字小文字を区別できます。

ラムダは 365 で使用できます。

解説

引数「範囲」が日付なら、日付の実際の値は数値なのでその値を計算します。

引数「範囲」に文字列や TRUE や FALSE、空のセルが含まれるときは、そのセルを無視します。

引数「範囲」と他の引数「範囲」の大きさが違うときはエラー #VALUE! になります。