Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

グループ毎の累計

こんにちは。

累計を作成したいのですが、うまくいかず、ご存じであれば、教えて頂きたいです。

週とグループを軸に、平均個数の平均を累計でグラフにしたいのですが、

RangeSumをつかってみてもうまくいきません。

最終的に最後に貼っている表のような計算結果にしたいのですが、

なにかいい方法がありますでしょうか?

よろしくお願いします。

1.jpg2.jpg3.jpg

1 Solution

Accepted Solutions
kogasawara
Partner - Creator
Partner - Creator

サンプルのドキュメントファイルを確認させて頂きました。

希望の結果を取得するにはRangesum関数とAggr関数を使用することで可能ですが、

ロードスクリプト文で「週目」のソート順を変更する必要があります。

-------------------------------------------------

tab1:

LOAD Group,

     ID,

     個数,

     date(日) as 日,

     週目

FROM

TB01_20140911_094705.xls

(biff, embedded labels, table is Sheet1$);

NoConcatenate

load Group as Group1,

     ID as ID1,

     個数 as 個数1,

     日 as 日1,

     週目 as 週目1

Resident tab1

Order by 週目 asc;

DROP Table tab1;

-------------------------------------------------

上記のようにOrder byで週目を昇順に並べ替えてます。

理由はAggr関数はロード順に指定した項目ごとに集計するためです。

上記のようなロード文をリロード後に、以下のような数式をチャートに

定義することで可能です。

--------------------------------------------------------------------

sum(aggr(rangesum(above(total sum(個数1),0,rowno())),Group1,週目1))

--------------------------------------------------------------------

rangesumの累計を取得する処理をAggr関数を使って「Group1」「週目1」ごと

に行うようにしています。

View solution in original post

5 Replies
Not applicable
Author

補足:

グループは、リストボックスで、比較したいものを選ぶ為、常に数が決まっているわけではありません。

hka
Employee
Employee

サンプルデータを添付してもらえますか?

Not applicable
Author

サンプルデータ、添付致します。

よろしくお願い致します。

kogasawara
Partner - Creator
Partner - Creator

サンプルのドキュメントファイルを確認させて頂きました。

希望の結果を取得するにはRangesum関数とAggr関数を使用することで可能ですが、

ロードスクリプト文で「週目」のソート順を変更する必要があります。

-------------------------------------------------

tab1:

LOAD Group,

     ID,

     個数,

     date(日) as 日,

     週目

FROM

TB01_20140911_094705.xls

(biff, embedded labels, table is Sheet1$);

NoConcatenate

load Group as Group1,

     ID as ID1,

     個数 as 個数1,

     日 as 日1,

     週目 as 週目1

Resident tab1

Order by 週目 asc;

DROP Table tab1;

-------------------------------------------------

上記のようにOrder byで週目を昇順に並べ替えてます。

理由はAggr関数はロード順に指定した項目ごとに集計するためです。

上記のようなロード文をリロード後に、以下のような数式をチャートに

定義することで可能です。

--------------------------------------------------------------------

sum(aggr(rangesum(above(total sum(個数1),0,rowno())),Group1,週目1))

--------------------------------------------------------------------

rangesumの累計を取得する処理をAggr関数を使って「Group1」「週目1」ごと

に行うようにしています。

Not applicable
Author

なるほど、Order by が必要だったのですね。

ありがとうございました!!!