金種計算
エクセルを使って金種計算を行います。
キャッシュレスの増えた最近ではあまり必要がないかもしれません。
頭の体操にもなりますので、作ってみました。
金種計算 例1
必要な金種は B列 にチェック(空白でなければ、何でもOK)を入れます。D2 に金額を入れると必要な金種の数が計算されます。
B列のチェックを外すと、その金種は除外されます。
下の例では、2000円の金種を外しています。
そうすると、1000円が3枚となり、合計はあっていますね。
各セルの数式をチェックしましょう。
C列
C4
C4 セルに以下のように入力します。
=IF(ISBLANK(B4),0,INT($\$$D$\$$2/$\$$A4))
ISBLANK(B4),0
で B列が空白かどうかをチェックします。空白の場合は 0 を出力します。
INT($\$$D$\$$2/$\$$A4) で D2 の金額を金種で割ります。結果は INT関数で整数部分だけを取り出します。
C5 以下
=IF(ISBLANK(B5),0,INT(($\$$D$\$$2-SUM($\$$D$\$$4:D4))/$\$$A5))
前半部分は C4 セルと同じです。
後半の INT(($\$$D$\$$2-SUM($\$$D$\$$4:D4))/$\$$A5) でD2の金額からそれまでの総合計を引き、金種で割ります。結果を INT関数で整数部分だけにします。
C5 セルを入力したら、C5 セルを下までコピーします。
D列
D列にはその金種で必要な金額を計算します。
例:10000円札が2枚必要なら 10000×2=20000円 のように。
D4 に =C4*A4 と入力します。
入力した D4 セルを下までコピーします。
注意
最小単位の1円のチェック(B13)を外すことはできません。なぜなら1円は他の金種で置き換えできないからです。
よってC13 セルの数式を書き換えて
=INT(($\$$D$\$$2-SUM($\$$D$\$$4:D12))/$\$$A13)
とした方がよいかもしれません。
金種計算 例2
もう少し簡単にできないでしょうか?
MOD関数を用いてやってみましょう。
書式
=MOD(数値, 除数)
MOD関数は、数値を除数で割ったときの余りを出力します。
例えば、111 を 100 で割ったときのあまりは 11 です。
これを MOD関数で処理すると、
=MOD(111,100) ⇒ 11
となります。
これを利用して考えてみましょう。
注意:金種は 2000円を使用しないという設定です。
B4 セルに =INT($\$$C$\$$2/A4)
B5 セルに =INT(MOD($\$$C$\$$2,A4)/A5)
と入力します。
B5 セルを下までコピーすればOKです。
数式をチェックしてみてください。
この場合、C列の「金額」は計算には必要ありませんので、無しでもOKです。
エラー
しかし、このままでは少し問題があります。金種で 2000円があるとうまく計算できないときがあります。下図
この例では1000円札の必要枚数がうまく計算されていませんので、合計が違ってきています。
これを回避するには、2000円という金種を使わない・・・か、金額合計を示すC列を使って、次のようにします。
こうしておけば、2000円の金種でも正常に判定してくれます。
もちろん、金額の合計までB列の数式に組み込むこともできますが、やや面倒になります。
コメント