• ベストアンサー

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
質問者

お礼

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

関連するQ&A

  • FileMakerで数字の前に0(ゼロ)を追加する関数について

    FileMaker で編集したデータをCSV出力をして、商品管理ソフトに読み込みを行いたいのですが、その場合フィールド内のバイト数を9バイトにしなくてはいけません。 現在FileMakerの方では、「価格」フィールド内に"100"、"1000"、"10000"等が入力されています。 頭に0(ゼロ)を追加して合計で9バイト(例:000000100)にしたいです。 3桁の場合は頭に0を6追加する、4桁の場合は5追加するというようなスクリプトを教えていただけますでしょうか? よろしくお願いします。 FileMaker Pro6.0、OSはwindowsXPを使用しています。

  • FileMaker6.0 数字フィールドのワイルドカード使用について

    FileMaker6.0にて会員名簿を作成しております。 会員番号は数字フィールドに入力しており、会員番号が付いている会員と付いていない会員(入会予定者や賛助会員など)がいます。 会員番号が付いている会員だけを検索で抽出したいのですが、数字フィールドにワイルドカードの「*」を入れると 「このフィールドは数字のみを含むように定義されています。これは数字ではありませんが、よろしいですか?」 というメッセージが出て「はい」を押すと 「この検索条件には有効なものがありません。検索する前に有効な検索条件を入力してください」と出て検索できません。 数字フィールで使えるワイルドカードはないのでしょうか。 (数字フィールドをテキストフィールドにするとワイルドカードが使えたのですが、できれば数字フィールドのままにしておきたいのです。) ご教示よろしくお願いします。

  • accessのフィールドに10桁の数字は入らない??

    あるCSVからAccessのテーブルに読みこんだのですが 一部のフィールドで文字の欠落がありました。 元のCSVの内容どおりに、手入力で欠落した箇所に 値を入れようとしたのですが、どうも9ケタの数字は入るのですが 10桁の数字は入らないようでエラーが出ます。 ★メッセージは以下の通りです。  このフィールドに入力した値が正しくありません。  たとえば、数値型のフィールドに文字列を入力しました。 Accessの仕様として、数字の桁数制限があるのでしょうか? また、解決策は何かないでしょうか? XP2、ACCESS200です

  • 割り切れる数字の見つけ方

    2で割り切れる数字は1の位が2の倍数です。 3で割り切れる数字は各桁の合計が3で割り切れるものです。(例 24684は2+4+6+8+4=24で、24/3=8余り0ですので割り切れます。この5つの数字をどう入れ替えても割り切れます。) 5で割り切れる数字は1の位が0か5です。 10で割り切れる数字は1の位が0です。 4,6,7,8、9でも似たような方法ありますか? (9は3と同じ方法で行けそうな気がしますが、確信がないので。) また、3で割り切れる数字の見つけ方ですが、なぜ各桁の合計で割り切れるかどうか分かってしまうのですか? よろしくお願いします。

  • 99に二桁の数字を掛けると

    99に二桁の数字を掛けると 千の位と十の位、百の位と一の位の和が9になるのは 照明することができるのでしょうか? ちょっと数学的に賢くはないので(^^; 優しくお願いします

  • Filemakerにおけるフィールドの考え方

    Filemaker9(以下FM)を使用してシステムを作ることになりました。 FMのフィールドの考え方について教えてください。 以前は主にACCESSを使用して作成していましたが、フィールドには データの保管や加工が出来る[連結フィールド]とフィールド同士をつなげて表示したり、関数を使用して任意の文字を取り出したりする [非連結フィールド]がありました。 FMをいじり始めたのですが、[住所1][住所2]フィールドを連結して 表示したい場合は[住所結合]のような計算フィールドをテーブルの中に 別途作成して表示するとのことです。 考え方としてはわかるのですが、そうなるとレイアウト毎に表示方法が 違う場合や郵便番号を一桁ずつ分ける場合などは、 [郵便番号] [住所1] [住所2] [住所3] [連結住所A] → [住所1]&[住所2] 'フォームAのみで使う [連結住所B] → [住所1]&[住所2]&[住所3] 'フォームBのみで使う [郵便番号1] → Left([郵便番号],1) 郵便番号を一桁ずつに分ける↓ [郵便番号2] → Middle([郵便番号],2,1) [郵便番号3] → Middle([郵便番号],3,1) [郵便番号4] → Middle([郵便番号],5,1) [郵便番号5] → Middle([郵便番号],6,1) [郵便番号6] → Middle([郵便番号],7,1) [郵便番号7] → Right([郵便番号],1) 上記のようにテーブル内に13フィールド必要と言うことでしょうか? テーブル内にフィールドを作らない方法はないものでしょうか? とりかかりでちょっと躓いていてしまいました。 どうかよろしくお願いいたします。

  • 1から9までの数字を並び替えて3桁の数字の作り方

    1から9までの数字を並び替えて3桁の数字を作るときの 個数を求める問題でどうして下のように求めるのかを教えてください。 特に分からないのは一の位に1が出るのは56通りなのは分かるんですが それだと2も56通りですよね!?でも、下の場合だと掛けているので 112個になるんじゃないか・・・ということです。 {(1+2+…+9)*100*56+(1+2+…+9)*10*56+(1+2+…+9)*1*56} なぜそうなるのか教えてください。

  • filemakerでの繰り返しフィールドのリレーション

    Filemakerの使い方で質問です。 WindowsでFilemaker8.0を使用しています。 部品マスタがあり、下記のようなものだとします。 部品番号 部品名 001   パーツA 002   パーツB 003   パーツC 管理マスタがべつにあり、部品マスタと部品番号でリレーションを 組んでいます。 これを1つのレコードに複数入力したいので繰り返しフィールドで 入力は部品番号で行い、その横に部品名が自動的に表示されるように したいのですが、売上入力テーブルに新しいフィールドを定義して ルックアップを利用する方法は判るのですが、それではマスタを 変更しても過去のレコードまでは変化しません。 部品マスタを変更した際に過去のレコードも自動的に変更して欲しいので 繰り返しフィールドをリレーションで部品名を表示させたいのですが可能なのでしょうか。 以上、よろしくお願いします。

  • (ACCESS/複雑です)次回出た数字を桁別&同桁の数毎に分けて記録し、表示したいのですが…

    こんばんは、非常にややこしい質問ですがよろしくお願いします。 1~19までの数字が書かれた19枚のカードから4枚を同時に引いて 出たカードの数字を記録していくデータベースを作るとき、 1~9(一の位)、10~19(十の位)というように それぞれの桁ごとにグループを分け、 ・一の位 1が出た次回、同桁(一の位)が1つの時を記録し表示 1が出た次回、同桁(一の位)が2つの時を記録し表示  ・  ・  ・  9が出た次回、同桁(一の位)が1つの時を記録し表示 9が出た次回、同桁(一の位)が2つの時を記録し表示 (可能ならば) 一の位が出なかった次回、同桁(一の位)が1つの時を記録し表示 一の位が出なかった次回、同桁(一の位)が2つの時を記録し表示 ・十の位も↑で書いた一の位と同じです 10が出た次回、同桁(一の位)が1つの時を記録し表示 10が出た次回、同桁(一の位)が2つの時を記録し表示  ・  ・  ・ というように今回出たそれぞれの数字を基準にして 次回出た数字を 桁べつに & 同桁の数ごと(1つの場合と2つの場合)に 分けて記録し、表示するクエリを作成するにはどうすればよいのでしょうか? ACCESSの知識が豊富な方、ご助力をよろしくお願いいたします。 --------------------------------------------- 今現在あるテーブル ・結果テーブル…引いた4枚の数字を記録      テーブル 「結果テーブル」    フィールド名 「回数」「1枚目」「2枚目」「3枚目」「4枚目」           (全て数値型)

  • FileMaker6で文字列を数字に変更したいのですが

     FileMaker6で文字列を数字列に変更したいと考えています。 具体的には、文字列のフィールドに「たなか」と入力されているとします。これを、 あ行は1、か行は2、さ行は3・・・・ の原則にのっとり、計算フィールドの数字列に自動的に入力したいのです。「たなか」を数字に変更すると、「452」となります。 どのような関数式が、数字列の計算フィールドには必要でしょうか。