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.11.27

Layout container を使って映えるダッシュボードを作成しよう!

「Layout container」を使えば、最新のQlikビジュアライゼーションでカスタマイズ性が高く、細やかなデザインの画面が作れます!

  • Qlik Cloud
  • Qlik Sense
  • 開発者
  • 可視化・分析
2024.10.30

マスター アイテムを駆使して、アプリ開発を効率化しよう!(その1)

Qlik Senseのアプリ内で同一の軸やメジャーを使い回したり、複数のチャートのメジャーを任意の色に揃えたいことはありませんか? 「マスター アイテム」の機能を使えば、これらを効率的に行えます! 今回はマスター アイテムに「メジャー」を登録して活用する方法を紹介します。

  • Qlik Sense
  • Qlik Cloud
  • その他
2024.10.24

Qlik Sense ビジネスアナリスト認定試験合格体験記~概要編~

【皆さんは、Qlikが提供している認定試験をご存知でしょうか。複数ある認定試験の中でも、Qlik Sense ビジネスアナリスト認定試験は日本語で受験可能です。今回は、Qlik Sense ビジネスアナリスト認定試験の受験者向けに、実際に試験を受験し合格した体験を報告します。

ページの先頭へ戻る