Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
■input
名前 | 月 | 売上 |
A | 1 | 10 |
B | 1 | 20 |
C | 1 | 30 |
D | 1 | 40 |
E | 1 | 50 |
A | 2 | 100 |
B | 2 | 90 |
C | 2 | 80 |
D | 2 | 70 |
E | 2 | 60 |
月 | 1 | 2 |
上位 40% 平均 | 45% | 95% |
計算式だけではなく、変数との併用となってしまいますが、添付しておきます。
集計軸があるので、SET文で単純に軸ごとに集計範囲を変更するという事は、おそらく出来ないと思います。
該当の数式は、ファイル内の「サンプルチャート」に組み込んでいます。
変数は2つで、「Variable1」は、集計対象の割合で、こちらは入力ボックス「変数」で変更すると、集計結果が変わります。(初期値は40%でセットしています)
「Variable2」は、計算式のPick関数内で利用する値のリストを作成しています。
ここが少しややこしいので、右側に変数「Variable2」とサンプルチャートの計算式を段階的に説明したチャートを用意していますので、上から順に計算式の内容を確認して下さい。
計算式だけではなく、変数との併用となってしまいますが、添付しておきます。
集計軸があるので、SET文で単純に軸ごとに集計範囲を変更するという事は、おそらく出来ないと思います。
該当の数式は、ファイル内の「サンプルチャート」に組み込んでいます。
変数は2つで、「Variable1」は、集計対象の割合で、こちらは入力ボックス「変数」で変更すると、集計結果が変わります。(初期値は40%でセットしています)
「Variable2」は、計算式のPick関数内で利用する値のリストを作成しています。
ここが少しややこしいので、右側に変数「Variable2」とサンプルチャートの計算式を段階的に説明したチャートを用意していますので、上から順に計算式の内容を確認して下さい。
若松さん
回答ありがとうございます。
サンプル拝見しました。
複数の項目に対してやレコード数が多い場合にはあまり向かないようですね。
別の方法も検討してみます。
変数の使い方など、とても勉強になりました。また何かあればよろしくお願いいたします。
はい、おっしゃるとおり、Concat関数の表示文字数の限界(限界は不明)を超えると、ダメですね。
スクリプト側でフラグをたてるのが、一番シンプルでわかりやすいかもしれません。
いい方法があれば、共有してください。
上位20%平均の1月45%、2月95%になる算出方法を教えて頂けますか。
月に売り上げた人数の上位20%ということで1月なら5人の20%でトップ1人の売上50で
その人の全体位の売上に対する割合ということでしょうか。
Eの場合50/110=45.5%
ということで合ってますでしょうか。
はい。投稿した後に誤りがあることに気付きましたが、そのままにしておりました。
誤解させてしまい申し訳ございません。
単純に上位の平均を知りたいだけですので、今回のサンプルでは上位40%としての数字となるので、改めて修正させていただきました。
スクリプトで月毎の上位40%の値を算出する必要はありますが、添付のような形で実現できました。
数式内の条件が可変になるのはできないので、スクリプトで固定値を算出しています。
回答ありがとうございます。
このような使い方ができることは考えていませんでしたのでとても勉強になりました。
複数項目に対しても使えそうですし、こちらの内容で試してみたいと思います。
Concat関数の限界が気になったので1~1億までの1億通りのデータを用意して調べてみましたが、さすがに1億通りはConcat関数で表示出来ません(カンマも含めた文字数は9億弱)が、この計算結果に対してSubField関数で1億個目の値を取得すると、きちんと1億が返ってきたので、Concat関数でセル内に表示出来なくても、計算式は有効なようです。
QVの保障している同一項目に対してのデータの種類(または個数?)の限界は明確に記されていたと思う(20億強くらいだったような?)ので、このあたりまではひょとしたら大丈夫かもしれませんが、実際はサーバーのメモリ次第といったところだと思います。
ただ計算式が有効でも、IFも使っているので実運用では非常に計算時間がかかると思いますので、私もスクリプト内でデータを用意する方が良いと思います。
億単位データのご用意や検証まで実施いただきありがとうございます。
サーバのメモリにあまり余裕はありませんので、スクリプトで試してみます。
どうもありがとうございました