Qlik Senseナレッジ - INSIGHT LAB

【QS】QlikSenseでAND検索をする

作成者: Lio|2023年7月21日

1.はじめに

Qlik SenseやQlikViewでのフィルター機能は基本的にOR一致です。
フィルターパネルでリンゴとバナナを選択した場合、リンゴもしくはバナナを条件として絞り込まれます。
リンゴかつバナナを絞り込み条件としたい場合はAND検索用テーブルの作成とSet分析で実装できます。

 

2.準備

以下のようなデータを利用します。

上記のデータをInlineか何かでQlikにLoadしましょう。

適当なチャートを作成したうえで、Category項目で果物と飲料水を絞り込んでみました。
QlikではOR検索が基本のためチャート上ではId1~4が集計対象として計算されます。

 

3.AND検索の実装

スクリプトにて、Name毎にCategoryを文字結合したAND検索用テーブルを新規で作成します。
東京であれば果物,雑誌,飲料水、大阪であれば果物,飲料水という具合です。

AND検索用テーブルが作成できたらSet分析用の文字列を作っていきます。
まずは選択しているCategoryを文字結合しましょう。

concat(distinct Category,'*')

そうすると「果物*飲料水」という文字列が作られます。
更に生成した文字列でName2を文字結合します。

concat(distinct {<Category2={"$(=concat(distinct Category,'*'))"}>}Name2,chr(39)&','&chr(39))

こうすることで「東京','大阪」という文字列が生成されます。
あとは本来の集計用数式の部分に文字列を生成した数式でSet分析を組み込むことで実装完了です。