PR

Excel SUMPRODUCT関数の使い方|掛け算の合計・複数条件・加重平均まで解説

Excel
記事内に広告が含まれています。

Excelで集計作業をしていると、

「個数×単価の合計を一発で出したい」
「複数条件に合うデータだけ集計したい」
「単純な平均ではなく、件数を考慮した平均を出したい」

と思ったことはありませんか?

そんなときに便利なのが、SUMPRODUCT関数です。

SUMPRODUCT関数は、名前だけ見ると少し難しそうに感じますが、実務ではかなり使える関数です。

たとえば、

  • 個数×単価の合計を出す
  • 条件に合うデータだけ合計する
  • 加重平均を計算する
  • 複数条件のランキングを作る

といった場面で活用できます。

この記事では、SUMPRODUCT関数の基本的な使い方から、実務で役立つ複数条件の集計、加重平均の計算方法まで解説します。

SUMPRODUCT関数とは?

SUMPRODUCT関数は、複数の範囲を掛け算して、その結果を合計する関数です。

SUMPRODUCT関数の基本構文は以下のとおりです。

=SUMPRODUCT(配列1,配列2,...)

たとえば、B列に「個数」、C列に「単価」がある場合、「個数」×「単価」をそれぞれ計算し、その合計を出したいことがあります。
通常であれば、D列に「個数×単価」の計算列を作ってから、最後にSUM関数で合計することが多いです。

しかし、SUMPRODUCT関数を使えば、補助列を作らずに一発で合計できます。

SUMPRODUCT関数の基本的な使い方

たとえば、以下のような表があるとします。

商品個数単価
A商品3100
B商品5200
C商品2150
D商品4300

このとき、SUMPRODUCT関数で合計金額を求めるには、以下の数式を使います。

=SUMPRODUCT(B2:B5,C2:C5)

この数式では、

3×100
5×200
2×150
4×300

をそれぞれ計算し、最後にすべて合計しています。

つまり、

300 + 1000 + 300 + 1200 = 2800

となります。

SUMPRODUCT関数を使うことで、計算用の列を追加しなくても、掛け算した結果の合計を求めることができます。

SUMPRODUCT関数で複数条件の集計をする

SUMPRODUCT関数は、複数条件の集計にも使えます。

たとえば、以下のような表があるとします。

氏名部署地域売上
佐藤営業部東日本120
鈴木営業部東日本150
田中総務部東日本90
高橋営業部西日本130
伊藤営業部東日本110

この表から、「営業部かつ東日本の売上合計」を求めたい場合は、以下の数式を使います。

=SUMPRODUCT(($B$2:$B$6="営業部")*($C$2:$C$6="東日本")*$D$2:$D$6)

この数式では、以下の条件を指定しています。

B列が「営業部」 かつ C列が「東日本」

その条件に当てはまる行だけ、D列の売上を合計しています。

複数条件集計の数式の仕組み

先ほどの数式をもう一度見てみます。

=SUMPRODUCT(($B$2:$B$6="営業部")*($C$2:$C$6="東日本")*$D$2:$D$6)

この数式では、条件に一致するかどうかを判定しています。

たとえば、

$B$2:$B$6="営業部"

は、B列が「営業部」かどうかを判定しています。
条件に合う場合はTRUE、合わない場合はFALSEになります。

条件式の結果はTRUE/FALSEになりますが、SUMPRODUCT関数の中で「*」を使って掛け算すると、TRUEは1、FALSEは0のように扱われます。

・TRUE  → 1
・FALSE → 0

そのため、

「営業部」である かつ 「東日本」である

という条件を満たした行だけが1になり、条件に合わない行は0になります。
最後に売上を掛けることで、条件に合う行の売上だけが残り、条件に合わない行は0として扱われます。

つまり、SUMPRODUCT関数では、「条件に合う行だけを残して合計する」という集計ができるわけです。

SUMIFS関数との違い

複数条件の合計だけであれば、SUMIFS関数でも対応できます。

たとえば、営業部かつ東日本の売上合計であれば、以下のように書けます。

=SUMIFS($D$2:$D$6,$B$2:$B$6,"営業部",$C$2:$C$6,"東日本")

このような単純な条件付き合計であれば、SUMIFS関数のほうが分かりやすいです。

一方で、SUMPRODUCT関数は、

  • 条件を掛け合わせて考えられる
  • 加重平均に使える
  • 配列計算の考え方を応用できる
  • 条件付きランキングなどにも応用できる

という特徴があります。

そのため、単純な条件付き合計ならSUMIFS、応用的な集計や計算まで広げたい場合はSUMPRODUCT、と考えると分かりやすいです。

SUMPRODUCT関数で加重平均を計算する

SUMPRODUCT関数は、加重平均を求めるときにも便利です。
加重平均とは、単純な平均ではなく、件数や重みを考慮して計算する平均のことです。

たとえば、5段階評価のアンケート結果が以下のようになっているとします。

評価人数
12
24
38
410
56

このとき、単純に1〜5の平均を取るのではなく、各評価を選んだ人数を考慮して平均を出す必要があります。

この場合は、以下の数式を使います。

=SUMPRODUCT(A2:A6,B2:B6)/SUM(B2:B6)

この数式では、「評価」×「人数」を計算し、その合計を人数の合計で割っています。

つまり、

(1×2 + 2×4 + 3×8 + 4×10 + 5×6) ÷ 人数の合計

という計算です。

これにより、回答人数を考慮した平均評価を求めることができます。

ここに「5段階評価の加重平均を計算した画像」を貼る

加重平均が役立つ場面

加重平均は、実務でもよく使います。

