スプレッドシートのDIVIDE関数の使い方|除算と #DIV/0! 対処法

スポンサーリンク

スプレッドシートで割り算をしたいとき、多くの人は =A1/B1 のように / 演算子を使うはずです。実は Google スプレッドシートには、割り算専用の DIVIDE関数 という関数も用意されています。

「演算子で書けるのに、わざわざ関数?」と思うかもしれません。とくにありがたいのは、ゼロ除算(0で割ってしまう状況)への備えと、Apps Script で数式を組み立てる場面ですよ。

この記事では、スプレッドシートのDIVIDE関数の構文と使い方を解説します。/ 演算子との違いや QUOTIENT・MOD との使い分け、#DIV/0! エラーの対処法まで、実例つきでまとめましたよ。

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

スプレッドシートのDIVIDE関数は、dividend(被除数)を divisor(除数)で割った結果を返す 除算用の関数 です。=A1/B1 と書く代わりに =DIVIDE(A1, B1) と書けます。

DIVIDE は英語で「分ける・割る」を意味する動詞で、「ディバイド」と読みます。

実は DIVIDE関数は Google スプレッドシート固有の関数で、Microsoft Excel には存在しません。「Excelからスプレッドシートに移ってきて初めて知った」という方も多いのではないでしょうか。

スプレッドシートには DIVIDE の仲間として、加算の ADD、減算の MINUS、乗算の MULTIPLY があります。これらは算術演算子関数と呼ばれ、+ - * / の4つが一通り揃っています。普段の手入力では演算子で十分ですが、関数として書きたい場面で活躍してくれますよ。

0で割るとエラーになる点に注意

DIVIDE関数の最大の特徴は「0で割ろうとすると #DIV/0! エラーが返ってくる」点です。これは / 演算子でも同じですが、業務データでは divisor(割る数)が 0 や空白になる場面がけっこうあるんですよね。後ほど対処法を詳しく解説します。

DIVIDE関数の構文と引数

DIVIDE関数の構文はとてもシンプルです。

=DIVIDE(dividend, divisor)

引数は次の2つだけです。

引数必須内容
dividend必須割られる数(被除数)
divisor必須割る数(除数)。0 を渡すと #DIV/0! エラー

戻り値は dividend ÷ divisor の結果です。小数になる場合は小数点以下まで返ってきますよ。

なお、引数はスカラー値(単一の値)のみ対応で、A1:A10 のようなセル範囲を直接渡すことはできません。範囲を一括処理したい場合は ARRAYFORMULA との組み合わせを使います(後述)。

DIVIDE関数の基本的な使い方

実際のサンプルで動きを見ていきましょう。

例1: 単価計算(合計金額 ÷ 数量)

A: 合計金額B: 数量C: 単価
2120005=DIVIDE(A2, B2)
3180006=DIVIDE(A3, B3)
496004=DIVIDE(A4, B4)

C2 の結果は 2400、C3 は 3000、C4 は 2400 になります。=A2/B2 と書いても同じ結果ですよ。

例2: 達成率の計算(実績 ÷ 目標)

実績を目標で割ると達成率が出せます。

=DIVIDE(850, 1000)   → 0.85(書式設定で「85%」表示にできます)
=DIVIDE(B2, C2)      ← B2が実績、C2が目標

セルの書式を「パーセント」にすれば、0.8585% として表示されます。月次レポートなどで便利ですよね。

例3: 税抜き価格の計算(税込 ÷ 1.1)

消費税10%の税込み価格から税抜きを逆算する例です。

=DIVIDE(11000, 1.1)   → 10000
=DIVIDE(B2, 1.1)      ← B2が税込み価格

軽減税率8%の場合は 1.08 で割ればOKです。逆に税込み価格を出したい場合は MULTIPLY(B2, 1.1) を使うと対称的に書けますよ。

例4: 数値を直接入れる

セル参照ではなく、直接数値を入れることもできます。

=DIVIDE(100, 4)       → 25
=DIVIDE(7, 2)         → 3.5
=DIVIDE(-20, 5)       → -4

小数や負の数を渡しても、もちろんそのまま計算結果が返ってきます。

DIVIDE関数と除算演算子(/)の違い

「結局、/ 演算子で書くのと何が違うの?」という疑問はもっともです。両者を比較してみましょう。

