Qlik Trainingブログ

  • SaaS
2022.04.27

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関数を使います。
(※週のカウントはいくつかのパターンを設定できます。詳しくはヘルプ
例) Month( '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 が年度の開始月を指定しています


さいごに

この記事では、日付データから「年度」や「四半期」など様々な軸項目を作成する方法についてお伝えしました。

データ分析においては、日付を主体とする時系列の様々な軸で集計することがとても重要です。どう分析したらよいか分からないという場合も「まずは時系列で分析!」と、こちらのページを思い出して頂けると先に進むきっかけがつかめると思います。

関連している記事

  • SaaS
2022.04.21

SaaS機能をフル活用!PDFレポートのメール配信

PDFレポートをメール配信する方法をご紹介します。

  • SaaS
2022.03.04

Qlik Sense SaaSアプリサイズの制限とサイズの確認方法

Qlik Sense SaaSって扱えるデータ量に上限はあるの?という方にご案内です。アップロードするデータサイズとアプリのメモリサイズという2つのサイズ制限があります。本記事ではQlik Sense SaaSのデータサイズ制限と確認方法についてご案内します。

  • SaaS
2022.01.05

Qlik Application Automation活用術#アプリの連続リロード

今回は「Qlik Application Automation」の活用方法として、テンプレートでも提供されているQlik Senseのアプリリロードの「タスクチェーン」を例に挙げ設定方法をご紹介します。

ページの先頭へ戻る