スプレッドシートで引き算をしたいとき、多くの人は =A1-B1 のように - 演算子を使うはずです。実は Google スプレッドシートには、引き算専用の MINUS関数 という関数も用意されています。
「演算子で書けるのに、わざわざ関数?」と思うかもしれません。実は ARRAYFORMULA や Apps Script を使う場面では、関数で書ける方が便利なこともあるんですよ。
この記事では、スプレッドシートのMINUS関数の構文・使い方を解説します。- 演算子との違い、ARRAYFORMULA との組み合わせ、日付や時刻の引き算まで実例つきでまとめました。
スプレッドシートのMINUS関数とは?
スプレッドシートのMINUS関数は、value1 から value2 を引いた結果を返す 減算用の関数 です。=A1-B1 と書く代わりに =MINUS(A1, B1) と書けます。
実は MINUS関数は Google スプレッドシート固有の関数で、Microsoft Excel には存在しません。「Excelからスプレッドシートに移ってきて初めて知った」という方も多いのではないでしょうか。
スプレッドシートには MINUS の仲間として、加算の ADD、乗算の MULTIPLY、除算の DIVIDE があります。これらは算術演算子関数と呼ばれ、4種類が一通り揃っています。それぞれ + - * / の演算子と同じ結果を返しますが、関数として書きたい場面で活躍します。
MINUS関数の構文と引数
MINUS関数の構文はとてもシンプルです。
=MINUS(value1, value2)
引数は次の2つだけです。
| 引数 | 必須 | 内容 |
|---|---|---|
| value1 | 必須 | 引かれる数(被減数) |
| value2 | 必須 | 引く数(減数) |
戻り値は value1 - value2 の結果です。SUM関数のように複数の値をまとめて指定することはできません。引数は2つで固定、と覚えておきましょう。
MINUS関数の基本的な使い方
実際のサンプルで動きを見ていきましょう。
例1: 売上から原価を引いて利益を出す
| 行 | A: 商品 | B: 売上 | C: 原価 | D: 利益 |
|---|---|---|---|---|
| 2 | 商品X | 10000 | 6000 | =MINUS(B2, C2) |
| 3 | 商品Y | 8000 | 5500 | =MINUS(B3, C3) |
| 4 | 商品Z | 12000 | 7000 | =MINUS(B4, C4) |
D2 の結果は 4000、D3 は 2500、D4 は 5000 になります。=B2-C2 と書いても同じ結果です。
例2: 目標と実績の差分
達成状況を見るときも MINUS関数が使えます。
=MINUS(B2, C2) ← B2が目標、C2が実績
実績が目標を下回ればマイナス値になり、未達がひと目で分かります。
例3: 数値を直接入れる
セル参照ではなく、直接数値を入れることもできます。
=MINUS(100, 30) → 70
=MINUS(50, 80) → -30
引いた結果がマイナスになっても、当然ながらそのままマイナス値が返ってきます。
MINUS関数とマイナス演算子(-)の違い
「結局、- 演算子で書くのと何が違うの?」という疑問はもっともです。両者を比較してみましょう。
| 観点 | 演算子 - | MINUS関数 |
|---|---|---|
| 記述の長さ | 短い(=A1-B1) | やや長い(=MINUS(A1, B1)) |
| 3つ以上の引き算 | =A1-B1-C1 で連続 OK | 引数2つ制限(ネストが必要) |
| ARRAYFORMULA | 使える | 使える |
| QUERY 内 | 使える(B-C) | 使えない |
| Apps Script から数式生成 | 文字列結合がやや手間 | 関数呼び出しで読みやすい |
| Excel との互換性 | 互換あり | Excel 非対応 |
| 一般的な使用頻度 | 高い | 低い |
普段の手入力では - 演算子の方が短くて速いです。MINUS関数が活きるのは、Apps Script や API で数式文字列を組み立てる場面ですね。あとは「引き算をしている」と関数名で明示したい場面にも向いています。
たとえば Apps Script から数式をセットする場面を考えてみましょう。"=" + cell1 + "-" + cell2 と文字列を連結するより、"=MINUS(" + cell1 + ", " + cell2 + ")" と書く方が後から読みやすいケースもありますよ。
算術演算子関数シリーズ(ADD / MINUS / MULTIPLY / DIVIDE)
MINUS関数は、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つだけ、という共通仕様です。シンプルですよね。
ARRAYFORMULAとの組み合わせ
複数行で同じ引き算を繰り返したいとき、ARRAYFORMULA と組み合わせると 1セルだけで全行に展開できます。
演算子版
=ARRAYFORMULA(B2:B100 - C2:C100)
関数版
=ARRAYFORMULA(MINUS(B2:B100, C2:C100))
どちらも同じ結果ですが、関数版は引数の範囲が並んで見えるのが利点です。複雑な式の中にネストする際、読みやすい場合がありますよ。
空白セルを除外したいとき
何も入力されていない行まで 0 と表示されると見た目が悪いですよね。IF関数と組み合わせて、空白行は何も表示しないようにしましょう。
=ARRAYFORMULA(IF(B2:B="", "", MINUS(B2:B, C2:C)))
これで B 列が空白の行は何も表示されず、入力済みの行だけ計算結果が出るようになります。
日付・時刻の引き算でのMINUS関数
スプレッドシートでは日付や時刻も内部的に シリアル値 として管理されています。シリアル値とは、1899/12/30 を 0 とした連続整数のことです。そのため、MINUS関数で日付や時刻もそのまま引き算できます。
日付の差分(経過日数)
=MINUS("2026/04/30", "2026/04/01") → 29
開始日と終了日を引き算すると、経過日数が数値で返ってきます。
| A: 開始日 | B: 終了日 | C: 経過日数 |
|---|---|---|
| 2026/04/01 | 2026/04/30 | =MINUS(B2, A2) |
C2 の結果は 29 になります。ただし注意点があります。結果セルが日付書式のままだと「1900/01/28」のような変な日付として表示される ことがあるんです。表示形式を「数値」に変えてあげましょう。
時刻の差分(経過時間)
時刻もシリアル値で扱われ、1日が 1 です。
=MINUS("17:00", "9:00") → 0.333...(8時間 = 8 ÷ 24)
8時間という結果がほしいのに小数で出てきてしまいます。これは時刻のシリアル値が小数で表現されるためです。表示形式を [h]:mm に変更すると、8:00 のように経過時間として表示できますよ。
勤務時間の集計などでよく使うパターンなので、覚えておくと便利です。
ExcelにMINUS関数はある?
結論からいうと、Microsoft Excel には MINUS という名前の関数は存在しません。
Excel で引き算を関数で書きたい場合、選択肢は限られます。複素数の引き算用の IMSUB を流用するか、素直に - 演算子を使うかです。
「Excel と同じ感覚でスプレッドシートに =A1-B1 と書けば良いのでは?」と思うかもしれません。それで全く問題ありません。MINUS関数は Google スプレッドシートが用意した「演算子の関数版」という位置付けです。API・QUERY・ARRAYFORMULA との連携を意識して整備されたものなんです。
ですから、Excel ファイルとして .xlsx で書き出す予定がある場合は注意が必要です。MINUS関数ではなく - 演算子で書いておく方が安全ですよ。
よくあるエラーと対処法
MINUS関数で遭遇しやすいエラーをまとめておきます。
#VALUE! エラー
引数に数値として解釈できない文字列が入っているときに発生します。
=MINUS("abc", 1) → #VALUE!
対処法は、引数のセルが数値型になっているか確認すること。文字列として保存されている数字(テキスト形式の "100" など)が原因のことも多いです。VALUE関数(文字列を数値に変換する関数)と組み合わせるのも有効です。=MINUS(VALUE(A1), VALUE(B1)) と書けば回避できます。
#N/A エラー(ARRAYFORMULA 利用時)
ARRAYFORMULA で value1 と value2 の範囲行数が一致していないと発生します。
=ARRAYFORMULA(MINUS(A2:A10, B2:B5)) → #N/A
対処法は、両方の範囲を同じ行数に揃えること。A2:A10 なら B2:B10 のように揃えましょう。
#NAME? エラー
関数名のスペルミスが原因です。MINIS MUNUS など、よくある書き間違いに注意してください。正しいスペルは MINUS です。
引数を3つ以上指定したい場合
MINUS関数は引数が2つに固定されています。3つ以上引きたい場合は次の方法を使います。
| 方法 | 書き方 | コメント |
|---|---|---|
| 演算子で連続 | =A1-B1-C1 | 一番シンプル |
| SUM 併用 | =A1-SUM(B1:C1) | 引く数がまとまっているとき便利 |
| MINUS ネスト | =MINUS(MINUS(A1, B1), C1) | 読みにくいので非推奨 |
実務では =A1-SUM(B1:C1) のパターンが扱いやすいですよ。
まとめ
スプレッドシートのMINUS関数の使い方を解説しました。ポイントを振り返っておきましょう。
- MINUS関数は
MINUS(value1, value2)で value1 から value2 を引いた結果を返す -演算子と同じ結果を返すが、Google スプレッドシート固有の関数(Excel にはない)- 引数は2つだけ。3つ以上引きたいときは
-演算子か SUM と組み合わせる - ARRAYFORMULA と組み合わせると複数行で一括計算できる
- 日付や時刻もシリアル値として引き算できる(結果セルの書式に注意)
- 同じ系列に ADD / MULTIPLY / DIVIDE もある
普段の手入力では - 演算子の方が短くて速いので、無理して MINUS関数 に置き換える必要はありません。Apps Script で数式を生成する場面や、関数で明示したい場面で MINUS関数 を選びましょう。この使い分けがおすすめです。
シリーズ関数(ADD / MULTIPLY / DIVIDE)もぜひセットで使い分けてみてくださいね。