たとえば、以下のような場面です。

  • アンケートの平均評価を出す
  • サービスの平均利用期間を求める
  • 商品レビューの平均点を計算する
  • 単価と数量を考慮した平均単価を出す

単純な平均では、件数の多さや重みを反映できません。

一方で、SUMPRODUCT関数を使った加重平均なら、実際の件数や比率を反映した平均を出せます。

そのため、分析や集計ではかなり使いやすい計算方法です。

応用:SUMPRODUCT関数は条件付きランキングにも使える

SUMPRODUCT関数は、条件付きランキングを作るときにも使えます。

たとえば、

  • 部署ごとに売上順位を出したい
  • 地域と部署が同じ人の中で順位を出したい
  • 同点時に利益で順位を分けたい

といったケースです。

たとえば、部署と地域が同じ人の中で売上ランキングを出す場合は、以下のような数式を使います。

=SUMPRODUCT(($B$3:$B$14=B3)*($C$3:$C$14=C3)*($D$3:$D$14>D3))+1

この数式では、

「同じ部署」 かつ 「同じ地域」 かつ 「自分より売上が高い」

という条件を満たす人数を数え、最後に1を足して順位を出しています。

👉ただし、ランキングは「自分より上の人の数を数える」という考え方になるため、詳しい作り方は以下記事で解説しています。

SUMPRODUCT関数を使うときの注意点

SUMPRODUCT関数を使うときは、いくつか注意点があります。

範囲のサイズをそろえる

SUMPRODUCT関数では、指定する範囲のサイズをそろえる必要があります。

たとえば、以下のように範囲がずれているとエラーや誤計算の原因になります。
B列・D列は3行目から14行目まで、C列は3行目から15行目までになっているため、範囲の長さが違います。

正しくは、C列も14行目までに修正し、範囲をそろえることが必要です。

条件はかっこで囲み、「*」でつなぐ

複数条件で集計するときは、条件式をかっこで囲み、「*」でつなぐ必要があります。

=SUMPRODUCT(($B$2:$B$6="営業部")*($C$2:$C$6="東日本")*$D$2:$D$6)

このように、

・条件式をかっこで囲む
・条件式同士を「*」でつなぐ

ようにしましょう。

数値が文字列になっていないか確認する

売上や単価などが数値ではなく文字列になっていると、正しく計算できないことがあります。
見た目は数字でも、文字列として入力されている場合があるので注意しましょう。

うまく計算できない場合は、

  • セルの表示形式
  • 数値が文字列になっていないか
  • 余分なスペースが入っていないか

を確認してみてください。

データ量が多いと重くなることがある

SUMPRODUCT関数は便利ですが、大量のデータに対して多用すると、計算が重くなることがあります。
特に、列全体を指定するような数式は注意が必要です。

=SUMPRODUCT((B:B="営業部")*(C:C="東日本")*D:D)

このように列全体を指定すると、処理する範囲が大きくなりすぎる場合があります。

できれば、必要な範囲だけを指定するのがおすすめです。

=SUMPRODUCT(($B$2:$B$1000="営業部")*($C$2:$C$1000="東日本")*$D$2:$D$1000)

よくある質問(FAQ)

SUMPRODUCT関数は何に使う関数ですか?

SUMPRODUCT関数は、複数の範囲を掛け算して、その結果を合計する関数です。
個数×単価の合計、複数条件の集計、加重平均などに使えます。

SUMPRODUCT関数とSUMIFS関数はどちらを使えばいいですか?

単純な条件付き合計であれば、SUMIFS関数のほうが分かりやすいです。
一方で、加重平均や条件付きランキングなど、掛け算や配列計算を組み合わせたい場合は、SUMPRODUCT関数が便利です。

SUMPRODUCT関数で複数条件の集計はできますか?

できます。
たとえば、営業部かつ東日本の売上合計を求める場合は、以下のように書けます。

=SUMPRODUCT(($B$2:$B$6="営業部")*($C$2:$C$6="東日本")*$D$2:$D$6)

条件を「*」 でつなげることで、複数条件を満たすデータだけを集計できます。

SUMPRODUCT関数で加重平均は出せますか?

出せます。
たとえば、A列に評価、B列に人数がある場合は、以下のように計算できます。

=SUMPRODUCT(A2:A6,B2:B6)/SUM(B2:B6)

評価と人数を掛け合わせた合計を、人数の合計で割ることで、人数を考慮した平均を求められます。

SUMPRODUCT関数でランキングも作れますか?

作れます。
SUMPRODUCT関数を使えば、部署や地域などの複数条件に合うデータの中で、順位を出すこともできます。
ただし、ランキングは「自分より上の人の数を数える」という考え方になるため、詳しい作り方は以下記事で解説しています。

まとめ:SUMPRODUCT関数は実務の集計に便利

SUMPRODUCT関数は、複数の範囲を掛け算して、その結果を合計する関数です。

基本的な使い方としては、

  • 個数×単価の合計を出す
  • 複数条件に合うデータだけ集計する
  • 加重平均を計算する
  • 条件付きランキングに応用する

といった使い方があります。

最初は少し難しそうに見えるかもしれません。
しかし、考え方は、「条件に合うものだけを残して計算する」というイメージです。

特に、加重平均や複数条件の集計では、実務でも役立つ場面が多いです。

まずは、

=SUMPRODUCT(個数の範囲,単価の範囲)

のような基本形から試してみるのがおすすめです。

慣れてきたら、複数条件の集計や加重平均にも活用してみてください。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

🥷 「現代で暮らすゆる忍者」ラインスタンプシリーズ公開中!日常や仕事、夫婦の会話など様々なシーンを製作しています
▶ LINEスタンプ一覧はこちら

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

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