Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
お世話になります。
Qlik Senseに「Aテーブル」と「Bテーブル」を取り込んだとして、
AテーブルとBテーブルを「基準日」という項目で紐づけているとします。
基準日ごとの「Aテーブルの項目A」と「Bテーブルの項目α」の合計値を取得しようする時に、
「Aテーブルの何かしらの項目」で絞り込みを行っている場合、
「Aテーブルでデータが発生していない基準日」のBテーブルのデータは無視されてしまいます。
これを回避する為に、「項目A=,項目B=,項目C=,項目D=」といった
Aテーブルの全項目を無視するように定義した変数「TableA_Except」を作成して、
「Bテーブルの項目α」の集計時にSUM({<$(TableA_Except)>}項目α)といった形で適用しています。
この方法で問題無く対応できているのですがいささか手間がかかるので、
もっと良い方法をご存じの方がおられましたらご教授いただますと幸いです。
変数で定義して実装する形になります。
ただ、UI上で変数を定義するのではなく、スクリプトで変数定義するようにするのはどうでしょうか。
LET TableA_Except = '';
LET NoField = NoOfFields('TableA');
for i = 1 to NoOfFields('TableA')
if $(i) = NoOfFields('TableA') then
LET TableA_Except = '$(TableA_Except)' & FieldName($(i),'TableA') & ' = ';
Else
LET TableA_Except = '$(TableA_Except)' & FieldName($(i),'TableA') & ' = ,';
End If;
next i;
少しは楽になると思います。
変数で定義して実装する形になります。
ただ、UI上で変数を定義するのではなく、スクリプトで変数定義するようにするのはどうでしょうか。
LET TableA_Except = '';
LET NoField = NoOfFields('TableA');
for i = 1 to NoOfFields('TableA')
if $(i) = NoOfFields('TableA') then
LET TableA_Except = '$(TableA_Except)' & FieldName($(i),'TableA') & ' = ';
Else
LET TableA_Except = '$(TableA_Except)' & FieldName($(i),'TableA') & ' = ,';
End If;
next i;
少しは楽になると思います。
返事が遅れ申しわけありません。
お教えいただいた方法を用いることで、
今まで手作業で行っていた変数の修正を行う必要がなくなり、
変数の編集忘れによる事故も減らせそうです。
大変有益な方法を教えて頂きありがとうございます。