今回は、 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となります。
今回は以上です。
有り難うございました。
コメント