SUMPRODUCT関数の使い方:範囲や配列要素の積を合計する

SUMPRODUCT関数の使い方:範囲や配列要素の積を合計する

SUMPRODUCT関数は、指定した範囲または配列要素どうしの積を合計する関数です。

同様のことは「SUM関数」を使ってもできますが、SUMPRODUCT関数を用いた方が手間も省け効率的です。

SUMPRODUCT関数の基本的な使い方

対応バージョン:Excel365 2019 2016 2013 2010

SUMPRODUCT関数の書式です。

=SUMPRODUCT(配列,[配列2],[配列3],…,[配列255])
※カッコ内の「配列,[配列2],[配列3],…,[配列255]」を引数といいます。
※引数〔配列〕は255個まで指定可能。

引数の説明

  • 〔配列〕:積を求めるセル範囲、または配列を指定。セル範囲や配列は、行列の大きさが同じ必要があります。

SUMPRODUCT関数の使用例

商品一覧の商品ごとに、個々に数量×単価で金額を計算し、G12セルに金額の総合計を求める例です。

SUMPRODUCT関数の基本的な使用例

=SUMPRODUCT(E2:E9,F2:F9)

数式の説明

  1. 第1引数〔配列〕に数量の範囲(E2:E9)を指定。
  2. 第2引数〔配列2〕に単価の範囲(F2:F9)を指定。

指定した範囲の数量×単価で金額を算出し、G12セルに計算結果の積となる金額の合計を求めています。

これと同じことを「SUM関数」を用いて行おうとすれば、各行の数量と単価を掛け算し結果をサンプルのようにG列に求め、最終的にSUM関数で合計することになります。

しかし、SUMPRODUCT関数を使えば、G列に各行の金額を求めることなく、各行の積の合計を一度に求めることができます。通常、数量×単価の金額欄を設けておくのが一般的ですが、SUMPRODUCT関数が使えれば、積の合計を求めるためにだけの金額欄を用意しておく必要がなくなります。

複数条件を指定して計算することも可能

条件を指定し、その条件を満たしたものの積を合計することもできます。条件を指定できれば、応用範囲も広がり実際の業務でも役立つ場面が多くなります。

下記のサンプルは、りんご(商品コード=100)やオレンジ(商品コード=200)だけの積を合計しています。G13セルが「りんご」の計算結果で、G14セルが「オレンジ」の計算結果です。

条件を指定して計算する

=SUMPRODUCT((A2:A9=100)*1,E2:E9*F2:F9)

条件を指定する場合は、カッコを付けて数式を指定します。例えば、(A2:A9=100)のように指定します。(A2:A9>100)とすれば、100を超えるものを対象として計算します。

条件が複数ある場合は、「*(AND条件)」演算子でつなぎます。例えば、(A2:A9=100)*(D2:D9=”ホッカイドウ”)とすれば、商品コードが100で産地カナが”ホッカイドウ”のものが計算対象です。

条件が1つしかない場合は今回のサンプルのように、(A2:A9=100)*1と指定します。

数式の説明

  1. 条件式を指定。商品コード=100のものを抜き出して計算する。条件は1つだけなので「(A2:A9=100)*1」とする。
  2. 条件式をコンマ(,)で区切り、計算式を指定。E2:E9*F2:F9(数量×単価)で積の合計を計算する。
既に各行の金額が求めてある場合

既に求めてある金額を合計する場合は以下のようになります。

=SUMPRODUCT((A2:A9=100)*1,G2:G9)

複数条件を満たす行の計算済みの金額(G列)を、単純に合計するだけです。

これと同じことは「SUMIFS関数」を使ってもできます。

=SUMIFS(G2:G9,A2:A9,”100″)

どちらが簡単かは難しいところですが、条件式だけみれば「SUMPRODUCT関数」の方が直感的に理解しやすいかもしれません。

SUMPRODUCT関数と同じ分類の関数

SUMPRODUCT関数と機能的に同じ分類の関数は以下のページで探せます。

Excel関数カテゴリの最新記事