金種表とは、ある金額を構成する最小単位の紙幣・硬貨がそれぞれ何枚必要かを判断する表のこと。金種表の作成はExcelの得意分野だ。しかし、2000年の夏からは今まで使っていた金種表が使えなくなる。Y2K問題ではない。7月に登場する2000円札が原因なのだ。
金種を計算するには次の式を使う。

=INT(MOD(目的の金額,ひとつ上の金種)/ 調べたい金種)

たとえば80円の金種を計算するのなら、
(1)100円硬貨の数…INT(MOD(80, 500)/100) → 答え:0
(2) 50円硬貨の数…INT(MOD(80, 100)/50) → 答え:1
(3) 10円硬貨の数…INT(MOD(80, 50)/10) → 答え:3
となる(図1)

 MOD関数は指定した数を除数で割った余りを返す関数だ。MOD(80, 100)は「答え0余り80」となるので80が返る。INT関数は指定した数値の整数部分を返す関数だ。10000円札の「ひとつ上の金種」は存在しないので、MOD関数を使わず「目的の金額」を直接10000円で割ってもよい。  では、同じ式で25000円の金種を調べてみる。1000円札の「ひとつ上の金種」は2000円札になるので注意しよう。

(1)10000円札の数…INT(25000/10000) → 答え:2
(2) 5000円札の数…INT(MOD(25000, 10000)/5000) → 答え:1
(3) 2000円札の数…INT(MOD(25000, 5000)/2000) → 答え:0
(4) 1000円札の数…INT(MOD(25000, 2000)/1000) → 答え:1

 従来の式を使うと、25000円を支払うのに26000円が必要ということになる。これは2000円札の登場によって、金種の間隔が不揃いになったのが原因だ(図2)。

 2000円札による金種の誤計算は1000円札の枚数で発生する。そこで、1000円札をカウントする式を次のように修正しよう。

=INT(MOD(目的の金額 - (2000 * 2000円札の枚数),5000)/ 1000)

 金種を調べる「目的の金額」から、2000円札で支給すべき金額を差し引いてしまう。そして、残りの金額に対して「ひとつ上の金種」を5000円札と見なして計算するのだ。

図1 金種を計算するには、「目的の金額をひとつ上の金種で割った余り」を「調べたい金種」で割った整数部分を計算する。10000円札の欄(B4セル)には「=INT(B1/10000)」と入力。5000円札の欄(B5セル)には「=INT(MOD($B$1,A4)/A5)」と入力して、B13セルまでオートフィルでコピーしよう


図2 ところが、2000円札の登場で金種の間隔が均一でなくなった。従来の計算式では正しい金種計算を行えない


図3 1000円札をカウントする式だけ、図のように修正が必要だ