Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
M_Ogimoto
Luminary Alumni
Luminary Alumni

AggrとIfを組み合わせたテーブルの値によるフィルタリングについて

お世話になっております。

Qlik Senseにて、Aggr と Ifを組み合わせて、以下のようなシートを作成しました。

ここで、「単数」⇒「引合データ」 と選択し、最後に「セット品なし」を選択すると、それ以前の選択が無視されてしまいます。

それぞれのAggr+Ifの式は以下のとおりです。

セット品あり/なしの式が影響していると思うのですが、原因がわかりません。

皆様のお知恵を拝借したく。よろしくお願いいたします。

(ちなみに、逆の順番で選択するとうまくいきます)

単数/複数

=if(aggr(count(distinct Mother),[Order ID])>1,'複数',if(aggr(count(distinct Mother), [Order ID])>0,'単数','無し'))

引合データ/返品データ

=IF(Aggr(Sum(Quantity),[Order ID])>0,'引合データ','返品データ')

セット品あり/セット品なし

=IF(AGGR(Count({$<[PartNumber]=-{Unknown}>}distinct [PartNumber]),[Order ID])>0,'セット品あり','セット品なし')


image.PNG

元データ

Order IDProductMotherQuantityPartNumber
1000A11unknown
1000B11unknown
1000C02unknown
1001A11unknown
1002B11unknown
1003C01unknown
1004B11unknown
1004C02unknown
1005C02unknown
1006A11unknown
1007A1-1unknown
1008S01Set1
1008T01Set1
1009X12Set2
1009Y01Set2
OGI Consulting Office
Labels (1)
1 Solution

Accepted Solutions
kentaroWakamatsu
Creator II
Creator II

軸に計算式を記述して作成した値で絞り込んでも、表示されている値(単数、引合データ、セット品なし、、、、など)を選択しているわけではないので、求められている動作は難しいと思います。

各軸の選択動作ごとに、選択時点での選択条件を確認してもらうとわかると思いますが、表示されている軸情報を選択しても、Aggrの軸になっている「Oder ID」が絞り込まれると思います。

動作を見ていると、直前に絞り込んでいる「Oder ID」の絞込は有効な状態でさらに対象となる「Oder ID」の絞り込みを実施しているようにも見えますが、 'Not' がからむ絞り込み方になってしまった(たぶんこの判断は選択個数に応じてQV側が自動で切り分けていると思います)時に、前の絞込が解除されてしまっているように見えます。

'セット品なし'から順に選択した時にきちんと表示されたのは、対象の多いほうから順に絞り込まれる流れになったからか、'Not'選択が最初の'セット品なし'の選択時のみになったためだと思います。

個人的には、取り込んだデータから、「Oder ID」に連携する、3種類の別テーブルをスクリプト内で作成してしまった方が確実だと思います。

View solution in original post

3 Replies
kentaroWakamatsu
Creator II
Creator II

軸に計算式を記述して作成した値で絞り込んでも、表示されている値(単数、引合データ、セット品なし、、、、など)を選択しているわけではないので、求められている動作は難しいと思います。

各軸の選択動作ごとに、選択時点での選択条件を確認してもらうとわかると思いますが、表示されている軸情報を選択しても、Aggrの軸になっている「Oder ID」が絞り込まれると思います。

動作を見ていると、直前に絞り込んでいる「Oder ID」の絞込は有効な状態でさらに対象となる「Oder ID」の絞り込みを実施しているようにも見えますが、 'Not' がからむ絞り込み方になってしまった(たぶんこの判断は選択個数に応じてQV側が自動で切り分けていると思います)時に、前の絞込が解除されてしまっているように見えます。

'セット品なし'から順に選択した時にきちんと表示されたのは、対象の多いほうから順に絞り込まれる流れになったからか、'Not'選択が最初の'セット品なし'の選択時のみになったためだと思います。

個人的には、取り込んだデータから、「Oder ID」に連携する、3種類の別テーブルをスクリプト内で作成してしまった方が確実だと思います。

M_Ogimoto
Luminary Alumni
Luminary Alumni
Author

wakamatsuさま

アドバイスありがとうございます。

選択条件にNotが含まれる場合の副作用だとすると、偶然うまく絞れている順番で行ったとしてもデータ次第でうまくいかなくなる可能性があるということですね。

やぱりロードスクリプトで対応するほうがすっきりしそうですので、トライしてみます。

OGI Consulting Office
kentaroWakamatsu
Creator II
Creator II

はい、その方がファイルサイズは大きくなるとは思いますが、画面上はリストボックスを3つ増やす変わりに計算処理が走る帳票はひとつだけになりますし、軸に計算式を入れなくて済むので、おそらくデーターが増えた際の集計速度も早いと思います。

がんばってください。