はじめに
こんにちは。Deckです。
この記事では「年と月をプルダウンで選択し、ボタンをクリックするとその年月を含んだ以降の年月を一括で選択するメニュー」の作成方法を解説します。
はじめに完成図を画像で示すとこのようになります。
使い方としては画面左側の年と月をプルダウンから選択してボタンをクリックすると、指定した年月を含んだ以降の年月が一括で選択されます。
作成方法
それではメニューの作成方法を解説します。
前提として、アプリに「年」「月」「年月」の項目が存在しているものとします。
1. 事前準備 -- 変数の設定
アプリのシート編集画面を開き、「アセット⇒変数」を選択します。
画面右上の「新規作成」ボタンから「v入力月」「v入力年」の2つの変数を作成します。
2. プルダウンメニューの作成
カスタムオブジェクトから「Variable input」をシートに追加します。
オブジェクトを2つ作成し、それぞれ名前を「v入力年」「v入力月」に設定し、表示形式は「Drop down」を選択します。
「v入力年」のオブジェクトの値の表示は「Dynamic」、選択肢は数式で「=Concat({1}distinct 年, '|', -年)」とします。
数式の意味は「選択を無視し、年の一覧を'|'で繋ぎ、年の降順で表示する」というものです。
この数式の結果はたとえば「2019|2018|2017」のようになります。このようにすることで、「|」で繋がれた数値がプルダウンで表示されます。
「v入力月」のオブジェクトの値の表示は「Dynamic」、選択肢は「1|2|3|4|5|6|7|8|9|10|11|12」とします。
月はアプリの状態によらず固定なので、数式を用意する必要はありません。
また、「テキストと画像」オブジェクトを2つ作成し、「年」「月」と入力します。
ここまでの作業を行うと画面は次のようになります。
3. 選択ボタンの作成
チャートメニューから「ボタン」を作成します。
「アクションとナビゲーション」からアクションを作成します。
・ラベルは「年月選択」
・アクションは「項目の値を選択」
・項目は「年月」
・値は数式で「=Concat({1<年月={">=$(v入力年)/$(v入力月)"}>}distinct Num(年月), ' ; ')」
・項目の選択を無視し、年月は変数「v入力年」「v入力月」以上に絞り込んで、結果を「;」で繋ぎ、数値表現に変換した上で年月を出力します。
・結果はたとえば「43160 ; 43191」のようになります(年月を数値化した表現)
・項目値を選択するアクションでは「;」で値を区切ると複数の値を同時に選択することができます。
また、スタイルからラベルを「を起点とした以降を選択」とします。
作成したボタンはこのような見た目になります。
4. 年月オブジェクトを作成
チャートメニューから「フィルターパネル」を追加します。
項目に「年月」を追加し、データ表示方法を「グリッド」にし、並べ替え順を「行」に設定します。
オブジェクトの見た目はこのようになります。
完成
以上の作業でメニューが完成です!
Qlik Senseで分析を行うとき、年月を一括で選択したいケースが頻繁にあると思います。
そのような場合はこのようなメニューを作成してみてください。