SUMPRODUCT関数での複数条件の合計・集計が便利な理由

ここでは、SUMPRODUCT関数で「複数の条件に合ったデータを合計する方法」について解説します。

 

SUMPRODUCT関数はSUMIFS関数と同じ動きをする関数ですが、SUMIFS関数よりも優れた点があります。

 

SUMPRODUCT関数の使い方や、メリットなどを確認していきましょう。

1.SUMPRODUCT関数を使った例を確認

まず、「SUMPRODUCT関数を使った複数条件のデータの合計」がどのような形になるかを見てみましょう。

 

「条件が一つの場合」と「条件が複数の場合」の2パターンを、SUMIFS関数と比べながら見てみます。

 

1-1.条件が一つの場合

まずは、「条件が一つの場合」からです。

SUMPRODUCT関数を使って「複数の条件に合ったデータを合計」した場合の具体例

上の表は、お金の出入りを入力したものです。日付と入出金の区分、勘定科目(内容)、金額が入っています。

 

上の表をもとに「内容が『売上』」の金額を合計してみます。

 

結果、2・4・5・7・9・10行目が条件に合ったため、SUMPRODUCT関数は「187,000」を返してきました。

 

この時数式は、

=SUMPRODUCT((D2:D13="売上")*1,E2:E13)

となります。

 

これに対してSUMIFS関数で同じことをやろうとすると数式は、

=SUMIFS(E2:E13,D2:D13,"売上")

となり、どちらかというとSUMPRODUCT関数のほうが、直感的に条件式が分かりやすい印象です。

 

1-2.複数条件の場合

次に、「複数条件の場合」を見てみます。

SUMPRODUCT関数を使って「複数の条件に合ったデータを合計」した場合の具体例2

先ほどと同じ表から、「営業所は『A』」と「内容は『売上』」という2つの条件に合うデータの金額を合計してみます。

 

結果、2・5行目のデータが条件に合ったため、SUMPRODUCT関数は「32,000」を返してきました。

 

この時数式は、

=SUMPRODUCT((C2:C13="A")*(D2:D13="売上"),(E2:E13))

となります。

 

対してSUMIFS関数だと、

=SUMIFS(E2:E13,C2:C13,"A",D2:D13,"売上")

となり、こちらもSUMPRODUCT関数の方が、どのような条件にしたか見やすい気がします。

 

このように、SUMPRODUCT関数だと「条件式が見やすく」なります。

 

また、詳しくは後述しますが、「SUMIFS関数だと引数で他ブック参照するとエラーになりますが、SUMPRODUCT関数ではエラーにならない」ことも使った方がいい理由の一つです。

 

なお、SUMPRODUCT関数の基本的な使い方は次のページで詳しく解説しています。

⇒ SUMPRODUCT関数の基本的な使い方

2.SUMPRODUCT関数を使った数式の作り方

では次に、SUMPRODUCT関数を使った数式の作り方を説明します。

 

「条件が一つの場合」と「複数条件の場合」でルールが少し違いますので2パターン見てみましょう。

 

2-1.条件が一つの場合

まずは「条件が一つ」の場合です。

 

ここでは、先ほどの例と同じように「内容が『売上』」の金額の合計を求めてみます。

 

(1)数式バーに「=SUMPRODUCT(」と入力後、fxボタンを押す

SUMPRODUCT関数を使って「一つの条件に合ったデータを合計する」場合

 

(2)「配列1」に条件式を入れてカッコでくくり「*1」を付け、「配列2」には合計したい範囲を指定する

SUMPRODUCT関数を使って「一つの条件に合ったデータを合計する」場合 関数の引数ウィンドウ

 

(3)OKを押せば完了

条件が一つの場合のポイントは、以下の3つです。

 ① 条件式を「配列1」に入れ、カッコでくくる
 ② 条件式の後に「*1」を入れる
 ③ 合計範囲は「配列2」に入れる

 

特に②がなぜ必要か疑問だと思いますが、詳しく説明すると長くなるので、SUMPRODUCT関数で条件が一つの場合にはこういうものだと覚えてください。

2-2.複数条件の場合

次に「複数条件の場合」を見てみましょう。

 

先ほどと同じ表から、「営業所は『A』」「内容は『売上』」という2つの条件に合うデータの金額を合計してみます。

 

(1)数式バーに「=SUMPRODUCT(」と入力後、fxボタンを押す

SUMPRODUCT関数を使って「複数の条件に合ったデータを合計する」場合

 

(2)「配列1」に条件式を入れてそれぞれカッコでくくって「*」でつなげ、「配列2」には合計したい範囲を指定する

SUMPRODUCT関数を使って「複数の条件に合ったデータを合計」する場合 関数の引数ウィンドウ

 

(3)OKを押せば完了

こちらも、ポイントは以下の3つです。

 ① 条件式を「配列1」に入れ、カッコでくくる
 ② 条件式を「*」でつなげる
 ③ 合計範囲は「配列2」に入れる

 

「*」でつなぐことで「TRUE×TRUE=1」、「TRUE×FALSE=0」といったような計算が行毎にされ、結果すべての条件に合う行のみが「1」となって、これをもとに何行を合計するかが決まります。

 

条件は「*」でつなげば、3つや4つといった複数条件の指定も可能です。

 

例えば4つの条件だと数式は、

=SUMPRODUCT((条件式1)*(条件式2)*(条件式3)*(条件式4),E2:E13)

といった形になります。

2-3.いろいろな条件式の作り方

では次に、SUMPRODUCT関数での条件式の作り方をもっと掘り下げてみます。

 

条件式を指定する時の基本的なルールや、比較演算子の使い方です。

 

2-3-1.条件式指定時の基本的なルール

SUMPRODUCT関数の条件式は、次の6つを守って作り必要があります。

 

① 条件式は「範囲」→「比較演算子」→「条件値」の順番に書く

 ※ 例)「A2:A10="合格"」

 ※ エラーにはなりませんが、一般的にはこの形です

 

② 指定する範囲は複数列を指定しない

 ※複数列指定すると#VALUE!エラーになります

 

③ 条件値は直接指定とセル参照のどちらでも可

 ※「A2:A10="合格"」と「セルB1に『合格』と入力して『A2:A10=B1』」はどちらも同じ意味になります

 

④ 条件式ごとにカッコでくくる

 ※ 例)「(A2:A10="合格")」、「(B2:B10="国語")」

 

