貨幣の枚数を計算する

ある金額に対して、貨幣の枚数を計算で求める場合、どんな方法があるか?
例として、28,346円という金額でやってみよう。


(1) 「枚数を求めたい貨幣」で何枚取れるか数え、それが5枚1組あるいは2枚1組になるか調べる方法。

貨幣  セル  計算式  枚数   考え方
   A1 12345    
 10000  A2  =INT(12345/10000)  2 10000円が何枚取れるか
 5000  A3  =MOD(INT(A1/5000),2) 5000円が何枚取れるか調べ、2枚1組になるか調べる 
 1000  A4  =MOD(INT(A1/1000),5) 1000円が何枚取れるか調べ、5枚1組になるか調べる
 500  A5  =MOD(INT(A1/500),2)  0 500円が何枚取れるか調べ、2枚1組になるか調べる
 100  A6  =MOD(INT(A1/100),5) 100円が何枚取れるか調べ、5枚1組になるか調べる 
 50  A7  =MOD(INT(A1/50),2) 50円が何枚取れるか調べ、2枚1組になるか調べる 
 10  A8  =MOD(INT(A1/10),5)  4 10円が何枚取れるか調べ、5枚1組になるか調べる
 5  A9  =MOD(INT(A1/5),2)  1 5円が何枚取れるか調べ、2枚1組になるか調べる 
 1  A10  =MOD(A1,5) 5円を取れるだけ取った、残りが1円の枚数

※ MOD関数 → 割り算の余りを求める   INT関数 → 小数部分を切り捨てる)

まず、もとの金額から求めたい貨幣が何枚取れるか調べる。
そして、今度はそれが●枚1組になるか調べて、出てきた余りが必要な枚数。
5円であれば、2枚1組で10円になるので、取れた枚数を2で割った余りが、必要な5円の枚数になる。

ただ、この考え方では、2000円札を含んだ枚数は求めることができません。
なぜなら、6000円の場合に2000円が3枚という答えがでますが、実際は5000円と1000円で2枚になるからです。



(2) 「枚数を求めるのに必要な部分」を取り出して,計算する方法。

貨幣  セル  計算式  枚数   考え方
   A1 12345    
 10000  A2  =INT(12345/10000) (省略)
 5000  A3  =INT(MOD(A1,10000)/5000) 10000円を取れるだけとり、残りから5000円が何枚取れるか 
 1000  A4  =INT(MOD(A1,5000)/1000) 5000円を取れるだけとり、 残りから1000円が何枚取れるか
 500  A5  =INT(MOD(A1,1000)/500)  0 1000円を取れるだけとり、残りから500円が何枚取れるか
 100  A6  =INT(MOD(A1,500)/100) 500円を取れるだけとり、残りから100円が何枚とれるか 
 50  A7  =INT(MOD(A1,100)/50) 100円を取れるだけとり、残りから50円が何枚とれるか 
 10  A8  =INT(MOD(A1,50)/10)  4 50円を取れるだけとり、残りから10円が何枚とれるか 
 5  A9  =INT(MOD(A1,10)/5)  1 10円を取れるだけとり、残りから5円が何枚取れるか 
 1  A10  =MOD(A1,5) (省略)
         
  2000円札を含む場合    
2000  A11   =INT(MOD(A1,5000)/2000)  1 5000円を取れるだけとり、残りから2000円が何枚取れるか 
1000  A12  = INT(MOD(MOD(A1,5000),2000)/1000) 5000円を取れるだけとり、残りから2000円を取り、
その残りから1000円が何枚とれるか 

※ MOD関数 → 割り算の余りを求める   INT関数 → 小数部分を切り捨てる)

まず、もとの金額から、求めたい貨幣の一つ上の金額を取れるだけとる。
すると余りが出てくるから、この中で求めたい貨幣の枚数を計算すればいい。
例えば、1000円の枚数を知りたいのであれば、3346円の中で計算すればいい。



(追記)
商の整数部分を求める関数に、QUOTIENT関数があります。
これをINT関数の代わりに使うこともできます。
ただし、アドインで分析ツールを使えるようにしないと使えない関数なので、今回はINT関数を使いました。