スプレッドシートのPRODUCT関数で掛け算をまとめる|割引率一括・複利計算・単位変換の実務4パターン

スポンサーリンク

「セル10個の掛け算を * でつないだら、式が長すぎて画面から見切れた…」そんな経験、ありませんか?

セルが3個くらいなら =A1A2A3 でも十分です。でも10個、20個と増えると、式がどんどん長くなります。途中でセルを1つ飛ばしてもミスに気づきにくいですよね。さらに空白セルが混ざると、* 演算子では結果が0になってしまうトラブルも起きがちです。

そんなときに使えるのが、スプレッドシートのPRODUCT関数です。セル範囲を指定するだけで、掛け算をまとめて計算できますよ。

この記事では、PRODUCT関数の基本的な使い方から実務でよく使うパターンまで解説します。割引率の一括適用・複利計算・単位変換などを具体例で紹介しますよ。SUM・SUMPRODUCT・POWERとの違いも比較しますので、似た関数との使い分けに迷っている方もぜひ参考にしてください。

スプレッドシートで掛け算する3つの方法|*・MULTIPLY・PRODUCTの使い分け

結論から言うと、2つの数を掛けるだけなら =A1B1 で十分です。(アスタリスク)は関数ではなく演算子で、キーボードの「×」ではなく半角の * を使います。

関数が必要になるのは、掛けるセルが3つ以上あるときや、セル範囲をまとめて掛けたいときです。スプレッドシートには掛け算の手段が3つあるので、違いを表で整理しましょう。

項目* 演算子MULTIPLY関数PRODUCT関数
書き方=A1B1C1=MULTIPLY(A1, B1)=PRODUCT(A1:C1)
掛けられる数制限なし必ず2つ1〜255個
範囲指定(A1:A3)不可不可可
空白セル0として扱う0として扱う無視する
Excelとの互換そのまま使えるExcelにはないそのまま使える

ポイントは、MULTIPLY関数が「2つの値専用」で範囲を渡せないことです。実務では * と結果が変わらないため、あえて選ぶ理由はほとんどありません。しかもExcelに同名の関数がないので、ファイルを持ち出すとエラーの原因になります。MULTIPLY関数の詳しい挙動はスプレッドシートのMULTIPLY関数で解説しています。

迷ったときは次の基準で選んでください。

  • 2つの値を掛ける: * 演算子
  • 3つ以上、またはセル範囲を掛ける: PRODUCT関数
  • 空白を0扱いにしたくない: PRODUCT関数

Excelで同じ計算をしたい方は、ExcelのPRODUCT関数の使い方も参考になります。

スプレッドシートのPRODUCT関数とは?

スプレッドシートのPRODUCT関数(読み方: プロダクト関数)は、指定した数値やセル範囲をすべて掛け算する関数です。引数として渡したすべての数値の積を返します。

「PRODUCT」は英語で「積」を意味します。文字どおり「掛け算の結果」を求める関数ですね。数学関数のカテゴリに分類されています。

たとえばA1からA5に数値が入っているとします。 演算子を使うと =A1A2A3A4*A5 と書く必要がありますよね。PRODUCT関数なら =PRODUCT(A1:A5) だけで同じ結果が得られます。

PRODUCT関数にできることをまとめると、次のとおりです。

  • 指定したセル範囲の数値をすべて掛け算する
  • 複数の離れたセル範囲をまとめて1つの式で計算する
  • 空白セルや文字列を自動的にスキップする
  • 数値を直接引数に渡して計算する
  • 配列定数 {2,3,5} のような形式も受け付ける

「数値を全部掛けてね」とスプレッドシートにお願いする関数です。SUM関数が「全部足す」なら、PRODUCT関数は「全部掛ける」というイメージですね。

NOTE

PRODUCT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心ですよ。

PRODUCT関数の書き方(構文と引数)

基本構文

=PRODUCT(数値1, [数値2], ...)

カッコの中に、掛け算したい数値やセル範囲を指定します。

引数の説明

