Qlik Trainingブログ

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


さいごに

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

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

関連している記事

  • Qlik Cloud
  • Qlik Sense
  • 運用者
2024.04.24

Qlik Cloud 日本リージョンへの移行方法(qlik-cli利用時の注意点)

先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。今回は、コマンドラインのqlik-cliを用いたテナント移行時の注意点と、コマンドやスクリプトの記述例をご紹介します。

  • Qlik Sense
  • Qlik Cloud
  • 開発者
  • 運用者
2024.04.17

Qlik Application Automation活用術:Microsoft Teamsにメッセージを配信する

Qlik Sense SaaSを使用していて、メジャーの結果と事前に設定した閾値を比較して、閾値を超えたら通知を飛ばせたら良いな、と考えたことはありませんか?本記事では、Qlik Sense SaaSの「Qlik Application Automation」でMicrosoft Teamsにメッセージを配信する方法を紹介します。

  • Qlik Cloud
  • Qlik Sense
  • 運用者
2024.04.01

Qlik Cloud 日本リージョンへの移行方法

2024 年 3 月 26 日に QlikTech 社より Qlik Cloud の日本リージョン開設の ニュースリリースが発表されました。本ブログではすでに Qlik Cloud(Qlik Sense Enterprise SaaS) をご利用中のユーザー様に向けて、日本リージョンへテナントを移行する方法をご紹介します。

ページの先頭へ戻る