みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMaker質問内容
条件にあてはまるものだけの合計を算出したい
お世話になります。
FM19 Windouws11を使用しており
計算結果フィールドに条件があった要素だけを合計して表示できるようにしたいです。
下記が例になっております。
フィールド名 商品名 単価 計算結果フィールド
入力例1 みかん 100 商品名がみかんだった場合の合計=420
入力例2 りんご 100 商品名がりんごだった場合の合計=340
入力例3 りんご 120
入力例4 みかん 120
入力例5 みかん 100
入力例6 りんご 120
入力例7 みかん 100
【補足】
計算結果フィールドは商品名の数だけ用意しそれぞれフィールドごとに合計値を表示する予定です。
商品名は最大で4つとなります。
商品名と単価のフィールドですが、それぞれ個別のフィールドとなっております。
(商品名1、商品名2...)⇐ここに「みかん」「りんご」など記入しております。単価フィールドも同様です。
フィールドを複数個使用する現状の形を崩さずに計算式のみで合計を表示させるようにできないでしょうか?
コピペで貼り付けられるように例に沿って式を作成していただけますと幸いです。
お手数おかけしますが、何卒よろしくお願いいたします。
Last edited by Cc (2023-12-01 11:47:14)
Offline
>計算結果フィールドは商品名の数だけ用意し
一般的には商品名というのは不定数なので、別のやり方を考えた方がいいです。
> 計算結果フィールドは商品名の数だけ用意
これはおやめになったほうがいいですよ。
集計フィールドと小計パートを使った集計レイアウトで集計できます。
Offline
> 計算結果フィールドは商品名の数だけ用意
これはおやめになったほうがいいですよ。集計フィールドと小計パートを使った集計レイアウトで集計できます。
ご回答ありがとうございます。
私の説明不足で申し訳ございません。
計算結果フィールドに関してですが、対象となる商品名は4つだけになっております。
質問内容を編集しておきます。
Offline
四つ程度と限られているのなら、それでもいいでしょうけれど、、
今のテーブルに全商品の集計結果を持たせると全レコードに表示されます。
別レイアウトで結果だけを表示することは可能ですが、、
集計は、全レコードを対象とするのでしょうか?
それとも、期間とか他の要因でグループ分けするのでしょうか?
Offline
四つ程度と限られているのなら、それでもいいでしょうけれど、、
今のテーブルに全商品の集計結果を持たせると全レコードに表示されます。
別レイアウトで結果だけを表示することは可能ですが、、集計は、全レコードを対象とするのでしょうか?
それとも、期間とか他の要因でグループ分けするのでしょうか?
ご返信いただきありがとうございます。
私自身も引き継いだ身なので中身などは把握できておらず申し訳ないのですが
確認してみるとレコード毎に違う内容の文字と数字が記入されておりましたので
レコード毎にグループ分けされているようです。
一つのレコードの中でのみを参照し計算結果を表示できればと考えております。
Offline
#1で挙げられた例は1レコードのものですか?
複数の商品とその単価のフィールドがあり、
1レコード内で商品ごとの集計する?
Offline
#1で挙げられた例は1レコードのものですか?
複数の商品とその単価のフィールドがあり、
1レコード内で商品ごとの集計する?
ご返信いただきありがとうございます。
チポ様の認識の通りでございます。
1レコード内で複数の商品とその単価のフィールドを元に
条件が合うものだけを合計し計算結果フィールドに反映できればと考えております。
(エクセルの行のように商品に対しての単価を記載しております。)
お手数おかけしますが、何卒よろしくお願いいたします。
Offline
入力例1〜入力例7 のフィールドがあるのでしょうが、商品名と単価はそれぞれ、商品名1〜商品名7、単価1〜単価7のフィールドがあるのでしょうかね。
繰り返しフィールドを多数使えばレコードごとの集計は可能ですが、根本的に作り替えた方がずっと簡単です。(引き継いだということで、その作業は無理なのでしょうね)
商品名フィールド(計算フィールド、繰り返し4)
Let (
[
lst = List ( 商品名1[1] ; 商品名2[1] ; 商品名3[1] ; ... ; 商品名7[1] ) ;
lst = UniqueValues ( lst )
] ;
GetVAlue ( lst ; Get ( 計算式繰り返し位置番号 ) )
)
単価01フィールド(計算フィールド、繰り返し4)
Case ( 商品名フィールド = 商品名1[1] ; 単価1[1] )
同様に、単価07まで7フィールド
計算結果フィールド(計算フィールド、繰り返し4)
単価01 + 単価02 + 単価03 + ... + 単価07
でとりあえずは求められます。
Offline
Shin様
ご返信いただきありがとうございます。
いただいた式をそれぞれの計算フィールドに記入しようとしたのですが
すでに別の式が入っており記入ができませんでした。
こちらですが、計算結果フィールドの計算フィールドのみで実現しようとすることは不可能でしょうか?
商品名1がりんごの記載だった場合、単価1の数字を計算結果フィールドのりんご集計フィールドに加算
商品名1がみかんの記載だった場合、単価1の数字を計算結果フィールドのみかん集計フィールドに加算
といった様にできればと考えております。
商品名1と単価1は別のフィールドですが、セットで考えられており
商品名2と単価2のフィールドも同様の仕様として作られておりました。
なので、商品名1がりんごの場合、単価2を計算結果フィールドのりんごに加算するといったことが無いようにしたいです。
Offline
#9に示したフィールドは、すべて新たに作る計算フィールドですよ。1計算フィールドのみでは、とても無理です。(While() 使ってフィールドをスキャンしていけばできなくもないですが)
既存のフィールドとの整合をとりたいのでしたら、そのテーブルのフィールド定義をすべて書き出してください。
Offline
#9に示したフィールドは、すべて新たに作る計算フィールドですよ。1計算フィールドのみでは、とても無理です。(While() 使ってフィールドをスキャンしていけばできなくもないですが)
既存のフィールドとの整合をとりたいのでしたら、そのテーブルのフィールド定義をすべて書き出してください。
ご返信いただきありがとうございます。
新たに作るフィールドということを理解しておらず申し訳ございません。
一度#9にて記載いただいた式にて試してみます。
改めてご回答いただきありがとうございました。
Offline
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 548.8 KiB (Peak: 569.34 KiB) ]