- ベストアンサー
FileMakerの計算方法と期間の算出について
- FileMakerでのデータ計算について教えてください。期間と値の計算方法を知りたいです。
- FileMakerでデータの自動計算を行いたいです。最新のデータと前のデータの期間と値を計算する方法を教えてください。
- FileMakerでデータの計算を行いたいです。最新のデータと一つ前のデータの期間と値を計算する方法を教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
最新の一覧も同じです。 別テーブルにA,B,Cを入れるフィールドを1個作って、元テーブルとリレーション そのとき元テーブル側は日付の降順ソート 別テーブルに3個レコードを作ってA,B,Cと入れて関連フィールド 元テーブル::日付 を配置してリスト表示にすると表示されます。 リレーションで関連レコードをどのようにして絞るのかを理解した方がいいですよ。
その他の回答 (5)
- chieffish
- ベストアンサー率44% (1149/2554)
1件しか無い場合、前回の日付を1900/01/01にするときは Case ( Count ( テーブル 2::日付 )= 1 ; Date ( 1; 1 ; 1900 ); GetNthRecord ( テーブル 2::日付 ; 2) ) と関連レコード数で分岐です。そのリレーションのポータルを 表示するとわかりやすいかも。 最新の一覧とは?
お礼
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 というように表示させたいという事なのですが、すみませんがよろしくお願いします。
補足
すみません。追加で データの数は同じではなく C 9/7 100 C 10/11 200 の場合でも A 11/30 180 B 11/21 100 C 10/11 200 と一覧に出したいと考えています。 申し訳ありませんが、教えていただけないでしょうか。 どうぞ、よろしくお願いします。
- chieffish
- ベストアンサー率44% (1149/2554)
3件ということは仮に 1 A 10/01 100 2 A 11/05 200 3 A 12/05 70 となっているとすると、 3のレコードがアクティブの時は3の日付が最新で、その前は2のレコード 2がアクティブの時は2が最新で1がその前のレコード となるはずです。 前々回のものを拾ってくるのでしたら、テーブル2のソートが 日付 > ::日付 になっているかも知れませんが、これですと前回と前々回になりますし。
お礼
chieffishさん ありがとうございました。 ご指摘の通りソートの問題でした。 初歩的なミスで申し訳ありません。ありがとうございました。 データが1件しかない場合は値が?と表示されてしまうので その場合は別の計算方法にしたいのですが、そのような事は可能なのでしょうか? 可能でしたら、方法を教えていただけないでしょうか。 何度もすみませんが、よろしくお願いします。
補足
すみません、追加で教えて頂きたいのですが、最新のデータのみの一覧を 印刷させたいのですが、その場合はどうしたらいいのでしょうか? 質問ばかりで申し訳ありません。 どうぞ、よろしくお願いいたします。
- chieffish
- ベストアンサー率44% (1149/2554)
その計算結果をどこに表示するのか不明でしたので 自己リレーションにしました。自己リレーション先のテーブル名を テーブル2とすると 期間という計算フィールドを作って、式を テーブル2::日付&"-"&GetNthRecord(テーブル2::日付 ; 2) 結果はテキスト とすると1レコードごとに出るはずです。値の方も同じです。 テーブル2::日付 というのは GetNthRecord(テーブル2::日付 ; 1) と同じです。
お礼
chieffishさん どうもありがとうございます。 計算結果はデータが2件のときはうまくいったのですが、 3件になると前々回のデータからマイナスしてしまっています。 教えていただいた通りに操作したつもりなのですが 何か原因は考えられますでしょうか。 質問ばかりですみませんが、よろしくお願いします。
- chieffish
- ベストアンサー率44% (1149/2554)
書き忘れた。 日付のリレーションは 日付 >= ::日付
- chieffish
- ベストアンサー率44% (1149/2554)
A,B,Cのフィールドと日付のフィールドでそれぞれリレーション そのとき日付は降順ソート指定すると 最も新しいデータは関連テーブル::データ その前は GetNthRecord(関連テーブル::データ ; 2)
お礼
chieffishさん どうもありがとうございます。 すみません、初心者で理解できませんでした。 自己リレーションまでは出来ました。 次の A、B、Cの期間 と 数値の足し算への 持っていき方法を教えていただけないでしょうか。 よろしくお願いします。
お礼
chieffishさん どうもありがとうございます。 早速やってみます。 Accessはずっと使っていたのですが、FileMakerを11月からはじめて使い始めたのですが リレーションがよくわからなくて苦労しています。 がんばって勉強してみます。 ありがとうございます。