初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-09-08 11:52:15

めろん
Guest

条件によって集計対象フィールドを変更する方法

何度かこの掲示板を活用し質問させてもらってます。

タイトルの通り、条件によって集計対象のフィールドを変えたいのですが、良い方法があれば教えてください。
月ごとの目標件数と実績件数をクロス集計するレイアウトを作成しています。
テーブルの構成は、年月/目標件数/実績件数/取引先 の4フィールドで、取引先ごとにひと月1レコードが出来る形です。
レイアウトは、集計パートに目標件数/実績件数それぞれの繰返し集計フィールドを12ヶ月分横展開で表示し、取引先でソートすることで分類ごと・月ごとの目標・実績がクロス集計で見えるようにしています。

この横展開のレイアウトの一番右に、目標と実績それぞれ12ヶ月分の合計件数を表示できるよう、sum関数を使用してTotalの計算フィールドを新たに追加しました。
上記は問題なく集計され解決したのですが、この方法ですと、目標用と実績用の2つ分、Total計算フィールドが必要になります。
なんとかTotalの計算フィールドは1つで、条件によって目標合計・実績合計を出し分けれるようにしたいのです。

この質問の背景として、テーブルの構成を簡略化して書いていますが、件数以外にも売上金額・仕入金額・その他金額・担当スタッフ人数・利益などの項目が多く存在し、これらのフィールド+項目を掛け算したり足し引きした計算フィールド達も、本クロス集計表に12ヶ月分繰返し表示しています。
予算と実績が存在するので、例えば同じ「売上金額」のフィールドでも予算用と実績用の2つ、更に繰返し集計表示用のフィールドも作成する必要があり、このテーブルのフィールド数がかなり多くなっています。
予算と実績それぞれTotalフィールドを作ればいいだけなのですが、すべての項目にTotalを表示させる必要があり、そうなるとかなり数が多いのでなるべくフィールド数を減らしたいです。

配置したTotalフィールドそれぞれにオブジェクト名のようなものをつけて、その名前によって集計対象を変える・・みたいなことができればフィールドの数がかなり減るかな?と思ったのですが、そういった関数もなさそうで困っています。
やはりシンプルに項目数*予算と実績の2パターン分、Totalフィールドを作るしかないのでしょうか。

#2 2022-09-08 18:51:59

Shin
Member

Re: 条件によって集計対象フィールドを変更する方法

目標、実績の月別集計、年合計 がセットで集計されるのでしたら、それを統合した繰り返しフィールドにしてしまうとフィールド数は減っていきます。(メンテナンス性を無視していいのでしたら)
例えば、
Let (
    rpt = Get ( 計算式繰り返し位置番号 ) ;
    Case (
        Div ( rpt - 1 ; 13 ) = 0 and Mod ( rpt ; 13 ) = 0 ; 目標件数[1] ;
        Div ( rpt - 1 ; 13 ) = 0 and Mod ( rpt ; 13 ) = 月[1] ; 目標件数[1] ;
        Div ( rpt - 1 ; 13 ) = 1 and Mod ( rpt ; 13 ) = 0 ; 実績件数[1] ;
        Div ( rpt - 1 ; 13 ) = 1 and Mod ( rpt ; 13 ) = 月[1] ; 実績件数[1]
    )
)
という繰り返しフィールドにしておくと、1-13繰り返しで目標件数の月毎と年合計が、繰り返し14-26で実績件数の集計ができます。これだけで、フィールド数は1/4になりますね。
もっと詰め込み1フィールドで処理することもできますが、繰り返しフィールドは計算量が多くなり遅くなりますので、程々にしておきましょう。

さらに、その集計フィールドはそれぞれ作るとして、集計一覧のレイアウトでは、Evaluate() とか、Case() を使った計算フィールドなどで、その集計フィールドを指定すれば、表示のコントロールも可能です。
ただし、書式(件数と金額は表示が違うでしょう)設定が面倒なので、別レイアウトにするか、オブジェクトを隠すなどで表示をコントロールした方がいいと思います。

Last edited by Shin (2022-09-09 08:50:52)

Offline

#3 2022-09-09 13:04:24

めろん
Guest

Re: 条件によって集計対象フィールドを変更する方法

Shinさん

返信有難うございます。
除算結果と余りで条件分岐させるのですね。納得です。
これならフィールド名がかなり少なくなりそうです。

追加の質問ですみませんが、教えてください。
教えていただいた計算式で、13・26番目の繰返しフィールドになぜ合計が出るのか?わかりません。
目標件数[1]という同じフィールド指定で、なぜ単月と合計で出し分けれるのでしょうか?

また、数字だけでなく割合表記(仕入金額/売上金額の原価率など)の項目もあるのですが、合計フィールドにはTotal割合を出したいです。
現在12ヶ月分の割合を単純合計した数字が出ているのですが、これをTotal割合にするにはどうすれば良いでしょうか?

#4 2022-09-09 15:47:42

Shin
Member

Re: 条件によって集計対象フィールドを変更する方法

極端なことをしたサンプルです。
https://www.dropbox.com/s/nmkiu8dnn7ac9 … 2.zip?dl=0

計算の理屈は、それぞれのレコードの繰り返しの計算フィールドの内容をみてみられるといいでしょう。
1 + 2 = 3
1 + 0 = 1
0 + 2 = 2
です。

Last edited by Shin (2022-09-09 16:21:51)

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 514.13 KiB (Peak: 519.04 KiB) ]