初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2019-12-26 15:53:22

Rev
Guest

金額によりお金の必要枚数の計算

質問お願いします。(環境 FM18)

金額によりお金の必要枚数を知りたいのですが
例えば28,728円だった場合は
1万円札=2枚
5千円札=1枚
千円札=3枚
5百円玉=1枚
百円玉=2枚
10円玉=2枚
5円玉=1枚
1円玉=3枚

と出るようにしたいです。計算式はどのようになるでしょうか?
ご教授お願いします。

#2 2019-12-26 17:21:00

チポ
Member

Re: 金額によりお金の必要枚数の計算

1万円札は  Int ( 金額 / 10000 )
  5千円札は  Int ( ( 金額 - 1万円札の枚数 * 10000 ) / 5000 )
このような方法でいいのでは。
以後どんどん式が長くなりますね。

Offline

#3 2019-12-26 17:27:41

Shin
Member

Re: 金額によりお金の必要枚数の計算

5×n円と1×n円の必要枚数は、
Div ( Mod ( Div ( 金額 ; n ) ; 10 ) ; 5 )
Mod ( Mod ( Div ( 金額 ; n ) ; 10 ) ; 5 )
です。それぞれ、すべての数字の桁を増減すれば、各金額向けが求められます。

Offline

#4 2019-12-26 17:32:05

koeda
Member

Re: 金額によりお金の必要枚数の計算

金種表というやつですね。
以下のスレッドも参考になるのでは。
https://fm-aid.com/bbs2/viewtopic.php?id=667

1)「元金額」(数字フィールド)を作ります。
2)計算フィールド(繰り返し数9)を作り、以下のような式を定義します。

Let (
[
  gaku = List ( 10000 ; 5000 ; 1000 ; 500 ; 100 ; 50 ; 10 ; 5 ; 1 ) ;
  n = Get ( 計算式繰り返し位置番号 ) ;
  p = GetValue ( gaku ; n ) ;
  Pu = GetValue ( gaku ; n - 1 )
] ;
  Case (
    n = 1 ; Div ( 元金額[1] ; p ) ;
    Div ( Mod ( 元金額[1] ; Pu ) ; p )
  )
)

これを元に集計したり、表示用テキストに加工したりは容易かと思います。

Last edited by koeda (2019-12-26 17:55:27)

Offline

#5 2019-12-26 17:54:36

ててを
Member

Re: 金額によりお金の必要枚数の計算

結果を変数で受け取るバージョン。
$ret[1]~[9]に1万円~1円の枚数が入ります。


While (
[
~n = 金額 ;
$m[1] = 10000 ;
$m[2] = 5000 ;
$m[3] = 1000 ;
$m[4] = 500 ;
$m[5] = 100 ;
$m[6] = 50 ;
$m[7] = 10 ;
$m[8] = 5 ;
$m[9] = 1 ;
~i = 1 ;
$ret = 0
] ;
not IsEmpty ( $m[~i] ) ;
[
$ret[~i] = Truncate ( ~n / $m[~i] ; 0 ) ;
~n = Mod ( ~n ; $m[~i] ) ;
~i = ~i + 1
] ;
$ret
)

Offline

#6 2019-12-27 00:06:37

Hiro
Member

Re: 金額によりお金の必要枚数の計算

  • 例えば、金額が 28,728円 だった場合に
    -------------------
    1万円札=2枚
    5千円札=1枚
    千円札=3枚
    5百円玉=1枚
    百円玉=2枚
    10円玉=2枚
    5円玉=1枚
    1円玉=3枚
    -------------------
    のような書式の「金種一覧表」を計算する式
    (※最新v18「While関数」を利用しなくてもできる疑似ループ式)

Let(
[
   $amnt=金額;
   $unt=List(10000;5000;1000;500;100;50;10;5;1);
   $_unt=List("1万円札";"5千円札";"千円札";"5百円玉";"百円玉";"5百円玉";"10円玉";"5円玉";"1円玉");
   $i=0;
   $res="";
   $LOOP=
      "Case(
            $amnt=0 or $i=9; $res;
            Let([
                  $i=$i+1;
                  #unt=GetValue($unt; $i);
                  #_unt=GetValue($_unt; $i);
                  #div=Div($amnt; #unt);
                  #res=Case(#div; #_unt &""=""& #div &""枚"");
                  $res=List($res; #res);
                  $amnt=Mod($amnt; #unt)
            ]; Evaluate($LOOP))
      )"
];
   Evaluate($LOOP)
)

Offline

#7 2019-12-27 01:21:08

Rev
Guest

Re: 金額によりお金の必要枚数の計算

皆様、大変様々な方法でご回答いただき、ありがとうございます!
思ったように出るようになりました。
助かりました。重ねてお礼申し上げます。
ありがとうございました!

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 515.84 KiB (Peak: 520.74 KiB) ]