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

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

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

You are not logged in.

Announcement

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


#1 2014-10-30 09:23:06

peace
Member

売上金総計の月での平均値

お世話になります
FM12pro win7です

売上金総計=集計フィールド 合計 ::売上

レポートで年月を区分とし売上金総計の平均金額を
表示したいのですが。。。

10期  2012/11/01...2013/10/30
この場合 売上金総額/12でできたのですが

11期 2013/11/01...2014/10/30
ここで、11月から12月までの2か月分のレコード
しかない場合、この売上金総計の平均は
どのようになりますか?

よろしくお願いします

Offline

#2 2014-10-30 10:05:50

tim
Guest

Re: 売上金総計の月での平均値

どうしたいかによりますが。
2か月分のデータを1カ月当たりで平均するなら、2で割る。
データ(売上)が無くても期間が12ヶ月なんだから、12で割る。

#3 2014-10-30 10:12:26

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

どうしたいかによりますが。
2か月分のデータを1カ月当たりで平均するなら、2で割る。
データ(売上)が無くても期間が12ヶ月なんだから、12で割る。

ありがとうございます
やりたいことは

期中の売上金総額を月あたりでの平均値がほしいです。

2か月分のデータを1カ月当たりで平均するなら、2で割る
この2という数字を計算で求めることはできますでしょうか?

Offline

#4 2014-10-30 11:02:38

チポ
Member

Re: 売上金総計の月での平均値

集計フィールド・平均
を小計パートに置けば
グループ化されたレコード数を分母とした平均を出してくでます。

Offline

#5 2014-10-30 14:55:31

peace
Member

Re: 売上金総計の月での平均値

チポ wrote:

集計フィールド・平均
を小計パートに置けば
グループ化されたレコード数を分母とした平均を出してくでます。

チポさん ありがとうございます
私の説明不足です。

総計パートに置いた、集計フィールド・合計を 年月数を基にした平均がほしいです。

教えて頂いた方法だと、その月の売上平均となります。
加重平均も試みましたが、ほしい数字にならず。。。

例えば

年月---------相手---売上----平均
2012/01----A------100----
2012/01----B------120----
小計----------------220-----
2012/02----A------200
2012/02----C------100
小計----------------300-----
2012/03----A------100---
小計-----------------100
総計-----------------620----206.6

このような平均値を求める方法をご教授お願いいたします。

Offline

#6 2014-10-30 15:34:18

チポ
Member

Re: 売上金総計の月での平均値

そういうことですか。。

それは集計関数だけでは無理ですね。


月の動的値一覧を作って、その項目数で月数を求めるとか、
月ごとを1レコードとする別テーブルを作ってそちらで集計。

などの方法でしょうかね。

Offline

#7 2014-10-30 16:29:13

tim
Guest

Re: 売上金総計の月での平均値

表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが

#8 2014-10-30 16:38:01

旅人
Member

Re: 売上金総計の月での平均値

年月のカウント(現在のカウント、年月ソートで集計を再開)という集計フィールドと
判定という計算フィールド、式は「年月のカウント=1」と
判定合計という集計フィールド(判定の合計)
を作れば判定合計に年月の数が出ますから全体平均は総計/判定合計
かな。

Offline

#9 2014-10-31 09:55:10

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが

みなさんありがとうございます。

グローバルフィールドを2つ作りました
G開始期間
G終了期間

ValueCount(
ExecuteSQL("
SELECT DISTINCT \"締め日\"
FROM \"売掛過去データ 6\"
WEHRE \"締め日\" >= \"G開始期間\" AND \"締め日\"<=\"G終了期間\"

これを、売上平均という計算フィールドに入れたところ
この式は半角のダブルコテーションで終わらなければなりませんとなります
どこを変更しなければなりませんか?

旅人さんの方法も現在検証しています。

よろしくお願いします。

Offline

#10 2014-10-31 09:56:24

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが

すいません式の後半が抜けていました、もう一度やってみます

Offline

#11 2014-11-07 08:48:20

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが

お返事大変遅れました。

timさんの方法を勉強しているのですが。。。

テーブル::売上
id---相手先---年月---G開始年月(グローバル日付)---G終了年月(グローバル日付)---平均額(数字)

レイアウトにボタンを配置スクリプト実行
パラメーター="開始年月"

実行するスクリプト
フィールド設定[売上::平均額;ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)

このようにしたのですが、
ボタンを押すと、このフィールドは変更禁止なので操作できません
となります。

引数、スクリプト、計算フィールドをどのように設定するかご教示お願いできますでしょうか?


また、旅人さん、チポさんの方法は覚えました。

Offline

#12 2014-11-07 09:17:03

tim
Guest

Re: 売上金総計の月での平均値

平均額が(数字)でないのでは?

計算式のフィールド名がテーブルと一致してません。
これは月数を計算する式なので、平均は別に総計を求めてこれで割る。

ExecuteSQL("
SELECT SUM(売上)
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)
/
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)

#13 2014-11-07 16:29:39

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

平均額が(数字)でないのでは?

計算式のフィールド名がテーブルと一致してません。
これは月数を計算する式なので、平均は別に総計を求めてこれで割る。

ExecuteSQL("
SELECT SUM(売上)
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)
/
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)

