みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM10・windows7で運用しています。FMの取り扱いは初心者です。
1つのテーブル(テーブルA)に3000ほどレコードがあります。
フィールドA・B・Cはそれぞれ、2~10程度の選択肢で構成されています。
IDは一人一つで、日付は入力日、以下のような感じです。
ID 日付 フィールドA B C ・・・・
000 1/1 A1 B1 C1
001 1/1 A1 B2 C2
000 1/2 A2 B1 C1
002 1/2 A3 B2 C3
003 1/3 A2 B3 C3
・ ・ ・ ・ ・
・ ・ ・ ・ ・
・ ・ ・ ・ ・
とあります。このデータから別レイアウトに
フィールドA フィールドB フィールドC
A1 〇〇件 B1 〇〇件 C1 〇〇件
A2 〇〇件 B2 〇〇件 C2 〇〇件
A3 〇〇件 B2 〇〇件 C3 〇〇件
・
・
といった形で、集計をしてほしいとの依頼がありました。
同じテーブル内で別レイアウトの中にA抽出フィールド
を計算(PetternCount ( フィールドA; ”A1” )で、合計フィールドを集計(合計:A抽出)という形で
作成すると、欲しい数は出てきます。
ただ、ネットで「COUNTIF」等をキーワードに調べてみると、リレーションを組む方法を提示しているのがほとんどで・・・。
自身なりにテーブルAで自己リレーションを「ID」フィールドで組み、同じような形で計算・集計すると、
各IDの合計が出てしまいます。
実際としてリレーションを組まない方法で適切なのか、今後データが増えるとといったことも考慮して、
別の方法が良いか、その場合はどのような方法かご教示いただけると幸いです。
クロス集計ですね。
このQ&Aでもたびたび登場するテーマですので、検索してみるといくつも見つかります。
例えばこのスレッド
https://fm-aid.com/bbs2/viewtopic.php?id=8220
#4の回答でHiroさんがリレーションを使わない方法のサンプルを提示していらっしゃいます。
まずはこれを解析して考え方を理解されると良いと思います。
(値一覧を参照して、それをもとに繰り返しフィールドに振り分け→集計フィールドで合計)
Offline
集計機能を使った簡単なサンプルです。
https://www.dropbox.com/s/wisilsq0b8j9f … 2.zip?dl=0
Last edited by Shin (2019-11-10 10:36:29)
Offline
提示サンプルは双方とも .fm12 フォーマットファイルだから、
質問者のFMP10 .fp7 環境では開けませんよ!
Offline
あららー。気がつきませんでした。すみません。
Offline
集計表示テーブルを追加しリレーションを組み作ってみました。この方法ではフィールド増えればリレーションを増やさなければなりません。
アップロード先 クロス集計.fp7
http://pupld.net/28/191110/1ru3ak3l0f/index.cgi
v11で作り直しました。値一覧以外はコピペが出来るので、楽チンです。
https://www.dropbox.com/s/yf2rjke50lzug … 7.zip?dl=0
クロス集計ではありませんよ。単なる集計を、複数のフィールドに対して同時に行おうとしているだけです。
Last edited by Shin (2019-11-10 18:27:09)
Offline
koeda様
Shin様
Hiro様
koko009様
懇切丁寧な返答ありがとうございます。
且つサンプルまで作成していただき、本当にありがとうございます!!
クロス集計というんですね!!正直、そこからです・・・。
リレーションに関しての概念についても勉強しつつ、
どちらの手段でも使えればと思います。非常に興味がわきました。
また、質問させていただくかと思います。
その際にはご教示頂ければ幸いです。
終わって見ないかもしれませんが、ちょっと気になったので、
https://www.dropbox.com/s/yf2rjke50lzug … 7.zip?dl=0
クロス集計ではありませんよ。単なる集計を、複数のフィールドに対して同時に行おうとしているだけです。
と云う事は、#7Shinさんサンプルも、
「目的の集計フィールド」を、あえて、「集計レイアウト」で
「後部集計パート」に限定して展開しなければならない理由もありません。
普通のレイアウトで自由なパート(ヘッダ、ボディ、フッタ)に展開OKです。
Offline
集計結果だけを表示させる、という最初の目的でしたら、任意のパートでいいのですが、
元データを 同時に表示したかったので、「目的の集計フィールド」を、あえて、「リスト表示」で「後部集計パート」に配置しています。
というのも、集計は、現在の対象レコードが対象になるので、対象外のレコードを作ると結果が異なってくることを示したかったのです。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 524.41 KiB (Peak: 529.31 KiB) ]