Excel関数 逆引き集 | 0未満補正 → MAX(0,値)

Excel
スポンサーリンク

概要

「0 未満補正」としての MAX(0, 値) は、マイナスになってほしくない計算結果を「最低でも 0」にそろえるためのお約束パターンです。
MAX 関数は「指定した数値の中で最大のものを返す関数」なので、MAX(0, 値) と書くと「0 と 値 のうち大きい方」、つまり「値がマイナスなら 0、0 以上ならそのまま」という動きになります。


MAX 関数の基本と「MAX(0,値)」の意味

MAX 関数の基本形

MAX 関数の書式は次のとおりです。

=MAX(数値1, [数値2], …)

指定した複数の数値の中から「最大の値」を返します。
たとえば =MAX(3, 10, -5) なら結果は 10 です。
セル範囲を指定して =MAX(A1:A10) のように使うこともできます。

MAX(0, 値) がやっていること

MAX(0, 値) は、「0」と「値」のどちらが大きいかを比べて、大きい方を返します。
そのため、動きは次のように整理できます。

  • 値 が 10 → MAX(0,10) は 10
  • 値 が 0 → MAX(0,0) は 0
  • 値 が -5 → MAX(0,-5) は 0

つまり、「マイナスは 0 に補正し、それ以外はそのまま通す」という“0 未満補正”になります。


0 未満補正が役立つ典型シーン

在庫や残数をマイナスにしたくないとき

たとえば、在庫数から出荷数を引いて「残り在庫」を計算するとき、本来はマイナスになってはいけません。
在庫が 5 個しかないのに 8 個出荷した、というようなデータが入ってしまうと、単純な計算では「残り -3 個」となってしまいます。

A2 に在庫数、B2 に出荷数が入っているとき、単純な残数はこうです。

=A2-B2

これだとマイナスがそのまま出てしまいます。
そこで 0 未満補正をかけると、次のようになります。

=MAX(0, A2-B2)

これなら、在庫 5・出荷 8 の場合でも「残り 0」と表示され、「マイナス在庫」という不自然な値を防げます。

残り日数・残り時間などをマイナスにしたくないとき

締切日から今日までの日数差を計算するとき、締切を過ぎていると差分がマイナスになります。
「残り日数」という意味で表示したいなら、マイナスは 0 にしてしまった方が自然です。

たとえば、A2 に締切日、B2 に今日の日付が入っているとき、残り日数はこう書けます。

=MAX(0, A2-B2)

締切前なら正の残り日数、締切を過ぎていれば 0 日として扱えます。


コード例とテンプレート

基本テンプレート:0 未満を 0 に補正

任意の計算結果を「最低 0」にしたいときの基本形です。

=MAX(0, 計算式)

たとえば、「売上 − コスト」がマイナスになったときは 0 にしたいなら、次のように書きます。

=MAX(0, 売上セル-コストセル)

在庫残数の 0 未満補正

在庫数が A2、出荷数が B2 のとき、残り在庫を 0 未満補正する式は次のとおりです。

=MAX(0, A2-B2)

A2=5、B2=3 → 残り 2
A2=5、B2=8 → 残り 0(本来は -3 だが 0 に補正)

残り日数の 0 未満補正

締切日が A2、今日の日付が B2 のとき、「残り日数(マイナス禁止)」はこう書けます。

=MAX(0, A2-B2)

締切が過ぎている場合は 0 日として扱われます。


IF と比べたときのメリット

同じことは IF 関数でも書けます。

=IF(値<0, 0, 値)

しかし、MAX(0, 値) の方が短く、読みやすく、パターンとして覚えやすいです。
「0 未満は 0 にする」というルールがはっきりしているなら、IF よりも MAX(0, 値) を“定番の書き方”として採用すると、シート全体の数式がすっきりします。


例題

問題1

セル A2 に在庫数、セル B2 に出荷数が入っています。
残り在庫を C2 に表示したいのですが、「残り在庫がマイナスになった場合は 0 として扱いたい」とします。
C2 にはどのような式を書けばよいでしょうか。
また、その式が「A2=5、B2=3」のときと「A2=5、B2=8」のとき、それぞれどんな結果になるか説明してください。

問題2

セル A2 に締切日、セル B2 に今日の日付が入っています。
「締切までの残り日数」を C2 に表示したいのですが、締切を過ぎている場合は 0 日と表示したいとします。
C2 に書くべき式を答え、その式がどのように 0 未満補正を行っているか説明してください。

問題3

セル A2 に売上、B2 にコストが入っています。
「利益」を C2 に表示したいのですが、赤字の場合は 0 として扱いたいとします。
C2 に書くべき式を MAX を使って示し、その式が「通常の利益計算」とどう違うか説明してください。

問題4

次の 2 つの式は、どちらも「A2−B2」を使って残り在庫を計算しています。

=A2-B2
=MAX(0, A2-B2)

それぞれの式がどのような状況で問題になるか、特に「マイナス在庫」という観点から違いを説明してください。

問題5

MAX(0, 値) と同じ動きを IF 関数で書くと、どのような式になるでしょうか。
その IF 版の式と比べて、MAX(0, 値) という書き方にはどんな読みやすさやメリットがあるか、自分の言葉で説明してみてください。

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