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

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

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

You are not logged in.

Announcement

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


#1 2022-08-10 08:00:42

6120
Member

クロス集計について

win11
ファイルメーカー15

を使用している初心者です。長文失礼します。


例えばテーブルAに以下のようなDBがあったとします   
号数(テキスト)  月(テキスト)    町費(数字)
101       1月     300
102       1月       300
103       1月      300
101       2月      300
102       2月      300
102       2月      300
103       2月      300
101          3月       300
102          3月       300
104          3月       300
   

ここから
          1月      2月       3月   
101       300     300        300
103       300     300     
104                            300

のような感じの集計表を作りたいです。

過去の投稿を参考に以下のようにフィールド作成しました

・レコードID(計算)・・・  Get ( レコード ID )
・号数(テキスト)
・月(テキスト)
・町費(数字)
・月一覧(計算、繰返し数12)・・・  GetValue(ValueListItems(Get(ファイル名) ; "月一覧"); Get(計算式繰り返し位置番号)) 
※月一覧に使用するフィールドは「月」を指定
・区分トップIDs(計算) ・・・ValueListItems(Get(ファイル名) ; "区分トップIDs")   
※区分トップIDsに使用するフィールドは 「最初のフィールドは「レコードID」」 「2番目のフィールドは「月」」を指定

リレーションは以下の通りデータベースはDBとDB1のみ

DBの区分トップIDs  =  DB1のレコードID


以上です。

これでいけば(BD上DB1の号数をリレーション表記したら)

          1月     2月     3月   
101   
102     
103         
104                   

まで表示することはできました。
しかし肝心の町費をどう表示させるのかがわかりません。

皆さまご教授よろしくお願いします。<(_ _)>

Offline

#2 2022-08-10 08:09:06

6120
Member

Re: クロス集計について

HIRO様の以前の投稿を参考とさせていただきました。
https://fm-aid.com/bbs2/viewtopic.php?id=3983

Offline

#3 2022-08-10 08:48:20

Shin
Member

Re: クロス集計について

町費_l という計算フィールド(繰り返し12)を作り、
Case ( 月[1] = 月一覧 ; 町費[1] )
という計算式にします。さらに、集計フィールドを作り、町費_l を合計(個別に)します。
あたらしいレイアウトを作り、号数 をキーにした小計パートのみ(ボディーのないもの)を作り、号数フィールドと上の集計フィールドを配置します。そのレイアウトで、号数でソートすれば目的のクロス表が表示されます。

Offline

#4 2022-08-15 17:57:29

6120
Member

Re: クロス集計について

SHIN様ありがとうございます。

仰せの通りにフィールドおよびレイアウトを作成しましたがよくわかりません(初心者ですのですみません<m(__)m>)。

・新レイアウトで、号数でソートすれば目的のクロス表が表示されますとありますが、
→新レイアウトには月一覧フィールドおよび町費_l フィールドは配置しないのでしょうか?

・小計パートに集計フィールドを配置しましたが、横に12ケ月分表示させることができないのですが・・・
あたらしいレイアウトの表示を具体的にご教授いただけませんでしょうか?

Offline

#5 2022-08-15 23:39:03

Shin
Member

Re: クロス集計について

そのレイアウトで号数でソートしていますか。
月一覧は、ヘッダーなどに適当に配置して置いてください。
https://www.dropbox.com/s/xsdtwuy9fnrpd … 2.zip?dl=0

Last edited by Shin (2022-08-19 22:26:22)

Offline

#6 2022-08-18 07:42:58

6120
Member

Re: クロス集計について

Shin様
サンプル迄作成いただき誠にありがとうございます。大変助かりました。
繰り返しなどとても苦手としている領域でしたので今回、すごく理解を深めることができました。
一旦解決しましたがまたもう一つ質問させてください。

号数でソートしましたら理想的な形になりました。この状態から、

①町費の金額を修正をしたい場合はレイアウト1の修正したい金額のフィールド(s_町費の繰り返し位置)を押すと(レイアウト2の)その関連レコードに移動するようなスクリプトはできるものでしょうか?
②金額が入っていない繰り返し位置(つまり町費を集金していない箇所)のみ背景の色を変えることはできますでしょか?(条件付き書式でいろいろ試しましたがやり方わからずで・・・)
※質問の内容が変わってきているので別で投稿すべきかと思いましたがクロス集計の繰り返しの中での操作ですので今回の投稿の続きでさせていただきました。
何度もすみません。ご教授よろしくお願いします。

Offline

#7 2022-08-18 10:11:37

Shin
Member

Re: クロス集計について

①は、その繰り返し位置と同じ位置の月一覧の内容を取り出して、元のレコードを検索すればいいです。
②は、self="" という条件でできます。

ちょっとしたトリックのような動きで、集計フィールドの中で編集できるかのようにしました。
上のサンプル をごらんください

Last edited by Shin (2022-08-19 08:43:19)

Offline

#8 2022-08-19 08:30:07

6120
Member

Re: クロス集計について

Shin様
大変勉強になり、解決できました。誠にありがとうございます。
今後このクロス集計にさらに改良を加え業務や役立ててまいります。
今後ともよろしくお願いします。<m(__)m>

Offline

#9 2022-08-19 22:26:49

Shin
Member

Re: クロス集計について

ちょっとバグがあったので、サンプル修正しました。

Last edited by Shin (2022-08-20 08:43:40)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 523.68 KiB (Peak: 528.59 KiB) ]