Qlikにて、一つのアプリで作った絞り込みで、別のアプリのシートを見てみたい、と思ったことはあると思います。
ただし、Qlikの標準機能においてアプリ間で絞り込み状態を共有する方法はありません。
今回は、実際に使っているアプリ間で同じ絞り込み状態を実現する方法について、解説したいと思います。
方法としては、過去に紹介した『Qlik Automate シート上のデータをcsv出力』を活用します。
Qlikの絞り込み状態を任意のラベルをつけてCSVに出力し、別アプリでそのCSVを読み込むという流れです。

シート上での準備
例えば、ある一つのアプリで任意の顧客IDを絞り込みました。この顧客IDの絞り込みを別アプリに反映し、この顧客群についてのデータを見たいとします。
顧客IDを絞り込んだ側のアプリで、顧客IDの軸が追加されたストレートテーブル、この顧客IDの絞り込みについて説明するためのラベルの入力欄、ボタンの3つを用意します。


ラベルの入力欄については、空の変数を作成し、チャート『変数入力』にて作成した変数と『Input box』を指定することで作成しています。

ボタンは、アクションの『自動化を実行』を選択し、次の章で作成する自動化を指定しています。また、『パラメーター』を追加で先ほど作成したラベル入力欄の変数の値を格納するパラメーターを作成しています。
Qlik AutomateにてCSV出力
先ほど作成した顧客IDのストレートテーブルをCSVに出力します。
Qlik Automateの流れは、過去記事で説明したものと同様です。

まず、『Inputs』にapp、bookmark、vLabelなどを配置し、ボタンが押されたアプリ、アプリの選択状態、作成したパラメーターvLabelの値の情報を取得します。
次に、『Apply Bookmark』にて、選択状態を反映します。
次に、『Check If File Exists』にて、ファイルを出力するフォルダに同名のファイルがあるかをチェックし、『Condition』にてこれがtrueの場合には、『Delete File』へと分岐させます。
こうして指定のフォルダから同名のファイルがなくなったうえで、『Create File』にて空のファイルを作成します。

次に、『Get Straight Table Data』で指定したストレイトテーブルのデータを取得し、『Write Line To File』にて、取得したデータを作成したファイルに書き出します。
最後に『Save And Close File』でファイルを保存します。
これにて、選択していた顧客IDの一覧をCSVで出力することができました。
ファイルは一時ファイルとして保存され、次にこの自動化が動くと削除されるため、一時ファイルをデータ読み込み用のファイルに統合する処理をこの後に行います。
マージ処理用のアプリを作成し、この自動化の最後にアプリのリロード『Do Reload』をつける形が簡単だと思います。
今回はマージ処理のスクリプトについては、省略します。
CSVの読み込み
あとは、このCSVファイルを別アプリで読み込むだけです。
日常のリロードに組み込んでもいいですし、パーシャルリロードを使って即時反映できるようにしても便利です。

さいごに

今回は、「顧客グループA」というラベル名でCSVを作成し、別アプリで読み込みました。
このラベル名を選択することで、別アプリでも同じ絞り込み状態でシートをみることが可能です。
普段はラベルが管理しやすいよう、作成する際に、日付や作成者のメールアドレスをあわせて取得しています。
データ量の調整や運用上の都合でアプリが複数に分かれていることは多いと思います。
ぜひこのやり方でアプリ間をまたがった分析をやってみてください。


