こんにちは。Deckです。
Qlik Senseを使用してアプリを作成するときの問題の1つにカレンダーの年度対応があります。
Qlik Senseには日付項目の検出機能がありますが年月日→年度の対応を自動で行ってくれるわけではないため、場合によってはどうしても手動でカレンダーを作成する必要があります。
そこで今回は年度対応したカレンダーを作成するためのTipsを紹介します。
なお、この記事ではすでに「年月日」という項目をロードしているスクリプト内のLOAD文に記述することが前提となります。
4月~12月は年をそのまま使用し、1月~3月は年から1を引くことで年月日を年度に変換できます。
If(Month(年月日)<=3, Year(年月日)-1, Year(年月日)) as 年度
通常の月は数値のため、フィルターパネル等では1月始めの表示となってしまいます。
Dual()関数を使用して表示と内部の数値をずらすことで4月始めのカレンダーを作成できます。
以下の項目定義では『4月は表示順1、5月は表示順2……』という処理を行い4月始めを実現しています。
Dual(Month(年月日), Month(年月日) + If(Month(年月日)<=3, 9, -3)) as 月
年の開始日を計算する関数としてはYearStart()関数がありますが、開始月として4月を指定することで年度対応をします。
YearStart(年月日, 0, 4) as 年度開始日
4月始めのカレンダーに合わせて半期・四半期の計算をPick()関数で行います。
Pick(Month(年月日),'H2','H2','H2','H1','H1','H1','H1','H1','H1','H2','H2','H2') as 半期,
Pick(Month(年月日),'Q4','Q4','Q4','Q1','Q1','Q1','Q2','Q2','Q2','Q3','Q3','Q3') as 四半期
いかがでしょうか?
この記事で紹介したテクニックを使って年度対応のカレンダーを作成してみましょう。