観点演算子 /DIVIDE関数
記述の長さ短い(=A1/B1やや長い
引数の数何個でも連続OK(=A1/B1/C12つ固定
セル範囲指定不可(個別指定)不可(スカラー専用)
ARRAYFORMULA との相性良い良くない(後述)
Apps Script から数式生成文字列結合がやや手間関数呼び出しで読みやすい
Excel との互換性互換ありExcel 非対応
一般的な使用頻度高い低い

普段の手入力では / 演算子の方が短くて速いです。DIVIDE関数が活きるのは、Apps Script や API で数式文字列を組み立てる場面ですね。あとは「割り算をしている」と関数名で明示したい場面にも向いていますよ。

Apps ScriptでDIVIDEを使う理由

たとえば Apps Script でセルに数式を書き込む場面を考えてみましょう。/ 演算子で組み立てると、文字列連結が少し読みにくくなります。

// 演算子版(文字列結合がやや煩雑)
cell.setFormula('=' + cell1 + '/' + cell2);

// DIVIDE関数版(関数呼び出しで構造が見える)
cell.setFormula('=DIVIDE(' + cell1 + ', ' + cell2 + ')');

引数の境目がカンマで区切られるため、後から見ても何を割っているか分かりやすいですよね。複雑な数式生成ロジックでは、この差がコードの可読性に効いてきますよ。

DIVIDE / QUOTIENT / MOD の使い分け

割り算をする関数は DIVIDE のほかに QUOTIENT(クォーシェント)と MOD(モッド)があります。それぞれ返す値が違うので、目的に合わせて選びましょう。

関数戻り値例: (10, 3)主な用途
DIVIDE商(小数含む)3.3333…通常の割り算
QUOTIENT商の整数部のみ3切り捨て除算
MOD余り1剰余・周期判定

DIVIDEを使う場面

普通の割り算結果が欲しい場面はすべて DIVIDE で対応できます。単価計算・達成率・構成比など、小数まで含めて結果が欲しいケースですね。

QUOTIENTを使う場面

QUOTIENT関数は商の整数部だけを返します。「100個のアイテムを1ページ12個ずつ表示するなら何ページ必要?」のような場面で便利ですよ。

=QUOTIENT(100, 12)   → 8(小数部の 0.333... が捨てられる)

ページ数の場合は切り上げが必要なので、実際は CEILINGROUNDUP と組み合わせる方が確実ですよ。

MODを使う場面

MOD関数は余りを返します。MOD(行番号, 2) = 0 で偶数行を判定するパターンが定番で、条件付き書式での縞模様装飾などで頻繁に登場します。

=MOD(10, 3)   → 1
=MOD(ROW(), 2)   ← 偶数行なら 0、奇数行なら 1

「3日ごと」「7日ごと」のような周期判定にも使えますよ。

#DIV/0! エラーの原因と対処法

DIVIDE関数で最もよく出会うエラーが #DIV/0! です。割り算ならではのエラーなので、回避方法を押さえておきましょう。

#DIV/0! が出る条件

このエラーは divisor(割る数)が次のいずれかになると発生します。

  • divisor が 0
  • divisor が空白セル(自動的に 0 として扱われる)
  • divisor が 0 を返す数式の結果(例: =DIVIDE(A1, SUM(B1:B5)) で SUM が 0 のとき)

業務データでは「目標がまだ未設定」「数量がゼロ」「合計がゼロ」といった場面で頻繁に発生します。対処法を3パターン紹介しますね。

パターン1: IFERROR で代替値を返す

一番シンプルなのが IFERROR関数(エラー時に代替値を返す関数)と組み合わせる方法です。

=IFERROR(DIVIDE(A1, B1), 0)
=IFERROR(DIVIDE(A1, B1), "")
=IFERROR(DIVIDE(A1, B1), "計算不可")

エラーが出たら 0 や空文字、メッセージを返してくれます。書きやすくて便利ですが、エラー全般を捕捉するため #VALUE! のような別のエラーも一律でハンドリングしてしまう点には注意してください。

パターン2: IF で divisor が 0 のときだけ処理

「ゼロ除算だけを明示的にハンドルしたい」場合は IF関数で先に divisor をチェックします。

=IF(B1=0, 0, DIVIDE(A1, B1))
=IF(B1=0, "—", DIVIDE(A1, B1))

この書き方なら、文字列混入による #VALUE! エラーはそのまま表示されるので、原因の切り分けがしやすいですよ。

パターン3: IFS で空白とゼロを分ける

IFS関数(複数の条件を順に評価する関数)を使うと、空白と 0 で異なるメッセージを出せます。

=IFS(B1="", "未入力", B1=0, "ゼロ", TRUE, DIVIDE(A1, B1))

未入力なら「未入力」、ゼロなら「ゼロ」、それ以外は計算結果という3分岐です。データの入力状況を可視化したいときに役立ちます。

TIP: 達成率の構成比で安全に書くテンプレ

実務でよく使う「達成率」「構成比」の安全な書き方をまとめておきます。

達成率: =IFERROR(DIVIDE(実績, 目標), "")
構成比: =IFERROR(DIVIDE(個別値, 合計), 0)

これでデータがまだ揃っていない行でもエラー表示にならず、レポートの見た目をキレイに保てますよ。

算術演算子関数シリーズ(ADD / MINUS / MULTIPLY / DIVIDE)

DIVIDE関数は、Google スプレッドシートに用意された4つの算術演算子関数のひとつです。これでシリーズが完結します。

関数演算子構文結果
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関数の使い方にまとめてあります。乗算の使い方はスプレッドシートのMULTIPLY関数の使い方で解説しているので、あわせて読んでみてくださいね。

ARRAYFORMULAとの組み合わせ

複数行で同じ割り算を繰り返したいとき、ARRAYFORMULA と組み合わせると 1セルだけで全行に展開できます。

範囲を一括で割り算する

ただし DIVIDE関数はスカラー値専用のため、ARRAYFORMULA で配列展開する用途には向いていません。範囲を一括で割り算したい場合は、/ 演算子を使う方が確実です。

=ARRAYFORMULA(A2:A100 / B2:B100)

これで A 列と B 列の同じ行同士を割り算した結果が、1セルから縦に展開されます。

空白行とゼロ除算を一緒にガードする

ARRAYFORMULA では #DIV/0! も IF / IFERROR で防げます。

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

これで B 列が空白の行は何も表示せず、ゼロが入っていてもエラーを表示しないようになります。レポート用の集計シートで重宝するパターンですよ。

ExcelにDIVIDE関数はある?

結論からいうと、Microsoft Excel には DIVIDE という名前の関数は存在しません

Excel で割り算を関数で書きたい場合、選択肢は限られます。整数の商だけが必要なら QUOTIENT関数、余りなら MOD関数、通常の割り算なら素直に / 演算子を使う、という形になります。

Excelには非対応|互換性の注意点

Google スプレッドシートで作ったファイルを .xlsx 形式で書き出す予定がある場合は注意が必要です。DIVIDE関数は Excel で開くと #NAME? エラーになってしまいます。

Excel と共有する可能性のあるファイルでは、最初から / 演算子で書いておく方が安全ですよ。DIVIDE関数は「スプレッドシート専用ファイル」向きです。Apps Script から数式を動的に生成する場面でも活躍してくれますよ。

よくあるエラーと対処法

DIVIDE関数で遭遇しやすいエラーをまとめておきます。

#DIV/0! エラー:0で割っている

すでに詳しく解説しましたが、divisor が 0 または空白のときに発生します。対処法は前述の3パターン(IFERROR・IF・IFS)から選んでください。

#VALUE! エラー:文字列が混入している

引数に数値として解釈できない文字列が入っているときに発生します。

=DIVIDE("abc", 5)   → #VALUE!

エラーメッセージには次のように表示されます。

Function DIVIDE parameter N expects number values.

対処法は、引数のセルが数値型になっているか確認することです。

文字列として保存されている数字(テキスト形式の "100" など)が原因のことも多いです。VALUE関数(文字列を数値に変換する関数)と組み合わせるのも有効ですよ。=DIVIDE(VALUE(A1), VALUE(B1)) と書けば回避できます。

#N/A エラー(ARRAYFORMULA + / 演算子 利用時)

ARRAYFORMULA で範囲の行数が一致していないと発生します。対処法は、両方の範囲を同じ行数に揃えることです。A2:A10 なら B2:B10 のように揃えましょう。

#NAME? エラー

関数名のスペルミスが原因です。DIVID DIVIDED など、よくある書き間違いに注意してください。正しいスペルは DIVIDE です。

Excelで開いている場合も #NAME? になります。その場合は / 演算子に置き換えましょう。

引数を3つ以上指定したときの対処

DIVIDE関数は引数が2つに固定されています。3つ以上の連続除算をしたい場合は次の方法を使います。

方法書き方コメント
演算子で連続=A1/B1/C1一番シンプル
DIVIDE ネスト=DIVIDE(DIVIDE(A1, B1), C1)読みにくいので非推奨

実務では =A1/B1/C1 のパターンが扱いやすいですよ。

まとめ

スプレッドシートのDIVIDE関数の使い方を解説しました。ポイントを振り返っておきましょう。

  • DIVIDE関数は DIVIDE(dividend, divisor) で2つの値を割った結果を返す
  • / 演算子と同じ結果を返すが、Google スプレッドシート固有の関数(Excel にはない)
  • 引数は2つだけ。3つ以上の連続除算には / 演算子が向く
  • #DIV/0! エラーは IFERROR / IF / IFS の3パターンで防げる
  • 整数の商なら QUOTIENT、余りなら MOD と使い分ける
  • 同じ系列に ADD / MINUS / MULTIPLY もある(4関数で完結)

普段の手入力では / 演算子の方が短くて速いので、無理して DIVIDE関数 に置き換える必要はありません。Apps Script で数式を生成する場面や、関数で明示したい場面で DIVIDE関数 を選びましょう。エラー対策とセットで使えると業務データの安定性が一気に上がりますよ。

シリーズ関数(ADD / MINUS / MULTIPLY)もあわせて、ぜひ使い分けてみてくださいね。

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