EXCEL

MAX 関数 演算結果が マイナス のときに値を 0 にする方法

今回は、 MAX 関数を使って、計算結果がマイナスになったときに、値を 0 にする方法についての記事です。 マイナスの値をとらない数値があります。例えば、所持金額がマイナス100円とか入社してマイナス3年とかってあり得ませんよね。 計算上で差をとるとそういう結果が出てしまうことがあります。 これらの値を強制的に0にしてしまうわけです。

どんなときに使うのかといいますと、、、

たとえば、飴を10個持っているとします。
そのとき、子供が4人来て、3つずつ飴を配ると何個残るかと言う問題を考えてみます。

答えは、3個×4人=12個必要ですが、持っている飴は10個なので、2つ足りないが正しい。
残りの飴は0個で、2つあげることができなかったとなります。

簡単な在庫管理なんですが、エクセルでの計算ではマイナス2になってしまいます。

マイナス2をそのままにして置いておくと困ったことが起きてしまいます。
次に50個入荷してきたときに、単純に足し算してしまって、在庫が48個となります。

実際の飴は50個あるのに、在庫計算結果は48個になってしまって、実際の在庫数と計算上の在庫数が食い違ってしまうのです。よく言う、棚卸が合わないという状態です。

これでは、正確な在庫数の把握ができませんから、計算結果はマイナス2ではなくて実際に残っている数の0にしたいというわけです。

IF 関数を使って、マイナス値を0にする

一つの方法としては、引き算する前にIF関数で在庫数と必要数を比較して分岐させ、在庫数の方が少ないのなら引き算をせずに在庫数を0とし、在庫数が多い場合は引き算した結果を在庫数とします。
これで目的は達成できます。

IF関数の書き方は、次のようになります。

=IF(在庫数<必要数, 0, 在庫数-必要数)
=IF(在庫数-必要数<0, 0, 在庫数-必要数)

MAX 関数を使って、マイナス値を0にする

ちょっと変った方法ですが、MAX関数を使っても同様のことができます。

問題は計算した結果がマイナスになることで、マイナスというのは0と比べて小さいということですから、計算結果が0以上の時はその結果を採用し0未満のときは0を採用するとすれば良いわけです。
前者は0よりも大きい、後者は0よりも小さいというところに目をつけます。

言い換えると、検査する値と0の二つの値の内で最大の値を結果とすれば、目的が達成されそうです。
ですから、最大値を求めるMAX関数がつかえると言うことになります。
ちょっとぴんとこなですか?
ではもう一度、、、

MAX関数は最大の値を求める関数です。
二つの値を与えれば、その二つの内大きい方の値が選ばれる。
一つの値を0に固定すると、0より小さなマイナス値と比べたら0を選んでくれるということです。

=MAX(在庫数-必要数, 0) と書きます。

二つの値でマックス値を求めるってちょっと変な感じですが、目的は確実に達成できます。

そして、MAX関数を使うと式が簡単になる、短くなって見やすいというメリットがあります。
式が複雑で長くなってしまうと、間違いが発生してしまいます。
シンプル・イズ・ベストということで、お勧めです。

MAX 関数まとめ

では実際に最初の例を当てはめてみます。

  • 飴を10個持っていました。これが、在庫数です。
  • 子供4人に3個ずつ飴をあげました。4×3が必要数です。
IF関数では、
=IF((在庫数-必要数)<0, 0, (在庫数-必要数))
=IF((10-4×3)<0, 0, (10-4×3))
MAX関数では、
=MAX(在庫数-必要数, 0)
=MAX(10-4×3,0)

どちらも答えは0となります。

今回は以上です。
有り難うございました。

MAX 関数を使っている記事

コメント

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