⑤ 条件一つは後ろに「*1」を付け、複数は「*」でつなげる

 ※条件が一つの時:「(A2:A10="合格")*1」

  条件が二つの時:「(A2:A10="合格")*(B2:B10="国語")」

 

⑥ 条件値が文字列、日付の場合には""でくくる

 ※ 例)「(A2:A10="合格")」、「(B2:B10="2021/4/1")」

 

以上の6つを守れば、正しい条件式が書けます。

 

2-3-2.比較演算子の使い方

比較演算子とは、「=」や「<」、「>」のことです。

 

SUMPRODUCT関数に限らずエクセルでは、これらの比較演算子を使って、「等しい」、「等しくない(以外)」、「以上」、「以下」、「超える」、「未満」といった条件を指定することができます。

 

比較演算子のそれぞれの意味や書き方は、次の通りです。

演算子 意味 入力例
等しい =2(2と等しい)
 >  超える  >2(2を超える)
 <  未満  <2(2未満)
 >=  以上  >=2(2以上)
 <=   以下  <=2(2以下) 
<> 以外 <>2(2以外)

例えば「=」は「等しい(同じ)」で、「(A2:A10=1)」だと条件は「値が『1』のセル」となります。

 

「<」は「未満」で(A2:A10<1)」だと「1未満」、「<=」は「以下」で「(A2:A10<=1)」だと「1以下」という条件になります。

 

「>」は「を超える」で「(A2:A10>1)」だと「1を超える」、「>=」は「以上」で「(A2:A10>=1)」だと「1以上」です。

 

そして「<>」は「以外」で「(A2:A10<>1)」だと「1以外」となります。

 

このように、指定したい条件に応じて比較演算子を使い分けましょう。


口コミ・評判のいいExcel本の紹介】


3.SUMPRODUCT関数のメリット・デメリット

最後に「SUMPRODUCT関数を使うメリットとデメリット」を説明します。

 

3-1.SUMPRODUCT関数のメリット

SUMPRODUCT関数を使う一番のメリットは「SUMIFS関数と違って計算式の中で他ブックを参照してもエラーが出ない」ことです。

 

SUMIFS関数は「他ブック参照でエラーが出る」のが難点で、引数で他のブックのセルや範囲を指定し、そのブックを閉じると#VALUE!エラーになります。

 

ですから、他のファイルのデータを条件指定して合計したい時にはSUMPRODUCT関数を使ったほうがいいのです。

 

また、一番始めで見たように、SUMPRODUCT関数を使った数式は「条件式が分かりやすい」こともメリットの一つです。

 

3-2.SUMPRODUCT関数のデメリット

反対に、SUMPRODUCT関数のデメリットは「SUMPRODUCT関数を知らない人が多い」ことです。

 

SUMIFS関数に比べてメジャーでないこの関数は、何を求めようとしているのかを分からない人が多いのです。

 

また、SUMPRODUCT関数はいろいろなことができる関数なので、その面でも作った人以外は分かりづらいかもしれません。

 

3-3.SUMPRODUCT関数とSUMIFS関数の使い分けのポイント

以上のことから「他のファイルのデータを条件指定して合計する時にはSUMPRODUCT関数」を、「同じファイルのデータを条件指定して合計する時にはSUMIFS関数」を利用することをお勧めします。

 

以上、参考になれば幸いです。

1
2
3
4

SUMPRODUCT関数の、他の記事へのリンクはこちらです。

  • SUMPRODUCT関数その他の記事へのリンクはこちら
Top