Qlik Senseで1月~12月ではなく4月~3月でソートしたい_Dual関数 他
- SENSUKE KURIYAMA
- 2024年9月10日
- 読了時間: 2分
更新日:2月11日
年度で分析する際に、4月はじまりで並べたい場合の方法をメモします。
・Dual関数を利用する ※オススメ
※2024年9月時点のQlik Sense SaaSを利用しています。
<Dual関数を利用する>
Dual関数を使うと、ひとつの項目で2つの値を保持することができるようになります。シート上で表示する値と内部的に保持できる値を併せ持つことで、ソート用に作成した内部的な値でソートできます。
Qlik Senseではこちらの方法がおススメです。
Dual関数構文
Dual(表示する文字列,内部的な数値)
▼YYYY/MM/DDの日付データを参考にサンプル数式を記します。
例)表示用にMonth(日付)、ソート用にMonth(Addmonths(日付,-3))を設定します。
Month(Addmonths(日付,-3)) は、4月→1月、5月→2月、・・・、3月→12月を返します。
数式サンプル
Dual(Month(日付),Month(AddMonths(日付,-3)))
<ソート用の項目を作成する>
Dual関数を使うと便利ですが、Dual値がブラックボックス化するため複数名で共有する際は申し合わせが必要になったりします。そういったブラックボックスをなくす目的として、明示的にソート用の項目を作成しておく方法もあります。
こちらの場合は、ロードスクリプトにてソート用の値を作成します(シート上の数式ではうまくいかない)
ロードスクリプトの記述例)
日付
Month(日付) AS 月,
Month(AddMonths(日付,-3)) AS 月ソート用
▼プロパティでのソート設定
チャート上で表示した項目「月」に対してソート順を設定します。プロパティの[ソート]で[自動]スイッチをオフにして[カスタム]の[数式でソート]にて、数式にロードスクリプトで作成した「月ソート用」の項目を設定します。
※参考※
▼月:Month関数
これも簡単です。Month関数を使います。
例)Month( '2021/1/1' ) は、1月 を返します
Month(日付)
▼年度(4月はじまり):Year関数とAddMonths関数
AddMonths関数を使って、日付から3ヶ月を引き算して年度とします。
例)AddMonths( '2020/4/1' , -3 ) は、2020/1/1 を返します
例)AddMonths( '2021/3/31' , -3 ) は、2020/12/31 を返します
ということは、
2020/4/1~2021/3/31 は 2020/1/1~2020/12/31となるので、ここからYear関数で年を取得すれば「年度」となります。
例)Year(AddMonths( '2021/3/31' , -3 )) &'年度' は、2020年度 を返します
Year(AddMonths(日付 , -3 )) &'年度'
ちなみに、引数を変えることで年度の開始月は応用できます。
例)AddMonths( '2021/3/31' , -1 ) は、2021/2/28 を返します
おわり
Comments