(Gスプレッドシート)金種計算をする

 Googleスプレッドシートで金種計算表を作る方法についてです。ここでは基本的な、2000円札を含めない場合の例を示します。

  • INT関数を基本とした計算により、金種計算を行うことができます。

手順

f:id:accs2014:20200229105826p:plain:right:w650

 画像は結果です。
 B3:B5には金種計算の対象となる金額が、C2:K2に金種(10000円札~1円玉。2000円札はない)を表す数値が並んでいます。
 そこでC3セルに次のような式を入力し、B3セルの金額の金種計算を行っています。

=ARRAYFORMULA(INT(MOD(B3,{9^9,C2:J2})/C2:K2))

 まず基本的に金種に2000円札を含めていないので、ある金種がいくつ必要かは「『金額を1つ上の金種で割った余り』をその金種で割った商(の整数部分)」で求まります。
 例として「B3セルの金額(64,278円)に対しI2セルの金種(10円玉)がいくつ必要か」というのは「=INT(MOD(B3,H2)/I2)」で求まります(64278を50で割った余りは28。28を10で割った商の整数部分は2。よって結果は2)。
 上記の式では、10,000円札(より上位の金種がない)でも同じ式を適用できるように「9^9」という架空の金種を式に加え(9^9は約4億ですので、これ以上の金額を扱う場合はより大きい値が必要です)、さらにARRAYFORMULAにより列方向に拡張しています。これで1つの式だけですべての金種の計算を行っています。

f:id:accs2014:20200229105831p:plain:right:w650

 さらにMOD関数の第1引数で複数の行を指定することにより、すべての金額(行)の金種計算を一気に行うことができます。
 画像はC3セルに次のように入力した結果です。

=ARRAYFORMULA(INT(MOD(B3:B5,{9^9,C2:J2})/C2:K2))