お世話になります。
指摘どうり計算になっていました。

月数を計算するところでつまずいております。

フィールド::月数カウント(数字)
ボタン配置→スクリプト実行(パラメーター "G開始年月")
実行のスクリプト→フィールド設定[売上::月数カウント;ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")]

これでボタンを押すと、月数カウントに1が入ります。
レイアウトの総計部分ボタンをおいても1です。

パラメーターでG開始年月とG終了年月を2つにするのでしょうか?
"G開始年月"<="G終了年月"としても1となります。


スクリプトの設定方法が間違っているのでしょうか?
ご教授お願いいたします。

Offline

#14 2014-11-07 16:42:15

tim
Guest

Re: 売上金総計の月での平均値

パラメータは使ってません。グローバルフィールドをSQL内で直接参照してます。

WHEREのつづりがまちがってますorz

#15 2014-11-07 16:58:06

peace
Member

Re: 売上金総計の月での平均値

tim wrote:

パラメータは使ってません。グローバルフィールドをSQL内で直接参照してます。

WHEREのつづりがまちがってますorz

パラメータを削除し、WHEREとしましたが

ボタンを押すと、フィールド::月数カウントに1が入ります。
1レコードしか入りません。

なにがいけないでしょうか?

Offline

#16 2014-11-07 17:17:29

旅人
Member

Re: 売上金総計の月での平均値

年月フィールドが2014/01とかになっているのを数字の201401
G開始年月(グローバル日付)とG終了年月(グローバル日付)も日付ではなく
数字の201401と201411などにしてみたら?

Offline

#17 2014-11-07 17:48:50

peace
Member

Re: 売上金総計の月での平均値

旅人 wrote:

年月フィールドが2014/01とかになっているのを数字の201401
G開始年月(グローバル日付)とG終了年月(グローバル日付)も日付ではなく
数字の201401と201411などにしてみたら?

お世話になります

年月が計算フィールドなので新たに
K年月フィールドを作り
フィールド内容の全置換えしました
その際、K年月フィールドは
2012/1
となります、これを201201と表示するにはどのようにすればよいですか?

Offline

#18 2014-11-07 18:11:01

旅人
Member

Re: 売上金総計の月での平均値

元日付があるでしょうから年月はYear(元日付)*100+Month(元日付)
補足
これだと年をまたぐと201412+1=201413などとなって201501にならないので
計算できないケースもあるためYear(元日付)*12+Month(元日付)なども使います。

Offline

#19 2014-11-07 18:29:14

peace
Member

Re: 売上金総計の月での平均値

旅人 wrote:

元日付があるでしょうから年月はYear(元日付)*100+Month(元日付)
補足
これだと年をまたぐと201412+1=201413などとなって201501にならないので
計算できないケースもあるためYear(元日付)*12+Month(元日付)なども使います。

年月及びグローバルフィールドを数字にしましたが
結果は一緒でした。
他に試すことはありますか?

Offline

#20 2014-11-07 18:48:20

旅人
Member

Re: 売上金総計の月での平均値

月数カウントだけを試しているのですよね。
テーブル名が「売上」ではないとか。
直接関係無いけどスクリプトでフィールド設定すると月数カウント(数字)がグローバルでない限り
1レコードにしか結果が出ないので計算フィールドにする。

Offline

#21 2014-11-10 09:13:56

tim
Guest

Re: 売上金総計の月での平均値

1が入るのはSQLの結果がエラー「?」だからでは。
年月が
2012/01
なら、テキストでしょうから開始終了もテキストでそのまま(桁数揃えて)入れればよさそうですが。
日付で書式設定してるなら、開始終了も日付。
元日付があるなら、SQL内も年月でなく元日付で比較できます。

計算フィールドにする場合もグローバルにしないと、同じ計算を全レコードで行ってえらいことになります。

#22 2014-11-11 08:45:23

peace
Member

Re: 売上金総計の月での平均値

お世話になります
できないので今回は、集計の別テーブルを
作成しました
ありがとうございました

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, 9 queries executed - Memory usage: 615.08 KiB (Peak: 631.62 KiB) ]