スプレッドシート MULTIPLY関数の使い方|*との違いと2引数の制約

スポンサーリンク

「掛け算なら =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商品X10005=MULTIPLY(B2, C2)5000
3商品Y25003=MULTIPLY(B3, C3)7500
4商品Z80012=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つに絞りました。

観点* 演算子MULTIPLYPRODUCT
掛けられる値の数いくつでも(=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関数もあわせて活用してみてくださいね。

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