みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
FileMaker全くの初心者です。windows11、FM19を使用しております。
過去の質問例を探しましたが類似例を見つけられなかったので皆さまにご助力頂きたいです。
質問が重複してましたら大変申し訳ございません。
以下のように既存の繰り返しフィールド(繰り返し回数10)が3種類あります。
繰り返し位置 1 2 3 4 5 6 7 8 9 10
名前(繰り返しフィールドA) 佐藤 鈴木 佐藤 斎藤 伊藤 佐藤 伊藤 佐藤 佐藤 鈴木
競技(繰り返しフィールドB) 将棋 囲碁 囲碁 麻雀 麻雀 将棋 将棋 将棋 麻雀 囲碁
勝敗(繰り返しフィールドC) 勝ち 勝ち 勝ち 勝ち 勝ち 負け 負け 勝ち 負け 負け
佐藤の勝利数 将棋:「2」回 囲碁:「1」回 麻雀:「0」回
佐藤さんの競技別の勝利数を計算フィールドでカウントしたいのですが、どのような計算式を組み立てればよろしいでしょうか?
ご教示いただけると幸いです。宜しくお願い致します。
Last edited by YeahYeahYeah (2023-07-09 20:38:09)
Offline
繰り返しをやめて、10個のレコードにすれば、ごく簡単です。
勝敗をカウントする集計フィールドを作っておきます。名前をキーとした小計フィールド、競技キーとした小計フィールドを作り、それぞれのキーフィールドを配置します。勝敗をキーとした小計フィールドを作り、キーフィールドと上の集計フィールドを配置します。そのレイアウトで、氏名 競技 勝敗でソートするとカウントされています。
繰り返しフィールドは、昔ポータルが無かった頃の遺産なようなもので、他の言語の配列としての機能が充実されていれば実用になるのですが、ほぼ進化がないので、データの保管としては使わない方がいいです。ただ、計算や集計の中間フィールドとして使うには便利なものです。
Last edited by Shin (2023-07-10 08:34:57)
Offline
ご回答頂きありがとうございます!
説明不足で大変申し訳ありません。
各々フィールドに設定したいのは山々なんですが、既存の繰り返しフィールドを変更することはできず、また繰り返し回数も実際は45あります。
この条件の中で計算フィールドを作成したいです。
Offline
佐藤だけでなく他の名前のカウントも必要なのでは?
名前の種類が最大45あるとしたら、計算フィールドも繰り返し45にしますか?
競技は3種類だけですか?
佐藤だけでなく他の名前も必要です。
名前の種類は最大で10種類あります。計算フィールドを10個作るか繰り返しを10にするか、どちらがベストかわからないのでアドバイスお願いしたいです。
競技は3種類のみです。よろしくお願いします。
Offline
別テーブルを作り、そちらに切り分けたレコードを作り、集計する、という方法が一番簡単でしょうが。
どうしても今のテーブルのままで集計するのでしたら、
グローバルフィールド「g_名前」を作っておき、名前を設定します。
( 名前 = g_名前[1] ) * ( 勝敗 = "勝ち" ) * Case ( 競技 = "将棋" ; 1 ; 競技 = "囲碁" ; 100 ; 競技 = "麻雀" ; 10000 )
という計算フィールド(繰り返し)をつくります。それを合計する集計フィールドを作っておきます。
その結果の数字が、 麻雀、囲碁、将棋 の各勝ち数になっていますので、分解すればいいでしょう。(Div ( s ; 10000 ) 、Div ( Mod ( s ; 10000 ) ; 100 ) 、Mod ( s ; 100 ))
これを名前数だけ繰り返します。
または、名前 & 競技 & 勝敗 という計算フィールドを作り、一覧する集計フィールドを作ります。
その中で、佐藤将棋勝ち を PatterCount() で数えても求められます。
https://www.dropbox.com/s/tc3drckut2seq … 2.zip?dl=0
Last edited by Shin (2023-07-11 08:46:43)
Offline
今のファイルは変更できないとしても
新しいファイルを作ることはできるのでしょう?
できるのなら、
繰り返しをばらしたテーブルを作り、
そこへインポートすれば簡単な計算で集計できますよ。
Offline
どういう風にもできないことはないでしょうけど、全員の集計をするならやっぱりテーブル構成を変えて集計で出したほうが結果も見やすい気がしますが...
しいて言えば、集計レイアウトだと0件の結果はレコードがないので見えてこない点ですかね。
繰り返しの計算は、While関数ができたので配列専用関数がなくても野暮ったく実装は可能になりましたね。
> 集計レイアウトだと0件の結果はレコードがないので見えてこない
勝ちを1
負けを0
としたフィールドの合計なら出ますよ。
Offline
麻雀は1回もやってない、とかいうケースは、まあ繰り返し45回だから実際に集計する時点ではないのかな。
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 566.66 KiB (Peak: 581.37 KiB) ]