引数必須/任意説明
数値1必須掛け算する最初の数値またはセル範囲
数値2, …任意追加の数値またはセル範囲(最大255個)

引数にはセル範囲(A1:A10)、個別のセル(A1, B1, C1)、直接数値(10, 1.08)を指定できます。引数が1つだけの場合は、その範囲内のすべての数値を掛け算しますよ。

引数として渡せるデータの扱い

PRODUCT関数は、引数に渡したデータの型によって挙動が変わります。最初に整理しておくと混乱が減りますよ。

データ型扱い
数値乗算対象
数値が入ったセル参照乗算対象
空白セルスキップ(無視)
文字列が入ったセルスキップ(無視)
0が入ったセル0として乗算(結果が0になる)
直接渡した非数値文字列#VALUE! エラー

「空白セル」と「0が入ったセル」の扱いが違うのが最大のポイントです。後ほど詳しく解説しますね。

PRODUCT関数の基本的な使い方

ここでは実際にPRODUCT関数を使って、基本的な計算パターンを確認しましょう。

セル範囲をまとめて掛け算する

A1からA4に「2, 3, 5, 4」と入力されているとします。

=PRODUCT(A1:A4)

結果は 120 です。2 × 3 × 5 × 4 = 120 をまとめて計算してくれます。

01 result product basic

演算子で書くと =A1A2A3A4 です。4個ならまだ許容範囲ですが、10個以上になるとPRODUCT関数のほうが断然ラクですよ。

複数の範囲や数値を組み合わせる

範囲と直接数値を混ぜて指定することもできます。

=PRODUCT(A1:A3, 10)

A1:A3の積にさらに10を掛けた結果が返ります。A1:A3が「2, 3, 5」なら、2 × 3 × 5 × 10 = 300 です。

「セル範囲の積に消費税率1.10を掛ける」といった用途で便利ですよ。

離れたセルを個別に指定する

範囲が連続していない場合はセルをコンマで区切ります。

=PRODUCT(A1, C1, E1)

A1、C1、E1の3つの値を掛け算します。間にあるB1やD1は計算に含まれません。間にラベル列が挟まっている表でも、必要な数値セルだけをピンポイントで指定できますよ。

空白セルがある場合の動作

PRODUCT関数と * 演算子の大きな違いが、空白セルの扱いです。

A1:A5に「3, (空白), 5, (空白), 2」と入っているとします。

=PRODUCT(A1:A5)

PRODUCT関数は空白セルを無視します。結果は 3 × 5 × 2 = 30 です。

一方、 演算子で =A1A2A3A4*A5 と書くと空白が0扱いになります。結果は 0 ですね。入力途中の表ではこの違いが大きいですよ。

02 result blank cells

「データ入力がまだ途中で、一部のセルが空欄」という場面でも、PRODUCT関数なら入力済みの値だけで計算してくれます。集計用の表ではPRODUCT関数のほうが安全ですね。

単価×数量を列ごとにまとめて計算する

PRODUCT関数は、範囲内の全値を1つの積にまとめる関数です。「各行の単価×数量を、行ごとに出したい」という場面には向きません。この場合は * 演算子を列全体に広げます。

A列に単価、B列に数量が入っているとして、C2に次の式を入れます。

=A2*B2

C2を選ぶと右下に小さな青い四角(フィルハンドル)が出ます。これをダブルクリックすると、下の行へ式がコピーされます。ドラッグで必要な行まで引き下げても同じです。

行が増えても自動で計算してほしいなら、ARRAYFORMULA関数を使う方法もあります。C2に1つだけ式を入れれば、列全体に結果が並びます。

=ARRAYFORMULA(A2:A*B2:B)

ただし、データのない行には0が並びます。見た目を整えるなら、空欄の行を空白のままにする書き方が実務向きです。

=ARRAYFORMULA(IF(A2:A="","",A2:A*B2:B))

ARRAYFORMULA関数の仕組みはスプレッドシートのARRAYFORMULA関数で詳しく扱っています。オートフィル全般ならExcelとGoogleスプレッドシートのオートフィル比較も便利です。

