Excelで掛け算をするとき、「*」でセルを1つずつつないでいませんか。セルが3〜4個ならまだしも、10個、20個と増えると式が長くなって、どこまで続いているのか見えにくくなりますよね。途中のセルを1つ飛ばしていても気づきにくく、数字が合わないときの原因特定も大変です。
PRODUCT関数を使えば、セル範囲をまとめて指定するだけで掛け算が完了します。この記事では、基本の書き方から実務での活用パターン、*演算子やSUMPRODUCT関数との違い、エラー対処法までまとめて紹介します。
この記事は次のような人におすすめ
- Excelで大量のセルを掛け算したい人
- 「*」をたくさん並べる式をスッキリさせたい人
- PRODUCT関数と*演算子・SUMPRODUCT関数の違いを知りたい人
- 複利計算や連続割引の累積倍率を一発で出したい人
PRODUCT関数とは?掛け算を一括処理する関数
PRODUCT関数は、指定した数値やセル範囲の掛け算(積)をまとめて計算する関数です。読み方は「プロダクト」で、英語の “product”(積)が語源です。
たとえばセルA1からA5に入った数値をすべて掛け算したい場合、*演算子だと次のように書きます。
=A1*A2*A3*A4*A5
PRODUCT関数なら、同じ計算がこれだけで済みます。
=PRODUCT(A1:A5)
セルの数が増えるほど差が開くので、掛け算するセルが多い場面ではPRODUCT関数が断然便利です。範囲を広げたいときも、参照範囲の末尾をドラッグで伸ばすだけで済みます。
PRODUCT関数の書き方(構文と引数)
基本構文
=PRODUCT(数値1, [数値2], ...)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値1 | 必須 | 掛け算する最初の数値またはセル範囲 |
| 数値2, … | 省略可 | 追加の数値またはセル範囲(最大255個) |
引数にはセル範囲(A1:A10)も、個別のセル(A1, B1, C1)も、直接数値(10, 1.08)も指定できます。引数が1つだけの場合はコンマは不要です。
対応バージョンはExcel 2007以降すべて(Microsoft 365含む)で、Excel for Mac・Web版・モバイルでも使えます。Googleスプレッドシートでも同じ名前・同じ書き方で動作するので、Excelと両方使う人でも迷いません。
PRODUCT関数の基本的な使い方【3パターン】
ここでは具体的な数値を使って、基本的な3つのパターンを確認しましょう。
パターン1:セル範囲をまとめて掛け算する
A1からA4に「2, 3, 5, 4」と入力されているとします。
=PRODUCT(A1:A4)
結果は「120」です。2 x 3 x 5 x 4 = 120 をまとめて計算してくれます。範囲内のセルがすべて対象になるので、「どこまで掛けるか」を範囲で視覚的に指定できるのがポイントです。
パターン2:複数の範囲や数値を組み合わせる
範囲と個別の数値を混ぜて指定することもできます。
=PRODUCT(A1:A3, 10)
A1:A3の積にさらに10を掛けた結果が返ります。たとえばA1:A3が「2, 3, 5」なら、2 x 3 x 5 x 10 = 300 です。固定の倍率を末尾に掛ける用途(消費税1.1、共通割引0.9など)で便利です。
パターン3:離れたセルを個別に指定する
範囲が連続していない場合は、セルをコンマで区切ります。
=PRODUCT(A1, C1, E1)
A1、C1、E1の3つのセルの値を掛け算します。集計表で「単価列」「数量列」「割引列」が離れているときに、飛び飛びのセルだけを選べます。
PRODUCT関数の実務活用シーン【4例】
基本がわかったところで、実務でよく使う4つのパターンを見てみましょう。
活用例1:単価 x 数量 x 掛け率の計算(見積書・請求書)
見積書や請求書で「単価 x 数量 x 割引率」を一発で計算できます。B2に単価1,000、C2に数量5、D2に掛け率0.9が入っているとします。
=PRODUCT(B2:D2)
結果は「4,500」です。1,000 x 5 x 0.9 = 4,500 ですね。で書くと =B2C2*D2 ですが、「税率」や「手数料率」などの列が増えたときも、PRODUCT関数なら範囲を広げるだけで対応できます。運用で列が追加されやすい見積テンプレートほど、PRODUCT関数で書いておくと後が楽です。
活用例2:累積倍率(複利・成長率)の計算
投資の複利計算や、売上の年間成長率を連続で掛けたいときに便利です。E2:E6に「1.05, 1.03, 1.08, 0.98, 1.04」という5年分の成長倍率が入っているとします。
=PRODUCT(E2:E6)
結果は約「1.190」です。5年間で元の値が約1.19倍(19.0%成長)になったことがわかります。これを使えば、年によって成長率が異なるケースでも累積倍率を正確に出せます。元本100万円なら、5年後は =1000000*PRODUCT(E2:E6) で約119万円と一発です。
演算子で書くと =E2E3E4E5*E6 と長くなりますが、PRODUCT関数なら範囲指定だけで済むので、10年分・20年分と期間が伸びても式はそのままで対応できます。
活用例3:連続割引の実質割引率を計算する
セール期間中の割引を重ねがけすると、実質何%オフになるのか計算したいことがあります。「初回10%OFF、さらに5%OFF、さらにクーポン2%OFF」のような3段階割引の場合、倍率は0.9、0.95、0.98です。
=PRODUCT(0.9, 0.95, 0.98)
結果は「0.8379」です。つまり実質16.21%OFFということがわかります。足し算で「10+5+2=17%OFF」ではないので、正しく計算したいときに重宝します。
活用例4:空白セルが混在する表での掛け算
入力途中の表で空白セルがある場合、*演算子だと空白が0として扱われ、結果が0になってしまいます。PRODUCT関数なら空白セルを自動的にスキップするので、入力済みの値だけで計算してくれます。
=PRODUCT(A1:A5)
A1:A5が「3, , 5, , 2」(2つ空白)の場合、PRODUCT関数は3 x 5 x 2 = 30を返します。*演算子では0になってしまうので、この違いは大きいですよね。進行中の案件リストや、一部未入力がある在庫管理表では特に効果を発揮します。
PRODUCT関数と*演算子の違い
「掛け算ならでいいのでは?」と思うかもしれません。実はPRODUCT関数と演算子には、空白セルや文字列の扱いに大きな違いがあります。
| 条件 | PRODUCT関数 | *演算子 |
|---|---|---|
| 空白セル(範囲参照) | 無視して計算を続行 | 0として扱い、結果が0になる |
| 文字列(範囲参照) | 無視して計算を続行 | #VALUE! エラーになる |
| 論理値(範囲参照) | 無視して計算を続行 | TRUE=1、FALSE=0として計算 |
| 引数に直接文字列を指定 | #VALUE! エラー | #VALUE! エラー |
| セル数が多いとき | 範囲指定でスッキリ | 式が長くなる |
ポイントは「範囲の中に空白や文字列が混ざったとき」の挙動です。PRODUCT関数は数値以外を無視してくれるので、入力途中の表や、備考欄が混在する範囲でも安心して使えます。
使い分けの目安
- セルが2〜3個: 演算子のほうがシンプル(
=A1B1) - セルが4個以上: PRODUCT関数で範囲指定がおすすめ
- 空白や文字列が混在する可能性: PRODUCT関数を使う
- 複利・累積倍率: PRODUCT関数一択(範囲を広げるだけで拡張可能)
PRODUCT関数とSUMPRODUCT関数の使い分け
名前が似ていて混同されがちな関数にSUMPRODUCT関数があります。ひとことで言えば、役割がまったく違います。
| 関数 | 動きのイメージ | 結果 |
|---|---|---|
| PRODUCT | すべての値を1本の掛け算にする | 単一の積 |
| SUMPRODUCT | 複数の列を行ごとに掛けて、最後に全部足す | 積の合計 |
具体例で違いを確認
単価列 B2:B4 に「100, 200, 150」、数量列 C2:C4 に「5, 3, 2」が入っているとします。
PRODUCT関数の場合:
=PRODUCT(B2:B4, C2:C4)
結果は 100 x 200 x 150 x 5 x 3 x 2 = 90,000,000 です。すべての値を一本で掛け合わせてしまうので、売上計算には使えません。
SUMPRODUCT関数の場合:
=SUMPRODUCT(B2:B4, C2:C4)
結果は (100 x 5) + (200 x 3) + (150 x 2) = 1,400 です。行ごとに「単価×数量」を計算してから合計してくれます(売上合計の定番パターン)。
どちらを使うべき?
- 売上合計・加重平均・条件付き集計: SUMPRODUCT関数
- 連続した倍率の累積・単一行の積: PRODUCT関数
見積書で「単価×数量×割引率」を1行だけ計算するならPRODUCT、複数行の売上合計を出すならSUMPRODUCTと覚えておけば迷いません。
よくあるエラーと対処法
PRODUCT関数でエラーや想定外の結果が出たときは、以下の表を参考にしてみてください。
| エラー/症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数に直接文字列を指定した | セル参照に変更するか、文字列を数値に修正する |
| #VALUE! | 参照先に数値変換できない文字がある | IFERROR関数で囲んでエラー時の代替値を設定する |
| #NAME? | 関数名のタイプミス(PRODUT など) | 関数名を「PRODUCT」に修正する |
| 結果が0 | 範囲内に0のセルがある | 0のセルを空白にするか、条件付きで除外する |
| 想定より小さい値 | 掛け算するセルの範囲が足りない | 数式バーで範囲を確認し、必要なセルがすべて含まれているかチェック |
| 結果が想定より大きい | 別列の値まで範囲に含めてしまった | 範囲選択をやり直し、必要な列だけに絞る |
エラー対処のコツ
引数に直接 "abc" のような文字列を書くとエラーになります。一方、セル範囲の中に文字列が混ざっている場合は無視されるだけです。この違いを覚えておくと、トラブル時に素早く原因を特定できます。
また「結果が0になる」のは、範囲内に「空白」ではなく「0」が入っているケースがほとんどです。セルを1つずつクリックして中身を確認してみましょう。見た目が空白でも、実は数値の0が入っているパターンもよくあります。
Googleスプレッドシートでも使える?
PRODUCT関数はGoogleスプレッドシートでも同じ名前・同じ書き方で使えます。
=PRODUCT(A1:A5)
Excelで作ったファイルをGoogleスプレッドシートに取り込んでも、PRODUCT関数はそのまま動作します。モバイルのGoogleスプレッドシートアプリでも同じ書き方で使えるので、外出先でサッと複利計算や見積計算をしたいときにも便利です。
挙動も基本的に同じで、空白セルは無視、範囲内の文字列も無視されます。ExcelとGoogleスプレッドシートを両方使う人にとって、PRODUCT関数は覚えておいて損のない関数です。
似た関数との使い分け一覧
PRODUCT関数と名前が似ている関数や、掛け算・割り算に関連する関数をまとめて整理しておきましょう。
| 関数 | 機能 | 使う場面 |
|---|---|---|
| PRODUCT | 指定した値すべての積を返す | 単純な掛け算をまとめたいとき |
| SUMPRODUCT | 各行の積を合計する | 単価 x 数量の合計(売上集計)など |
| SUM | 指定した値の合計を返す | 足し算をまとめたいとき |
| QUOTIENT | 割り算の商(整数部分)を返す | 箱詰め数・時間換算など |
| MOD | 割り算の余りを返す | 偶奇判定・端数管理など |
PRODUCTとSUMPRODUCTは名前が似ていますが、前述のとおり役割が違います。PRODUCTは「すべてを掛ける」、SUMPRODUCTは「行ごとに掛けてから足す」です。売上合計のように「単価 x 数量」を行ごとに計算してから合算したい場合はSUMPRODUCTを使いましょう。
掛け算・割り算の基本操作をまとめて知りたい方は、「Excelで四則演算する方法」も参考にしてみてください。
まとめ
PRODUCT関数は「セル範囲をまとめて掛け算できる」便利な関数です。
- セルが多い掛け算は、*演算子よりPRODUCT関数がスッキリ
- 空白セルや文字列を自動で無視してくれるのが大きな強み
- 複利・連続割引・累積倍率など、実務でも活躍する場面は意外と多い
- SUMPRODUCTとの役割の違い(積の計算 vs 積の合計)を押さえれば使い分けに迷わない
掛け算するセルが2〜3個なら*で十分ですが、4個以上になったらPRODUCT関数を試してみてください。特に成長率や割引率のように「倍率を連続で掛ける」場面では、式がスッキリしてミスも減らせますよ。
biz-tactics の Excel関数リファレンス
Excel関数の一覧や基礎知識については、以下の記事からご覧いただけます。

