「掛け算なら =A1*B1 で書けるのに、スプレッドシートには MULTIPLY という関数もある」。関数一覧や他人のシートで見かけて、何が違うのか気になった方も多いのではないでしょうか。
よく分からないまま使うと、範囲を渡して正しく計算できなかったり、Excel で開いたファイルで困ったりします。小さな関数ですが、制約を知らないとつまずきやすいのが厄介なところです。
この記事では、Googleスプレッドシートの MULTIPLY関数の使い方を解説します。* 演算子や PRODUCT関数との違い、エラーの直し方もまとめました。まずは結論から見ていきましょう。
結論:MULTIPLY関数は「
*の関数版」
–=MULTIPLY(A2, B2)は=A2*B2とほぼ同じ結果を返す
– 引数は2つだけ。3つ以上は指定できない
–A2:A10のようなセル範囲は渡せない
– Excel には MULTIPLY関数がない(スプレッドシート専用)
対応バージョン: Googleスプレッドシートのみ。Microsoft Excel には MULTIPLY関数がありません。
範囲や3つ以上の値をまとめて掛けたい場合は、PRODUCT関数の出番です。掛け算の3つの方法の使い分けは、スプレッドシートのPRODUCT関数の記事で詳しくまとめています。
スプレッドシートのMULTIPLY関数とは?結論は「* とほぼ同じ、引数は2つだけ」
MULTIPLY関数は、2つの数値を掛けた結果(積)を返す関数です。読み方は「マルチプライ」で、英語の「掛ける」がそのまま関数名になっています。Google の公式ヘルプでも「* 演算子と同じ」と説明されている関数です。
構文と引数
構文はとてもシンプルで、引数は2つしかありません。
=MULTIPLY(因数1, 因数2)
英語表記では =MULTIPLY(factor1, factor2) となります。
| 引数 | 必須 | 内容 |
|---|---|---|
| 因数1(factor1) | 必須 | 1つ目の掛ける数(被乗数) |
| 因数2(factor2) | 必須 | 2つ目の掛ける数(乗数) |
公式ヘルプには、次の注記があります。
PRODUCT 関数とは異なり、MULTIPLY 関数は 2 つのスカラー値の乗算のみをサポートし、範囲や 2 つ以上の引数を指定することはできません。
スカラー値とは、5 や A2 のような単一の値のこと。「1つのセルか数値を、ちょうど2つ渡す関数」と覚えておけば迷いません。
基本例:売上計算と割引
まずは単価×数量で売上を出す、いちばん基本の例です。
| 行 | A: 商品 | B: 単価 | C: 数量 | D: 売上(数式) | 結果 |
|---|---|---|---|---|---|
| 2 | 商品X | 1000 | 5 | =MULTIPLY(B2, C2) | 5000 |
| 3 | 商品Y | 2500 | 3 | =MULTIPLY(B3, C3) | 7500 |
| 4 | 商品Z | 800 | 12 | =MULTIPLY(B4, C4) | 9600 |
D2 に式を入れたら、フィルハンドルで下にコピーすれば D3・D4 も計算されます。=B2*C2 と書いても結果は同じです。
定価に割引を掛けて販売価格を出すときも、同じ書き方で対応できます。
=MULTIPLY(10000, 0.8) → 8000(20%オフ)
=MULTIPLY(10000, 1-0.15) → 8500(15%オフ)
=MULTIPLY(B2, 1-C2) ← B2が定価、C2が割引率
引数には 1-C2 のような計算式も書けます。小数を渡しても、=MULTIPLY(2.5, 4) が 10 になるように普通に計算されますよ。
* 演算子・PRODUCTとの違いと、MULTIPLYを使う場面
計算結果だけ見れば、MULTIPLY と * に差はありません。違いが出るのは、渡せる値の数と範囲、それに Excel との互換性です。
* / MULTIPLY / PRODUCT の比較表
MULTIPLY の視点で、押さえておきたい違いを3つに絞りました。
| 観点 | * 演算子 | MULTIPLY | PRODUCT |
|---|---|---|---|
| 掛けられる値の数 | いくつでも(=A1B1C1) | 2つだけ | いくつでも |
範囲をまとめて掛ける(A1:A10) | 1セルずつ指定 | できない | できる |
| Excel で使えるか | 使える | 使えない | 使える |
普段の手入力なら、短く書ける * がいちばん手軽です。範囲や3つ以上の値をまとめたいなら、PRODUCT を選びましょう。3つの方法の詳しい使い分けや実務例は、PRODUCT関数の解説記事にまとめています。
Apps Script の setFormula で関数名を使う場面
では、MULTIPLY を使う意味はどこにあるのか。分かりやすいのは、Apps Script でセルに数式を書き込む場面です。
// 演算子版
cell.setFormula('=' + cell1 + '*' + cell2);
// MULTIPLY関数版(引数の区切りが見える)
cell.setFormula('=MULTIPLY(' + cell1 + ', ' + cell2 + ')');
関数版は、何と何を掛けているかがカンマで区切られて見えます。数式を組み立てるコードが長くなるほど、この読みやすさが効いてくるはず。シートを引き継ぐ人に「ここは掛け算」と関数名で伝えたい場面にも向いています。
スプレッドシートには、MULTIPLY と同じタイプの関数がほかにもあります。引き算の MINUS、割り算の DIVIDE、符号反転の UMINUS です。使い方は MINUS関数・DIVIDE関数・UMINUS関数の記事を参考にしてください。
MULTIPLYが使えないケースとエラー対処
MULTIPLY でつまずく原因の多くは、「2つの単一の値」という制約から外れた渡し方です。よくあるパターンを表にまとめました。
失敗しやすい渡し方の一覧
| 渡し方 | 例 | どうなるか | 直し方 |
|---|---|---|---|
| セル範囲を渡す | =MULTIPLY(A1:A3, 2) | #VALUE! エラー(2026年10月にスプレッドシートで確認) | 1セルずつ指定する。複数行なら ARRAYFORMULA と * |
| 引数が3つ以上 | =MULTIPLY(A1, B1, C1) | #N/A エラー(引数の数が合わない。2026年10月に確認) | =A1B1C1 か =PRODUCT(A1:C1) |
| 引数が1つだけ | =MULTIPLY(A1) | #N/A エラー(同上) | 2つ目の値を追加する |
| 文字列を渡す | =MULTIPLY("abc", 5) | #VALUE! エラー | 数値が入ったセルを指定し直す |
| 数字の文字列を渡す | =MULTIPLY("5", 3) | 数値として扱われ 15 になる(2026年10月に確認。公式ヘルプには記載なし) | セルの値が文字列のときは VALUE で変換すると確実 |
| 空白セルを渡す | =MULTIPLY(A1, 5)(A1が空白) | 0 になる(2026年10月に確認) | 0 を出したくないなら IF で空白のときは計算しない |
エラーが出たときは、まず引数の数と、範囲を渡していないかを確かめましょう。#N/A なら引数の数、#VALUE! なら範囲か文字列が原因です。
数字が文字列として入っているセルは、VALUE で数値に変換してから渡すと安心です。ほかのシステムから貼り付けたデータで起きやすいので、覚えておくと役に立ちます。
=MULTIPLY(VALUE(A1), VALUE(B1))
3つ以上を掛けたいときは、MULTIPLY を入れ子にする手もあります。ただ、=MULTIPLY(MULTIPLY(A1, B1), C1) は読みにくいもの。* か PRODUCT に置き換える方がすっきりします。
#NAME? はスペルミスを疑う
#NAME? が出たら、関数名の書き間違いを疑いましょう。MULTIPY や MULTIPLE など、つづりが似た名前は見落としやすいのが落とし穴です。
正しいつづりは MULTIPLY(M-U-L-T-I-P-L-Y)。入力中に表示される候補から選べば、つづりの間違いは防げます。
ARRAYFORMULAで複数行を掛けたいとき
売上表のように、何十行も同じ掛け算をしたい場面はよくあります。1行ずつ式をコピーする代わりに、ARRAYFORMULA を使えば1つのセルから全行に結果を展開できます。
複数行をまとめるなら * が確実
MULTIPLY は、公式に「範囲を指定できない」とされている関数です。ただ、ARRAYFORMULA の中に入れた =ARRAYFORMULA(MULTIPLY(A2:A4, B2:B4)) は、2026年10月の手元の確認では行ごとに掛けた結果が展開されました。公式ヘルプに書かれた使い方ではないので、仕様変更で動かなくなる可能性は残ります。複数行をまとめて掛けるなら、* 演算子と組み合わせるのが確実です。
=ARRAYFORMULA(B2:B100 * C2:C100)
D2 にこの式を1つ入れるだけで、B列とC列の同じ行どうしを掛けた結果が下へ展開されます。展開先のセルに値が残っていると結果を表示できないので、D3 以降は空けておきましょう。
ARRAYFORMULA の基本は、ARRAYFORMULA関数の解説を参考にしてください。掛けた結果をさらに合計したいなら、SUMPRODUCT関数で1つの式にまとめられます。詳しくはSUMPRODUCT関数の記事をどうぞ。
空白行を除外するIFの式
範囲を B2:B のように最終行まで指定すると、未入力の行に 0 が並びます。見た目が気になるなら、IF関数で空白行を除外しましょう。
=ARRAYFORMULA(IF(B2:B="", "", B2:B * C2:C))
B列が空白の行は何も表示されず、入力済みの行だけに計算結果が出ます。行が増えても式を足す必要がないので、毎日データが増える表と相性のよい書き方です。
ExcelにMULTIPLY関数はある?
結論から言うと、Microsoft Excel には MULTIPLY関数がありません。Microsoft 公式の関数一覧にも、MULTIPLY という名前は載っていないのです。Googleスプレッドシートだけで使える関数と考えてください。
そのため、MULTIPLY を使ったシートを .xlsx で書き出して Excel で開いても、そのままでは計算できない可能性が高いです。Excel 側に同じ名前の関数がないので、式を置き換えておくと安心です。
Excel と共有する予定があるファイルは、最初から * 演算子か PRODUCT関数で書いておくのが安全です。置き換えは次のように機械的にできます。
スプレッドシート専用:=MULTIPLY(B2, C2)
Excel でも使える :=B2*C2
Excel でも使える :=PRODUCT(B2, C2)
Excel 側の PRODUCT関数の使い方は、Excel PRODUCT関数の使い方で解説しています。逆に、社内でスプレッドシートだけを使うなら、MULTIPLY を使っても困ることはありません。
まとめ
スプレッドシートの MULTIPLY関数のポイントを振り返っておきましょう。
=MULTIPLY(A2, B2)は=A2*B2とほぼ同じ結果を返す- 引数は2つだけ。範囲や3つ以上の値は指定できない
- 複数行をまとめて掛けるなら、ARRAYFORMULA と
*の組み合わせが確実 - Excel には MULTIPLY がない。共有するファイルは
*か PRODUCT で書く
普段の手入力では * で十分です。MULTIPLY は、Apps Script で数式を組み立てるときや、関数名で掛け算だと示したいときに選ぶ関数。そう考えておくと、使いどころに迷わなくなります。
エラーが出たときは、まず「2つの単一の値を渡しているか」を確かめてみてください。範囲をまとめて掛けたいときは PRODUCT関数、引き算や割り算なら MINUS関数・DIVIDE関数もあわせて活用してみてくださいね。