WARNING

=PRODUCT(A2:A10, B2:B10) は、行ごとの積にはなりません。A列とB列の全値を1つに掛け合わせた結果が返ります。行ごとに掛けて合計したいときは、SUMPRODUCT関数を使いましょう。

税率や掛け率のセルを固定して掛ける

消費税率のように「全行で同じセルを掛けたい」場面では、絶対参照($)を使います。

F1に税率1.1を入れて、C2に次の式を入れたとします。

=A2*$F$1

この式を下へコピーしても、$F$1 はずれずに F1 を参照し続けます。$ を付けずに =A2*F1 のままコピーすると、参照先が F2、F3 と下にずれていきます。F2以降は空白なので、0が並ぶという失敗が起きがちです。

$ は手入力でも付けられます。数式の編集中に参照部分を選んで、F4キーを押す方法もあります。仕組みの詳細は絶対参照と相対参照の違いで確認してください。

端数が出る計算では、結果を丸める処理が必要になることもあります。四捨五入ならROUND関数、切り上げならROUNDUP関数、切り捨てならROUNDDOWN関数を組み合わせましょう。

パーセントを掛けるときの書き方

割引や税の計算では、パーセントの入れ方で迷いやすいものです。考え方はシンプルで、セルに 10% と入力すると、中身は0.1として扱われます。

やりたいこと式の例
10%を掛ける=A1*10%
消費税10%を加える=A1*1.1
10%割引にする=A1*(1-10%)

倍率の1.1と、パーセントの10%を混同しないよう注意してください。「加える」のか「掛ける」のかで、使う数字が変わります。

PRODUCT関数の実務活用パターン

基本がわかったところで、仕事でよく使うパターンを見てみましょう。

パターン1: 複数の割引率(掛け率)をまとめて掛ける

見積書や請求書で「定価に複数の掛け率を適用する」場面です。

B2に定価10,000、C2に仕切率0.7、D2に特別値引0.95、E2に消費税率1.10が入っているとします。

=PRODUCT(B2:E2)

結果は 7,315 です。10,000 × 0.7 × 0.95 × 1.10 = 7,315 ですね。

03 result discount rate

演算子で書くと =B2C2D2E2 です。掛け率の列が増えてもPRODUCT関数なら範囲を広げるだけで対応できます。新しい割引キャンペーン列を追加してもメンテが楽ですよ。

TIP

掛け率の表では、未確定の列を空白にしておくとPRODUCT関数が自動でスキップしてくれます。0を入れると結果が0になってしまうので、「未確定=空白」のルールを徹底するのがコツです。

パターン2: 複利計算(成長倍率の連続適用)

投資の複利計算や売上の年間成長率を連続で掛けたいときに便利です。

A2:A6に5年分の成長倍率「1.05, 1.03, 1.08, 0.98, 1.04」が入っているとします。

=PRODUCT(A2:A6)

結果は約 1.190 です。5年間で元の値が約1.19倍になったことがわかります。

元本100万円の場合は次のように書きます。

=1000000 * PRODUCT(A2:A6)

結果は約 1,190,446 円です。元本に成長倍率を一括で掛けられるので、年ごとの計算列が不要になります。

利率が一定の場合は POWER関数のほうがシンプルです。年利5%固定で5年間なら次のように書けます。

=1000000 * POWER(1.05, 5)

使い分けは次のとおりです。

  • POWER関数: 同じ数値を繰り返し掛ける(利率一定の複利、面積計算など)
  • PRODUCT関数: 異なる数値を順に掛ける(年ごとに変動する成長率、変則的な割引率など)

「毎年違う」がPRODUCT、「毎年同じ」がPOWERと覚えておくと迷いません。

パターン3: 単位変換の一括計算

複数の変換係数を一度に掛けたいときにも使えます。

たとえば「5ヤードをセンチメートルに変換」する場合です。1ヤード = 3フィート、1フィート = 12インチ、1インチ = 2.54cmなので、次のように書けます。

