- ベストアンサー
FileMakerで6桁の数字を1桁づつ各フィールドにいれたい!
FileMakerで6桁の数字を1桁づつ各フィールドに移したいのですが。 564297 が合計フィールドに入っているとします。 それを 100000の位フィールドに5 10000の位フィールドに6 1000の位フィールドに4 100の位フィールドに2 10の位フィールドに9 1の位フィールドに7 と各フィールドに数字を分けたいのですが どうしたらいいでしょうか? もちろん位別にわけたいです。 質問がわかりにくくてごめんなさい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1、3です。 たびたび訂正 T = GetAsText(金額);L = Length(T)]; を T = GetAsText(int(金額));L = Length(T)]; でお願いします。 ANo2の方の方法ははシンプルでいいですね! でもそれだけだと小額でも0が表示されますが それはいいのかな? まあif分岐を追加すればいいだけですが
その他の回答 (4)
- zenjee
- ベストアンサー率47% (50/106)
>位別にわけたいです。 この意味がよく分かりませんが、単純に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)
ANo.1です。 会社で検証したところちょっと訂正。 ファイルメーカーでは数字フィールドに数字以外の 文字が入力できるので T = GetAsText(金額);L = Length(T)]; を T = GetAsText(GetAsNumber(金額));L = Length(T)]; と面倒ですがしてください あと計算結果はレイアウトに表示するだけ時は 文字列にするのが通常です。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
1000の位の数字は、元の数値を100で割った商をさらに10で割った余 ですから、 mod(int(数値/100), 10) ですね。他の桁も同様に(桁数-1)で割った商を10で割った余を出せ ばオッケー。
- 7marine
- ベストアンサー率36% (59/160)
Ver7の場合で 100000の位= Let ([ T = GetAsText(金額);L = Length(T)]; If( L >= 6;Middle(T;L-5;1);"") )
お礼
ありがとうございました。 とても助かります。 初心者なもので。。。