Qlik Senseで日付データを使いこなす!「年度」や「四半期」などの作成方法

データ分析において最重要ともいえるのが「時間軸」のデータです。
Qlik Senseでは、日付を表すデータ項目があれば簡単な加工を行うことで、「年度」や「四半期」「曜日」など様々な分析軸を作成できるので分析の幅が大きく広がります。
ここでは各種の日付軸を作成する数式をサンプルスクリプトと合わせてご紹介します。各関数の詳細はヘルプ をご参照ください。
目次
「年」の作成:Year関数
これは簡単です。Year関数を使います。
例)Year( '2021/1/1' ) は、2021を返します。
サンプルの数式は下記のとおりです。
Year(日付)「月」の作成:Month関数
これも簡単です。Month関数を使います。
例)Month( '2021/1/1' ) は、1月 (標準書式の場合)を返します。
サンプルの数式は下記のとおりです。
Month(日付)「年月」の作成:Year関数とMonth関数
上記2つを連結して作成しました。連結には「&」を使います。
サンプルの数式は下記のとおりです。
Year(日付) &'年'& Month(日付)「週」の作成:Week関数
これも簡単です。Week関数を使います。
(※週のカウントはいくつかのパターンを設定できます。詳しくはヘルプ )
例)Week( '2021/1/1' ) &'週' は、1週 を返します
サンプルの数式は下記のとおりです。
Week(日付) &'週'「年週」の作成:Year関数とWeek関数
年と週を&で連結します。
サンプルの数式は下記のとおりです。
Year(日付) &'年'& Week(日付) &'週'「曜日」の作成:Weekday関数
Weekday関数を使います。
(※曜日に相当する 0 から 6 までの数値を返します)
例)Weekday( '2021/1/1' ) は、金 (標準書式の場合)を返します。
サンプルの数式は下記のとおりです。
Weekday(日付)「年度(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 )) &'年度'「四半期(4月はじまり)」の作成:いろいろな関数を組み合わせ
四半期は思いのほか工夫が必要です。
四半期の表示をシンプルに 1、2、3、4 とする方法がなく、1~12の月数を3で割って小数点は切り上げるというようなやり方となります。今回の例では Num関数 、Ceil関数を使っています。
例)AddMonths( '2020/4/1' , -3 ) は、2020/1/1 を返します
例)Num(Month( '2020/1/1' )) は、1 を返します。3で割ると0.333‥、Ceil関数で切り上げたら 1
例)Num(Month( '2020/4/1' )) は、4 を返します。3で割ると1.333‥、Ceil関数で切り上げたら 2
例)Ceil ( 1.333 ) は、2 を返します
サンプルの数式は下記のとおりです。
'Q'& Ceil(Num(Month(AddMonths( 日付 ,-3)))/3)「半期(4月はじまり)」の作成:四半期を条件分岐
半期は四半期を利用してIf文で制御する例をご紹介します。
四半期の値が 3 よりも小さい場合は「上期」、それ以外は「下期」としています。
サンプルの数式は下記のとおりです。
If(Ceil(Num(Month(AddMonths([日付],-3)))/3)<3,'上期','下期')「年度四半期(4月はじまり)」の作成
年度と四半期を連結して作成します。
例)Year(AddMonths('2021/4/1',-3))&'年Q'& Ceil(Num(Month(AddMonths('2021/4/1',-3)))/3) は、2021年Q1 を返します
サンプルの数式は下記のとおりです。
Year(AddMonths( 日付 ,-3))&'年Q'& Ceil(Num(Month(AddMonths( 日付 ,-3)))/3)★日付項目の基本セット:サンプルスクリプトセット
このページで記載した日付項目を生成するロードスクリプトの基本セットのサンプルを記載します。コピーして、[日付] の部分を実際のデータ項目に修正しながらご利用ください。
日付,
year([日付])&'年' as 年,
Month([日付]) as 月,
Week([日付])&'週' as 週,
WeekDay([日付]) as 曜日,
Year([日付])&'年'&Month([日付]) as 年月,
Year([日付])&'年'&Week([日付])&'週' as 年週,
Year(AddMonths([日付],-3))&'年度' as 年度,
'Q'& Ceil(Num(Month(AddMonths([日付],-3)))/3) as 四半期,
If(Ceil(Mid(AddMonths([日付],-3),6,2)/3)<3,'上期','下期') as 半期,
Year(AddMonths([日付],-3))&'年Q'& Ceil(Num(Month(AddMonths([日付],-3)))/3) as 年度四半期,
Year(AddMonths([日付],-3))&'年'&If(Ceil(Num(Month(AddMonths([日付],-3)))/3)<3,'上期','下期') as 年度半期
QuarterName([日付],0,4) as 四半期名,
※ 補足情報(Quatername関数)
「四半期(4月はじまり)」の作成について、「4月-6月 2021」というような表記でよければ、Quatername関数が使えます。
例)Quatername('2021/4/1' ,0,4) は、4月‐6月2021 を返します
2つめの引数 4 が年度の開始月を指定しています
さいごに
この記事では、日付データから「年度」や「四半期」など様々な軸項目を作成する方法についてお伝えしました。
データ分析においては、日付を主体とする時系列の様々な軸で集計することがとても重要です。どう分析したらよいか分からないという場合も「まずは時系列で分析!」と、こちらのページを思い出して頂けると先に進むきっかけがつかめると思います。
ページトップへ戻る