=PRODUCT(5, 3, 12, 2.54)

結果は 457.2 cmです。変換係数をセルに入れておけば、別の単位変換にも使い回せますよ。

パターン4: 独立事象の確率を掛け合わせる

統計や品質管理では「独立した複数の事象がすべて発生する確率」を扱います。

たとえば3つの部品がそれぞれ0.99、0.995、0.98の信頼度(故障しない確率)を持つとします。システム全体の信頼度は次のように求められますよ。

=PRODUCT(A1:A3)

A1:A3に「0.99, 0.995, 0.98」を入れると、結果は約 0.9656(約96.56%)です。

部品が増えても、信頼度の列を追加して範囲を広げるだけで全体信頼度が計算できます。サーバの稼働率計算にも応用できますよ。

よくあるエラーと対処法

PRODUCT関数で困ったときの原因と対策をまとめました。

エラー/症状原因対処法
#VALUE!引数に直接非数値文字列を指定したセル参照に変更するか数値に修正する
#NAME?関数名のスペルミス(PRODACT など)関数名のスペルを確認する
#N/A参照セルに #N/A エラーがあるIFERROR/IFNA でエラーを処理する
結果が0範囲内に0のセルがある0を空白にするか、IF関数で0以外だけを参照する
結果が0空白に見えて実は0セルをクリックして数式バーを確認する
想定より小さい値範囲指定が足りない数式バーで範囲を確認し必要なセルをすべて含める

0が含まれると結果が0になる

PRODUCT関数で最も多い「想定外」がこれです。

掛け算なので、範囲のどこかに0が1つでもあると結果全体が0になります。これは数学的に正しい挙動ですが、実務では「0と空白を取り違えた」というケースが多いんですよ。

空白セルは無視されますが、「0が入力されたセル」は計算に含まれて結果を0にしてしまいます。対処法はいくつかあります。

対処法1: 0を空白にする

入力前のセルには0ではなく空白のままにしておきます。PRODUCT関数は空白を無視するので、入力済みの値だけで計算できますよ。

対処法2: IF関数で0を除外する

0を含むセルをスキップしたい場合は、次のように書けます。

=PRODUCT(IF(A1:A5<>0, A1:A5, 1))

0のセルを1に置き換えることで、掛け算の結果に影響を与えずスキップできます。1を掛けても値が変わらない、という掛け算の性質を利用したテクニックですね。

NOTE

Googleスプレッドシートではこの配列数式が自動的に展開されます。Excelの場合、Excel 2019以前はCtrl+Shift+Enterで配列数式として確定する必要があります。Excel 365以降は動的配列機能により自動展開されますよ。

文字列が混在する場合

範囲内に文字列が混ざっていてもエラーにはなりません。PRODUCT関数は文字列を自動的に無視します。

ただし、引数に直接文字列を指定すると #VALUE! エラーになります。

=PRODUCT("abc", 5)

この数式はエラーです。文字列はセル参照で範囲に含める形なら問題ありません。

似た関数との違い・使い分け

PRODUCT関数と関連する関数を比較します。

関数名機能使う場面
PRODUCTすべての値の積を返すセル範囲をまとめて掛け算したいとき
SUMすべての値の合計を返すセル範囲を足し算したいとき
SUMPRODUCT行ごとの積を合計する単価×数量の合計など
POWERべき乗を返す同じ数値を繰り返し掛けるとき
MULTIPLY2つの数値を掛ける2値専用の掛け算

SUM関数との対比

SUM関数とPRODUCT関数は「四則演算をまとめて実行する」という意味で対になる関数です。

比較項目SUMPRODUCT
演算足し算(+)掛け算(×)
空白セルの扱い0として加算(結果に影響なし)無視(結果に影響なし)
0の扱い0を加算(結果に影響なし)0を乗算(結果が0になる)
文字列の扱い無視無視
主な用途売上合計・経費集計割引率・複利・単位変換

大きな違いは「0の影響」です。SUM関数は0を足しても結果に影響しません。一方、PRODUCT関数は0を1つでも掛けると結果全体が0になります。

