スプレッドシートのPRODUCT関数の使い方|掛け算をまとめて計算
「セルの掛け算をしたいけど、* で1つずつつなぐのが面倒…」そんな経験、ありませんか?
セルが3個くらいなら =A1A2A3 で済みます。でも10個、20個と増えると式がどんどん長くなりますよね。途中でセルを1つ飛ばしてもミスに気づきにくいです。
そんなときに使えるのがPRODUCT関数です。セル範囲を指定するだけで掛け算をまとめて計算できます。
この記事では基本の使い方から実務活用パターン、SUM・SUMPRODUCTとの違いまで紹介します。
PRODUCT関数とは?
PRODUCT関数(読み方: プロダクト関数)は、指定した数値やセル範囲をすべて掛け算(積)して結果を返す関数です。
「PRODUCT」は英語で「積」を意味します。文字どおり「掛け算の結果」を求める関数ですね。
たとえばA1からA5に数値が入っているとします。 演算子を使うと =A1A2A3A4*A5 と書く必要があります。PRODUCT関数なら =PRODUCT(A1:A5) だけで同じ結果が得られます。
PRODUCT関数にできることをまとめると、次のとおりです。
- 指定したセル範囲の数値をすべて掛け算する
- 複数の離れたセル範囲をまとめて計算する
- 空白セルや文字列を自動的にスキップする
- 数値を直接引数に渡して計算する
「数値を全部掛けてね」とスプレッドシートにお願いする関数です。SUM関数が「全部足す」なら、PRODUCT関数は「全部掛ける」というイメージですね。
NOTE
PRODUCT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
PRODUCT関数の書き方(構文と引数)
基本構文
=PRODUCT(数値1, [数値2], ...)
カッコの中に、掛け算したい数値やセル範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値1 | 必須 | 掛け算する最初の数値またはセル範囲 |
| 数値2, … | 任意 | 追加の数値またはセル範囲(最大30個) |
引数にはセル範囲(A1:A10)、個別のセル(A1, B1, C1)、直接数値(10, 1.08)を指定できます。引数が1つだけの場合は、範囲内のすべての数値を掛け算します。
PRODUCT関数の基本的な使い方
ここでは実際にPRODUCT関数を使って、基本的な計算パターンを確認しましょう。
セル範囲をまとめて掛け算する
A1からA4に「2, 3, 5, 4」と入力されているとします。
=PRODUCT(A1:A4)
結果は 120 です。2 x 3 x 5 x 4 = 120 をまとめて計算してくれます。
演算子で書くと =A1A2A3A4 です。4個ならまだ許容範囲ですが、10個以上になるとPRODUCT関数のほうが断然ラクですよ。
複数の範囲や数値を組み合わせる
範囲と直接数値を混ぜて指定することもできます。
=PRODUCT(A1:A3, 10)
A1:A3の積にさらに10を掛けた結果が返ります。A1:A3が「2, 3, 5」なら、2 x 3 x 5 x 10 = 300 です。
離れたセルを個別に指定する
範囲が連続していない場合はセルをコンマで区切ります。
=PRODUCT(A1, C1, E1)
A1、C1、E1の3つの値を掛け算します。
空白セルがある場合の動作
PRODUCT関数と * 演算子の大きな違いが、空白セルの扱いです。
A1:A5に「3, (空白), 5, (空白), 2」と入っているとします。
=PRODUCT(A1:A5)
PRODUCT関数は空白セルを無視します。結果は 3 x 5 x 2 = 30 です。
一方、 演算子で =A1A2A3A4*A5 と書くと空白が0扱いになります。結果は 0 です。入力途中の表ではこの違いが大きいですよね。
PRODUCT関数の実務活用パターン
基本がわかったところで、仕事でよく使う3つのパターンを見てみましょう。
パターン1: 複数の割引率(掛け率)をまとめて掛ける
見積書や請求書で「定価に複数の掛け率を適用する」場面です。
B2に定価10,000、C2に仕切率0.7、D2に特別値引0.95、E2に消費税率1.10が入っているとします。
=PRODUCT(B2:E2)
結果は 7,315 です。10,000 x 0.7 x 0.95 x 1.10 = 7,315 ですね。
演算子で書くと =B2C2D2E2 です。掛け率の列が増えてもPRODUCT関数なら範囲を広げるだけで対応できます。
パターン2: 複利計算(成長倍率の連続適用)
投資の複利計算や売上の年間成長率を連続で掛けたいときに便利です。
A2:A6に5年分の成長倍率「1.05, 1.03, 1.08, 0.98, 1.04」が入っているとします。
=PRODUCT(A2:A6)
結果は約 1.192 です。5年間で元の値が約1.19倍になったことがわかります。
元本100万円の場合は次のように書きます。
=1000000 * PRODUCT(A2:A6)
結果は約 1,192,252 円です。元本に成長倍率を一括で掛けられるので、年ごとの計算列が不要になります。
TIP
利率が一定の場合は
=元本 * POWER(1+利率, 年数)のほうがシンプルです。利率が毎年変わる場合にPRODUCT関数が活躍します。
パターン3: 単位変換の一括計算
複数の変換係数を一度に掛けたいときにも使えます。
たとえば「5ヤードをセンチメートルに変換」する場合です。1ヤード = 3フィート、1フィート = 12インチ、1インチ = 2.54cmなので、次のように書けます。
=PRODUCT(5, 3, 12, 2.54)
結果は 457.2 cmです。変換係数をセルに入れておけば、別の単位変換にも使い回せますよ。
よくあるエラーと対処法
PRODUCT関数で困ったときの原因と対策をまとめました。
| エラー/症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数に直接文字列を指定した | セル参照に変更するか数値に修正する |
| 結果が0 | 範囲内に0のセルがある | 0を空白にするか、0以外のセルだけを参照する |
| 結果が0 | 空白に見えて実は0 | セルをクリックして数式バーを確認する |
| 想定より小さい値 | 範囲指定が足りない | 数式バーで範囲を確認し、必要なセルをすべて含める |
| 予期しない結果 | 数値に見える文字列が混在 | データクリーンアップで数値に変換する |
0が含まれると結果が0になる
PRODUCT関数で最も多い「想定外」がこれです。
掛け算なので、範囲のどこかに0が1つでもあると結果全体が0になります。空白セルは無視されますが、「0が入力されたセル」は計算に含まれてしまいます。
対処法はいくつかあります。
対処法1: 0を空白にする
入力前のセルには0ではなく空白のままにしておきます。PRODUCT関数は空白を無視するので、入力済みの値だけで計算できます。
対処法2: IF関数で0を除外する
0を含むセルをスキップしたい場合は、次のように書けます。
=PRODUCT(IF(A1:A5<>0, A1:A5, 1))
NOTE
Googleスプレッドシートではこの配列数式が自動的に展開されます。Excelの場合はCtrl+Shift+Enterが必要な場合があります。
0のセルを1に置き換えることで、掛け算の結果に影響を与えずスキップできます。
文字列が混在する場合
範囲内に文字列が混ざっていてもエラーにはなりません。PRODUCT関数は文字列を自動的に無視します。
ただし、引数に直接文字列を指定すると #VALUE! エラーになります。
=PRODUCT("abc", 5)
この数式はエラーです。文字列はセル参照で範囲に含める形なら問題ありません。
似た関数との違い・使い分け
PRODUCT関数と関連する関数を比較します。
| 関数名 | 機能 | 使う場面 |
|---|---|---|
| PRODUCT | すべての値の積を返す | セル範囲をまとめて掛け算したいとき |
| SUM | すべての値の合計を返す | セル範囲を足し算したいとき |
| SUMPRODUCT | 行ごとの積を合計する | 単価x数量の合計など |
SUM関数との対比
SUM関数とPRODUCT関数は「四則演算をまとめて実行する」という意味で対になる関数です。
| 比較項目 | SUM | PRODUCT |
|---|---|---|
| 演算 | 足し算(+) | 掛け算(x) |
| 空白セルの扱い | 0として加算(結果に影響なし) | 無視(結果に影響なし) |
| 0の扱い | 0を加算(結果に影響なし) | 0を乗算(結果が0になる) |
| 演算子の代替 | + で個別に足す | * で個別に掛ける |
| 主な用途 | 売上合計・経費集計 | 割引率・複利・単位変換 |
大きな違いは「0の影響」です。SUM関数は0を足しても結果に影響しません。一方、PRODUCT関数は0を1つでも掛けると結果全体が0になります。
SUMPRODUCT関数との違い
名前が似ていますが、役割が違います。
- PRODUCT関数: すべての値を掛け算する(純粋な積)
- SUMPRODUCT関数: 行ごとに掛け算してから合計する(積の和)
具体例で比較してみましょう。A列に「2, 3」、B列に「5, 4」があるとします。
=PRODUCT(A1:A2, B1:B2) → 2 x 3 x 5 x 4 = 120
=SUMPRODUCT(A1:A2, B1:B2) → (2x5) + (3x4) = 22
PRODUCT関数は4つの値をすべて掛けます。SUMPRODUCT関数は行ごとに掛けてから合計します。
「単価 x 数量の合計金額」を求めるならSUMPRODUCT関数を使いましょう。「複数の倍率をまとめて掛ける」ならPRODUCT関数が適しています。
Excelとの違い
PRODUCT関数の動作はExcelとほぼ同じです。
| 項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 基本動作 | 同じ | 同じ |
| 引数の上限 | 最大30個 | 最大255個 |
| 空白セルの扱い | 無視 | 無視 |
| 文字列の扱い | 無視 | 無視 |
| 0の扱い | 0として乗算 | 0として乗算 |
引数の上限が異なりますが、30個を超える掛け算は実務ではまず使いません。Excelと同じ書き方で使えますよ。
まとめ
PRODUCT関数のポイントをおさらいしましょう。
- PRODUCT関数は指定した値をすべて掛け算する関数
*演算子よりセルが多いときにスッキリ書ける- 空白セルや文字列は自動でスキップしてくれる
- 0が1つでもあると結果が0になるので注意
- SUM関数は「全部足す」、PRODUCT関数は「全部掛ける」
- SUMPRODUCT関数は「行ごとに掛けてから足す」で役割が違う
まずは =PRODUCT(A1:A5) のシンプルな形から試してみてください。掛け算するセルが多い場面で、式がスッキリして便利ですよ。
