みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります
FM12pro win7です
売上金総計=集計フィールド 合計 ::売上
レポートで年月を区分とし売上金総計の平均金額を
表示したいのですが。。。
10期 2012/11/01...2013/10/30
この場合 売上金総額/12でできたのですが
11期 2013/11/01...2014/10/30
ここで、11月から12月までの2か月分のレコード
しかない場合、この売上金総計の平均は
どのようになりますか?
よろしくお願いします
Offline
どうしたいかによりますが。
2か月分のデータを1カ月当たりで平均するなら、2で割る。
データ(売上)が無くても期間が12ヶ月なんだから、12で割る。
どうしたいかによりますが。
2か月分のデータを1カ月当たりで平均するなら、2で割る。
データ(売上)が無くても期間が12ヶ月なんだから、12で割る。
ありがとうございます
やりたいことは
期中の売上金総額を月あたりでの平均値がほしいです。
2か月分のデータを1カ月当たりで平均するなら、2で割る
この2という数字を計算で求めることはできますでしょうか?
Offline
集計フィールド・平均
を小計パートに置けば
グループ化されたレコード数を分母とした平均を出してくでます。
Offline
集計フィールド・平均
を小計パートに置けば
グループ化されたレコード数を分母とした平均を出してくでます。
チポさん ありがとうございます
私の説明不足です。
総計パートに置いた、集計フィールド・合計を 年月数を基にした平均がほしいです。
教えて頂いた方法だと、その月の売上平均となります。
加重平均も試みましたが、ほしい数字にならず。。。
例えば
年月---------相手---売上----平均
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
そういうことですか。。
それは集計関数だけでは無理ですね。
月の動的値一覧を作って、その項目数で月数を求めるとか、
月ごとを1レコードとする別テーブルを作ってそちらで集計。
などの方法でしょうかね。
Offline
表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが
年月のカウント(現在のカウント、年月ソートで集計を再開)という集計フィールドと
判定という計算フィールド、式は「年月のカウント=1」と
判定合計という集計フィールド(判定の合計)
を作れば判定合計に年月の数が出ますから全体平均は総計/判定合計
かな。
Offline
表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが
みなさんありがとうございます。
グローバルフィールドを2つ作りました
G開始期間
G終了期間
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"締め日\"
FROM \"売掛過去データ 6\"
WEHRE \"締め日\" >= \"G開始期間\" AND \"締め日\"<=\"G終了期間\"
これを、売上平均という計算フィールドに入れたところ
この式は半角のダブルコテーションで終わらなければなりませんとなります
どこを変更しなければなりませんか?
旅人さんの方法も現在検証しています。
よろしくお願いします。
Offline
表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが
すいません式の後半が抜けていました、もう一度やってみます
Offline
表示期間がグローバルフィールドにあれば、
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
のようにして年月の数を計算できます。
開始終了はこの関数の引数として与えたり、年月でなく締日?で指定してもいいですが
お返事大変遅れました。
timさんの方法を勉強しているのですが。。。
テーブル::売上
id---相手先---年月---G開始年月(グローバル日付)---G終了年月(グローバル日付)---平均額(数字)
レイアウトにボタンを配置スクリプト実行
パラメーター="開始年月"
実行するスクリプト
フィールド設定[売上::平均額;ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"テーブル\"
WEHRE \"年月\" >= \"開始年月\" AND \"年月\"<=\"終了年月\"
"
;"";"")
)
このようにしたのですが、
ボタンを押すと、このフィールドは変更禁止なので操作できません
となります。
引数、スクリプト、計算フィールドをどのように設定するかご教示お願いできますでしょうか?
また、旅人さん、チポさんの方法は覚えました。
Offline
平均額が(数字)でないのでは?
計算式のフィールド名がテーブルと一致してません。
これは月数を計算する式なので、平均は別に総計を求めてこれで割る。
ExecuteSQL("
SELECT SUM(売上)
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)
/
ValueCount(
ExecuteSQL("
SELECT DISTINCT \"年月\"
FROM \"売上\"
WEHRE \"年月\" >= \"G開始年月\" AND \"年月\"<=\"G終了年月\"
"
;"";"")
)
平均額が(数字)でないのでは?
計算式のフィールド名がテーブルと一致してません。
これは月数を計算する式なので、平均は別に総計を求めてこれで割る。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
パラメータは使ってません。グローバルフィールドをSQL内で直接参照してます。
WHEREのつづりがまちがってますorz
パラメータは使ってません。グローバルフィールドをSQL内で直接参照してます。
WHEREのつづりがまちがってますorz
パラメータを削除し、WHEREとしましたが
ボタンを押すと、フィールド::月数カウントに1が入ります。
1レコードしか入りません。
なにがいけないでしょうか?
Offline
年月フィールドが2014/01とかになっているのを数字の201401
G開始年月(グローバル日付)とG終了年月(グローバル日付)も日付ではなく
数字の201401と201411などにしてみたら?
Offline
年月フィールドが2014/01とかになっているのを数字の201401
G開始年月(グローバル日付)とG終了年月(グローバル日付)も日付ではなく
数字の201401と201411などにしてみたら?
お世話になります
年月が計算フィールドなので新たに
K年月フィールドを作り
フィールド内容の全置換えしました
その際、K年月フィールドは
2012/1
となります、これを201201と表示するにはどのようにすればよいですか?
Offline
元日付があるでしょうから年月はYear(元日付)*100+Month(元日付)
補足
これだと年をまたぐと201412+1=201413などとなって201501にならないので
計算できないケースもあるためYear(元日付)*12+Month(元日付)なども使います。
Offline
元日付があるでしょうから年月はYear(元日付)*100+Month(元日付)
補足
これだと年をまたぐと201412+1=201413などとなって201501にならないので
計算できないケースもあるためYear(元日付)*12+Month(元日付)なども使います。
年月及びグローバルフィールドを数字にしましたが
結果は一緒でした。
他に試すことはありますか?
Offline
月数カウントだけを試しているのですよね。
テーブル名が「売上」ではないとか。
直接関係無いけどスクリプトでフィールド設定すると月数カウント(数字)がグローバルでない限り
1レコードにしか結果が出ないので計算フィールドにする。
Offline
1が入るのはSQLの結果がエラー「?」だからでは。
年月が
2012/01
なら、テキストでしょうから開始終了もテキストでそのまま(桁数揃えて)入れればよさそうですが。
日付で書式設定してるなら、開始終了も日付。
元日付があるなら、SQL内も年月でなく元日付で比較できます。
計算フィールドにする場合もグローバルにしないと、同じ計算を全レコードで行ってえらいことになります。
お世話になります
できないので今回は、集計の別テーブルを
作成しました
ありがとうございました
Offline
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 615.51 KiB (Peak: 632.05 KiB) ]