「足すなら0は無害、掛けるなら0は致命的」と覚えておくとよいですよ。

SUMPRODUCT関数との違い

名前が似ていますが、役割が違います。

  • PRODUCT関数: すべての値を掛け算する(純粋な積)
  • SUMPRODUCT関数: 行ごとに掛け算してから合計する(積の和)

具体例で比較してみましょう。A列に「2, 3」、B列に「5, 4」があるとします。

=PRODUCT(A1:A2, B1:B2)    → 2 × 3 × 5 × 4 = 120
=SUMPRODUCT(A1:A2, B1:B2) → (2×5) + (3×4) = 22

PRODUCT関数は4つの値をすべて掛けます。SUMPRODUCT関数は行ごとに掛けてから合計します。

04 result product vs sumproduct

「単価 × 数量の合計金額」を求めるならSUMPRODUCT関数を使いましょう。「複数の倍率をまとめて掛ける」ならPRODUCT関数が適しています。

Excelとの違い

PRODUCT関数の動作はExcelとほぼ同じです。

項目GoogleスプレッドシートExcel
基本動作同じ同じ
引数の上限最大255個最大255個
空白セルの扱い無視無視
文字列の扱い無視無視
配列数式自動展開Excel 365は自動、2019以前はCtrl+Shift+Enter

引数の上限は両方とも255個ですが、255個を超える掛け算は実務ではまず使いません。Excelと同じ書き方で使えるので、スプレッドシートとExcelを併用している方も安心ですよ。

掛け算に関するよくある質問

スプレッドシートで掛け算の記号は何ですか?

半角の (アスタリスク)です。=A1B1 のように書きます。「×」の文字を入力しても計算されないので気をつけましょう。

掛け算の関数は何ですか?

代表的なのはPRODUCT関数で、セル範囲を指定して一括で掛けられます。MULTIPLY関数もありますが、2つの値専用で範囲は渡せません。

掛け算と足し算を混ぜるとどうなりますか?

四則演算の通常ルールどおり、掛け算が先に計算されます。足し算を先にしたいときはカッコで囲みます。

=(A1+B1)*C1

割り算はどう書きますか?

/(スラッシュ)を使い、=A1/B1 と書きます。0で割るとエラーになる点だけ覚えておいてください。

ExcelとGoogleスプレッドシートで書き方は同じですか?

* 演算子とPRODUCT関数は同じ書き方で使えます。MULTIPLY関数はスプレッドシート側にしかないため、Excelに移す予定のファイルでは避けるのが無難です。

* で掛けるとエラーになるのに、PRODUCT関数では出ないのはなぜですか?

セルに文字列が入っているのが原因です。=A1*B1 は文字列を含むと #VALUE! エラーになります。一方、PRODUCT関数は文字列を無視して残りの数値だけを掛けます。

エラーが出ないぶん、気づかないまま別の値になることもあります。数字なのに左寄せになっているセルは、文字列の可能性が高いです。数値かどうかはISNUMBER関数で調べられ、VALUE関数で数値に直せます。

まとめ

スプレッドシートのPRODUCT関数のポイントをおさらいしましょう。

  • 構文は =PRODUCT(数値1, [数値2], ...) で、指定した値をすべて掛け算する
  • * 演算子よりセルが多いときにスッキリ書ける
  • 空白セルや文字列は自動でスキップしてくれる
  • 0が1つでもあると結果が0になるので注意
  • 0を残したまま除外したい場合は =PRODUCT(IF(範囲<>0, 範囲, 1)) で対応する
  • SUM関数は「全部足す」、PRODUCT関数は「全部掛ける」
  • SUMPRODUCT関数は「行ごとに掛けてから足す」で役割が違う
  • 同じ値を繰り返し掛けるならPOWER関数のほうが意図が明確

まずは =PRODUCT(A1:A5) のシンプルな形から試してみてください。掛け算するセルが多い場面で、式がスッキリして便利ですよ。

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