• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FileMakerの計算方法について教えて下さい)

FileMakerの計算方法と期間の算出について

このQ&Aのポイント
  • FileMakerでのデータ計算について教えてください。期間と値の計算方法を知りたいです。
  • FileMakerでデータの自動計算を行いたいです。最新のデータと前のデータの期間と値を計算する方法を教えてください。
  • FileMakerでデータの計算を行いたいです。最新のデータと一つ前のデータの期間と値を計算する方法を教えてください。

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

  • ベストアンサー
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.6

最新の一覧も同じです。 別テーブルにA,B,Cを入れるフィールドを1個作って、元テーブルとリレーション そのとき元テーブル側は日付の降順ソート 別テーブルに3個レコードを作ってA,B,Cと入れて関連フィールド  元テーブル::日付 を配置してリスト表示にすると表示されます。 リレーションで関連レコードをどのようにして絞るのかを理解した方がいいですよ。

takeisaa
質問者

お礼

chieffishさん どうもありがとうございます。 早速やってみます。 Accessはずっと使っていたのですが、FileMakerを11月からはじめて使い始めたのですが リレーションがよくわからなくて苦労しています。 がんばって勉強してみます。 ありがとうございます。

その他の回答 (5)

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.5

1件しか無い場合、前回の日付を1900/01/01にするときは Case ( Count ( テーブル 2::日付 )= 1 ;    Date ( 1; 1 ; 1900 ); GetNthRecord ( テーブル 2::日付 ; 2) ) と関連レコード数で分岐です。そのリレーションのポータルを 表示するとわかりやすいかも。 最新の一覧とは?

takeisaa
質問者

お礼

chieffishさんありがとうございます!! ポータルの表示試してみます。 最新の一覧というのは A 9/7 100 A 10/11 200 A 11/30 180 B 9/7 100 B 10/11 200 B 11/21 100 とデータがある場合 A 11/30 180 B 11/21 100 というように表示させたいという事なのですが、すみませんがよろしくお願いします。

takeisaa
質問者

補足

すみません。追加で データの数は同じではなく C 9/7 100 C 10/11 200  の場合でも A 11/30 180 B 11/21 100 C 10/11 200 と一覧に出したいと考えています。 申し訳ありませんが、教えていただけないでしょうか。 どうぞ、よろしくお願いします。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

3件ということは仮に 1 A 10/01 100 2 A 11/05 200 3 A 12/05 70 となっているとすると、 3のレコードがアクティブの時は3の日付が最新で、その前は2のレコード 2がアクティブの時は2が最新で1がその前のレコード となるはずです。 前々回のものを拾ってくるのでしたら、テーブル2のソートが  日付 > ::日付 になっているかも知れませんが、これですと前回と前々回になりますし。

takeisaa
質問者

お礼

chieffishさん ありがとうございました。 ご指摘の通りソートの問題でした。 初歩的なミスで申し訳ありません。ありがとうございました。 データが1件しかない場合は値が?と表示されてしまうので その場合は別の計算方法にしたいのですが、そのような事は可能なのでしょうか? 可能でしたら、方法を教えていただけないでしょうか。 何度もすみませんが、よろしくお願いします。

takeisaa
質問者

補足

すみません、追加で教えて頂きたいのですが、最新のデータのみの一覧を 印刷させたいのですが、その場合はどうしたらいいのでしょうか? 質問ばかりで申し訳ありません。 どうぞ、よろしくお願いいたします。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

その計算結果をどこに表示するのか不明でしたので 自己リレーションにしました。自己リレーション先のテーブル名を テーブル2とすると 期間という計算フィールドを作って、式を  テーブル2::日付&"-"&GetNthRecord(テーブル2::日付 ; 2) 結果はテキスト とすると1レコードごとに出るはずです。値の方も同じです。 テーブル2::日付 というのは GetNthRecord(テーブル2::日付 ; 1)  と同じです。

takeisaa
質問者

お礼

chieffishさん どうもありがとうございます。 計算結果はデータが2件のときはうまくいったのですが、 3件になると前々回のデータからマイナスしてしまっています。 教えていただいた通りに操作したつもりなのですが 何か原因は考えられますでしょうか。 質問ばかりですみませんが、よろしくお願いします。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

書き忘れた。 日付のリレーションは 日付 >= ::日付

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

A,B,Cのフィールドと日付のフィールドでそれぞれリレーション そのとき日付は降順ソート指定すると 最も新しいデータは関連テーブル::データ その前は GetNthRecord(関連テーブル::データ ; 2)

takeisaa
質問者

お礼

chieffishさん どうもありがとうございます。 すみません、初心者で理解できませんでした。 自己リレーションまでは出来ました。 次の A、B、Cの期間 と 数値の足し算への 持っていき方法を教えていただけないでしょうか。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう