• ベストアンサー

FileMakerで6桁の数字を1桁づつ各フィールドにいれたい!

FileMakerで6桁の数字を1桁づつ各フィールドに移したいのですが。 564297 が合計フィールドに入っているとします。 それを 100000の位フィールドに5 10000の位フィールドに6 1000の位フィールドに4 100の位フィールドに2 10の位フィールドに9 1の位フィールドに7 と各フィールドに数字を分けたいのですが どうしたらいいでしょうか? もちろん位別にわけたいです。 質問がわかりにくくてごめんなさい。

質問者が選んだベストアンサー

  • ベストアンサー
  • 7marine
  • ベストアンサー率36% (59/160)
回答No.4

ANo.1、3です。 たびたび訂正   T = GetAsText(金額);L = Length(T)]; を   T = GetAsText(int(金額));L = Length(T)]; でお願いします。 ANo2の方の方法ははシンプルでいいですね! でもそれだけだと小額でも0が表示されますが それはいいのかな? まあif分岐を追加すればいいだけですが

その他の回答 (4)

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.5

>位別にわけたいです。  この意味がよく分かりませんが、単純に564297という数値を、5,6,4,2,9,7の6個に分けたいということでいいのでしょうか。  それとも500000,60000,4000,200,90,7のように分けたいという意味でしょうか。  前者の場合なら 100000の位フィールドに Middle(合計フィールド,1,1) 10000の位フィールドに  Middle(合計フィールド,2,1) 1000の位フィールドに   Middle(合計フィールド,3,1) 100の位フィールドに   Middle(合計フィールド,4,1) 10の位フィールドに   Middle(合計フィールド,5,1) 1の位フィールドに    Middle(合計フィールド,6,1)  の各計算式を入れますが、後者の場合なら 100000の位フィールドに Middle(合計フィールド,1,1)*100000 10000の位フィールドに  Middle(合計フィールド,2,1)*10000 1000の位フィールドに   Middle(合計フィールド,3,1)*1000 100の位フィールドに   Middle(合計フィールド,4,1)*100 10の位フィールドに   Middle(合計フィールド,5,1)*10 1の位フィールドに    Middle(合計フィールド,6,1)  と計算式を入れればいいと思いますが、いかがでしょうか。  なお、計算結果のフィールドタイプを数字にするかテキストにするかは、データを計算に使うか、文字として使うかによって使い分てください。

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.3

ANo.1です。 会社で検証したところちょっと訂正。 ファイルメーカーでは数字フィールドに数字以外の 文字が入力できるので   T = GetAsText(金額);L = Length(T)]; を   T = GetAsText(GetAsNumber(金額));L = Length(T)]; と面倒ですがしてください あと計算結果はレイアウトに表示するだけ時は 文字列にするのが通常です。

回答No.2

1000の位の数字は、元の数値を100で割った商をさらに10で割った余 ですから、 mod(int(数値/100), 10) ですね。他の桁も同様に(桁数-1)で割った商を10で割った余を出せ ばオッケー。

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.1

Ver7の場合で 100000の位=  Let ([   T = GetAsText(金額);L = Length(T)];   If( L >= 6;Middle(T;L-5;1);"")  )

hiyokocyan777
質問者

お礼

ありがとうございました。 とても助かります。 初心者なもので。。。