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

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

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

You are not logged in.

Announcement

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


#1 2018-02-16 14:33:49

step
Member

レコードによっては正常に計算されない

Win 10
FileMaker Pro 12 Advanced

拠点が複数あり、その拠点に複数のスタッフが所属しています。

スタッフの見込売上を拠点テーブルにポータルで表示しています。
その拠点に所属しているスタッフの見込売上が一覧(ポータル)で見れるようになっています。

その拠点全体の見込売上を見るために見込売上の集計(合計)フィールドを作成しました。
また、拠点に割り当てられた予算を入力する数字フィールドがあります。

見込売上-予算で差額を計算したいと思います。
見込売上は集計フィールドなので、計算式は、
差額=GetSummary(見込売上;見込売上)- 予算 としています。

ある拠点(レコード)では上手く動作するのに、別の拠点(レコード)では動作しません。

スタッフのセグメントごとに小計も出しているのでポータルのフィルタリングもしています。

全レコードで共通して計算が上手くできないのはわかりますが、レコードによっては正常に計算されない原因が分かりません。

お力をお貸しください。
よろしくお願いします。

Offline

#2 2018-02-19 14:55:35

tete
Member

Re: レコードによっては正常に計算されない

記載の情報のみでは、詳細な原因まで分かりませんが、集計値のトラブルについては、一般的に下記がよくある原因です。

- ポータルフィルタリングは集計フィールドや統計関数の結果には影響を与えません。例えば見込売上が1000円のレコードが5つ、合計5000円の状態であったとして、これがポータルフィルタリングによって3件に絞り込まれても、集計に利用しているフィールドの金額は3000円ではなく5000円のままです。

- GetSummary関数の計算結果は、ソート状態に影響を受けます。

テーブル構成や、ポータルを表示するためのリレーションシップはどのようなフィールドで行なっているかなど、をもう少し詳しくお書きになれば、さらに適切なアドバイスを受けることができるかもしれません。

詳細によっては集計の方法を見直す必要がります。

Last edited by tete (2018-02-19 19:12:22)

Offline

#3 2018-02-23 14:22:43

step
Member

Re: レコードによっては正常に計算されない

前にも質問した内容と少し被るのですが、

以前
集計フィールド(売上見込み) - 数字フィールド(予算) = 計算フィールド(差額)
で、集計フィールドはある特定の条件に一致するレコードのみ集計してほしいので、ポータル上に載せてフィルタリングしました。
しかし、集計フィールドをそのまま計算式に入れることができず、困っていたら数字フィールドをグローバルにすると上手くいくと教わりました。
それで計算は上手くいったのですが、グローバルフィールドだと全てのレコードに共通した1つのデータしか格納できず、その問題を解決するために、

現在
計算フィールド(GetSummary(売上見込み;売上見込み)) - 数字フィールド(予算) = 計算フィールド(差額)
としました。

集計関数の区分けフィールドを上手く使えばポータルのフィルタリングと同じようにある特定の条件に一致するレコードを集計してくれるのかもしれませんが、
上手くいかず、ソートはしていません。

teteさんのコメント「ポータルフィルタリングは集計フィールドや統計関数の結果には影響を与えません」というところで、どうすれば
ポータルのフィルタリングのような機能を使って計算結果に影響を与えることができるでしょうか?

テーブル       レイアウト      詳細
【拠点マスター】    拠点        :スタッフが所属している拠点のマスター
【スタッフマスター】  スタッフ      :人情報
【スタッフ見込み・実績】スタッフ見込み・実績:スタッフの見込売上と実績
【拠点マスター】    拠点見込み・実績  :拠点に所属しているスタッフの見込売上と実績をポータルで表示 セグメントごと月ごとに2重のタブで表示している

リレーション
拠点マスター(拠点コード) = スタッフマスター(拠点コード)
スタッフマスター(スタッフID) = スタッフ見込み・実績(スタッフID)
スタッフマスター(スタッフID) = スタッフマスター3(スタッフID)
スタッフマスター2(スタッフID)= スタッフ見込み・実績2(スタッフID)
スタッフ見込み・実績(スタッフID)= スタッフ見込み・実績2(スタッフID)

大体こんな感じです。
ポータルのフィルタリングは スタッフマスター2テーブル::セグメント=”A” としています。
セグメントは”A”~”E”まであります。
月ごと、セグメントごとの集計をしたいのです。
例えば、あいう拠点のセグメントBのスタッフの10月の売上見込みはいくらか、そこから予算を引いた差額はいくらか、という計算をしたいのです。

長文となりましたが以上、よろしくお願いします。

Offline

#4 2018-02-23 15:49:23

Shin
Member

Re: レコードによっては正常に計算されない

- ポータルフィルタリングは集計フィールドや統計関数の結果には影響を与えません。
通常の使い方では、ポータルフィルターに影響されないのですが、その集計フィールドをポータル内に配置し、そのポータルをフィルターしておくと、フィルターされた関連レコードの集計が可能です。

ファイル全体の構造が想像できないのですが、その予算を、他のテーブルに置き、リレーションで呼び出してみればいかがでしょう。

Offline

#5 2018-02-26 17:45:49

step
Member

Re: レコードによっては正常に計算されない

Shin wrote:

集計フィールドをポータル内に配置し、そのポータルをフィルターしておくと、フィルターされた関連レコードの集計が可能です。
ファイル全体の構造が想像できないのですが、その予算を、他のテーブルに置き、リレーションで呼び出してみればいかがでしょう。

Shinさんの仰った通りに、集計フィールドをポータル内に配置してフィルタリングし、
集計フィールドと予算(数字フィールド)を別のテーブルに置いたら全てのレコードでうまく動作しました!
ありがとうございました!!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 519.49 KiB (Peak: 524.03 KiB) ]