スプレッドシートで掛け算をしたいとき、多くの人は =A1B1 のように 演算子を使うはずです。実は Google スプレッドシートには、掛け算専用の MULTIPLY関数 という関数も用意されています。
「演算子で書けるのに、わざわざ関数?」と思うかもしれません。実は ARRAYFORMULA や Apps Script を使う場面では、関数として書ける方が便利なこともあるんですよ。
この記事では、スプレッドシートのMULTIPLY関数の構文・使い方を解説します。* 演算子との違いや PRODUCT関数との使い分け、ARRAYFORMULAとの組み合わせまで、実例つきでまとめました。
スプレッドシートのMULTIPLY関数とは?
スプレッドシートのMULTIPLY関数は、factor1 と factor2 を掛けた結果を返す 乗算用の関数 です。=A1*B1 と書く代わりに =MULTIPLY(A1, B1) と書けます。
MULTIPLY は英語で「掛け算する・増やす」を意味する動詞で、「マルチプライ」と読みます。
実は MULTIPLY関数は Google スプレッドシート固有の関数で、Microsoft Excel には存在しません。「Excelからスプレッドシートに移ってきて初めて知った」という方も多いのではないでしょうか。
スプレッドシートには MULTIPLY の仲間として、加算の ADD、減算の MINUS、除算の DIVIDE があります。これらは算術演算子関数と呼ばれ、4種類が一通り揃っています。それぞれ + - * / の演算子と同じ結果を返しますが、関数として書きたい場面で活躍しますよ。
2値の掛け算はMULTIPLY、3値以上はPRODUCT
MULTIPLY関数は 2つの値を掛けるためだけ に作られた関数です。3つ以上の値や、セル範囲を一括で掛け算したい場合は、PRODUCT関数を使います。「2値ならMULTIPLY、範囲・3値以上ならPRODUCT」と覚えておくと迷いません。
詳しい使い方はスプレッドシートのPRODUCT関数の使い方をあわせてどうぞ。
MULTIPLY関数の構文と引数
MULTIPLY関数の構文はとてもシンプルです。
=MULTIPLY(factor1, factor2)
引数は次の2つだけです。
| 引数 | 必須 | 内容 |
|---|---|---|
| factor1 | 必須 | 掛けられる数(被乗数) |
| factor2 | 必須 | 掛ける数(乗数) |
戻り値は factor1 × factor2 の結果です。PRODUCT関数のように複数の値や範囲をまとめて指定することはできません。引数は2つで固定、と覚えておきましょう。
なお、引数はスカラー値(単一の値)のみ対応で、A1:A10 のようなセル範囲を直接渡すことはできません。範囲指定をしたい場合は PRODUCT関数の出番です。
MULTIPLY関数の基本的な使い方
実際のサンプルで動きを見ていきましょう。
例1: 売上計算(単価×数量)
| 行 | A: 商品 | B: 単価 | C: 数量 | D: 売上 |
|---|---|---|---|---|
| 2 | 商品X | 1000 | 5 | =MULTIPLY(B2, C2) |
| 3 | 商品Y | 2500 | 3 | =MULTIPLY(B3, C3) |
| 4 | 商品Z | 800 | 12 | =MULTIPLY(B4, C4) |
D2 の結果は 5000、D3 は 7500、D4 は 9600 になります。=B2*C2 と書いても同じ結果ですよ。
例2: 割引率を適用する
定価に割引率を掛けて販売価格を出すときも MULTIPLY関数が使えます。
=MULTIPLY(10000, 0.8) → 8000(20%オフ)
=MULTIPLY(B2, 1-C2) ← B2が定価、C2が割引率(例: 0.15)
割引率を 0.15 とした場合、=MULTIPLY(10000, 1-0.15) は 8500 になります。割引後の金額がひと目で出せて便利ですね。
例3: 数値を直接入れる
セル参照ではなく、直接数値を入れることもできます。
=MULTIPLY(8, 7) → 56
=MULTIPLY(2.5, 4) → 10
=MULTIPLY(100, 0.85) → 85
小数や負の数を渡しても、もちろんそのまま計算結果が返ってきます。
MULTIPLY関数と掛け算演算子(*)の違い
「結局、* 演算子で書くのと何が違うの?」という疑問はもっともです。両者を比較してみましょう。
演算子 vs MULTIPLY vs PRODUCT 3軸比較表
ついでに範囲版の PRODUCT関数も並べてみました。3つの違いがひと目で分かりますよ。
| 観点 | 演算子 * | MULTIPLY関数 | PRODUCT関数 |
|---|---|---|---|
| 記述の長さ | 短い(=A1*B1) | やや長い | やや長い |
| 引数の数 | 何個でも連続OK | 2つ固定 | 何個でも、範囲もOK |
| セル範囲指定 | 不可(個別指定) | 不可(スカラー専用) | 可(A1:A10 など) |
| ARRAYFORMULA | 使える | 使えない(後述) | ほぼ使えない |
| Apps Script から数式生成 | 文字列結合がやや手間 | 関数呼び出しで読みやすい | 関数呼び出しで読みやすい |
| Excel との互換性 | 互換あり | Excel 非対応 | 互換あり |
| 一般的な使用頻度 | 高い | 低い | 中 |
普段の手入力では * 演算子の方が短くて速いです。MULTIPLY関数が活きるのは、Apps Script や API で数式文字列を組み立てる場面ですね。あとは「掛け算をしている」と関数名で明示したい場面にも向いています。
Apps ScriptでMULTIPLYを使う理由
たとえば Apps Script でセルに数式を書き込む場面を考えてみましょう。* 演算子で組み立てると、文字列連結が少し読みにくくなります。
// 演算子版(文字列結合がやや煩雑)
cell.setFormula('=' + cell1 + '*' + cell2);
// MULTIPLY関数版(関数呼び出しで構造が見える)
cell.setFormula('=MULTIPLY(' + cell1 + ', ' + cell2 + ')');
引数の境目がカンマで区切られるため、後から見ても何を掛けているか分かりやすいですよね。複雑な数式生成ロジックでは、この差がコードの可読性に効いてきますよ。
PRODUCT関数との違い
MULTIPLY関数と PRODUCT関数は、どちらも掛け算をする関数です。違いは引数の柔軟性にあります。
| 関数 | 引数の数 | セル範囲 | 主な用途 |
|---|---|---|---|
| MULTIPLY | 2つ固定 | 不可 | 2つの値を掛ける |
| PRODUCT | 何個でも | 可 | 範囲・複数値を一括で掛ける |
イメージとしては、加算の世界に置き換えると分かりやすいです。SUM が加算の範囲版なら、PRODUCT は乗算の範囲版という関係です。SUM関数と PRODUCT関数の対応関係については、スプレッドシートのSUM関数の使い方もあわせて読むと理解が深まりますよ。
範囲を一気に掛け算したい場面では迷わず PRODUCT関数を選びましょう。詳しい使い方はスプレッドシートのPRODUCT関数の使い方で解説しています。
算術演算子関数シリーズ(ADD / MINUS / MULTIPLY / DIVIDE)
MULTIPLY関数は、Google スプレッドシートに用意された4つの算術演算子関数のひとつです。残り3つもセットで覚えておくと便利です。
| 関数 | 演算子 | 構文 | 結果 |
|---|---|---|---|
| ADD | + | ADD(value1, value2) | value1 + value2 |
| MINUS | - | MINUS(value1, value2) | value1 – value2 |
| MULTIPLY | * | MULTIPLY(factor1, factor2) | factor1 × factor2 |
| DIVIDE | / | DIVIDE(dividend, divisor) | dividend ÷ divisor |
すべて引数は2つだけ、という共通仕様です。シンプルですよね。減算の使い方はスプレッドシートのMINUS関数の使い方にまとめてあるので、あわせて読んでみてください。
ARRAYFORMULAとの組み合わせ
複数行で同じ掛け算を繰り返したいとき、ARRAYFORMULA と組み合わせると 1セルだけで全行に展開できます。
複数行を一括で掛け算する
ただし MULTIPLY関数はスカラー値専用のため、ARRAYFORMULA で配列展開する用途には向いていません。範囲を一括で掛け算したい場合は、* 演算子を使う方が確実です。
=ARRAYFORMULA(B2:B100 * C2:C100)
これで B 列と C 列の同じ行同士を掛け算した結果が、1セルから縦に展開されます。MULTIPLY を無理に使うより、こちらの方がシンプルで動作も安定していますよ。
空白セルを除外したいとき
何も入力されていない行まで 0 と表示されると見た目が悪いですよね。IF関数と組み合わせて、空白行は何も表示しないようにしましょう。
=ARRAYFORMULA(IF(B2:B="", "", B2:B * C2:C))
これで B 列が空白の行は何も表示されず、入力済みの行だけ計算結果が出るようになります。
ExcelにMULTIPLY関数はある?
結論からいうと、Microsoft Excel には MULTIPLY という名前の関数は存在しません。
Excel で掛け算を関数で書きたい場合、選択肢は限られます。範囲を扱える PRODUCT関数を使うか、素直に * 演算子を使うかの二択です。
Excelには非対応|互換性の注意点
Google スプレッドシートで作ったファイルを .xlsx 形式で書き出す予定がある場合は注意が必要です。MULTIPLY関数は Excel で開くと #NAME? エラーになってしまいます。
Excel と共有する可能性のあるファイルでは、最初から * 演算子か PRODUCT関数で書いておく方が安全ですよ。MULTIPLY関数は「スプレッドシート専用ファイル」に向いています。Apps Script から数式を動的に生成する場面でも活躍します。
よくあるエラーと対処法
MULTIPLY関数で遭遇しやすいエラーをまとめておきます。
#VALUE!エラー:文字列が混入している
引数に数値として解釈できない文字列が入っているときに発生します。
=MULTIPLY("abc", 5) → #VALUE!
エラーメッセージには次のように表示されます。
Function MULTIPLY parameter N expects number values.
対処法は、引数のセルが数値型になっているか確認することです。
文字列として保存されている数字(テキスト形式の "100" など)が原因のことも多いです。VALUE関数(文字列を数値に変換する関数)と組み合わせるのも有効ですよ。=MULTIPLY(VALUE(A1), VALUE(B1)) と書けば回避できます。
#N/A エラー(ARRAYFORMULA + * 演算子 利用時)
ARRAYFORMULA で範囲の行数が一致していないと発生します。対処法は、両方の範囲を同じ行数に揃えることです。A2:A10 なら B2:B10 のように揃えましょう。
#NAME? エラー
関数名のスペルミスが原因です。MULTIPY MULTIPLE など、よくある書き間違いに注意してください。正しいスペルは MULTIPLY です。
引数を3つ以上指定したときの対処
MULTIPLY関数は引数が2つに固定されています。3つ以上掛けたい場合は次の方法を使います。
| 方法 | 書き方 | コメント |
|---|---|---|
| 演算子で連続 | =A1B1C1 | 一番シンプル |
| PRODUCT 併用 | =PRODUCT(A1:C1) | 範囲指定で扱える |
| MULTIPLY ネスト | =MULTIPLY(MULTIPLY(A1, B1), C1) | 読みにくいので非推奨 |
実務では =PRODUCT(A1:C1) のパターンが扱いやすいですよ。
まとめ
スプレッドシートのMULTIPLY関数の使い方を解説しました。ポイントを振り返っておきましょう。
- MULTIPLY関数は
MULTIPLY(factor1, factor2)で2つの値を掛けた結果を返す *演算子と同じ結果を返すが、Google スプレッドシート固有の関数(Excel にはない)- 引数は2つだけ。3つ以上掛けたいときは
*演算子か PRODUCT関数を使う - セル範囲は不可。一括計算には ARRAYFORMULA +
*演算子が向く - 2値ならMULTIPLY、範囲・3値以上ならPRODUCTという使い分けが基本
- 同じ系列に ADD / MINUS / DIVIDE もある
普段の手入力では * 演算子の方が短くて速いので、無理して MULTIPLY関数 に置き換える必要はありません。Apps Script で数式を生成する場面や、関数で明示したい場面で MULTIPLY関数 を選びましょう。この使い分けがおすすめです。
シリーズ関数(ADD / MINUS / DIVIDE)や範囲版のPRODUCT関数も、ぜひセットで使い分けてみてくださいね。
