Qlik Tips
日付データの取り扱い
2021年12月21日
Qlik Japan
中嶋 翔, Solution Architect
2
日付の取り扱い
• 様々な形式の日付(または時刻)関連のデータをQlik Senseに取り込
み、必要な形式にフォーマットする。
• 便利な関数を用いて、日付同士の計算を行う。
3
MakeDate()
年、月、日が別々の項目として存在し、そこから日付項目を作成したい場合
4
Year()
日付項目(年月日がひとつの項目に存在)し、特定の単位(例:年)だけを抜き出したい場合
5
SubField()
日付項目(年月日がひとつの項目に存在)し、特定の単位(例:年)だけを抜き出したい場合
スペースやハイフン等の区切り文字を基準に、SubFieldで抽出も可能
6
Date#()
テキスト文字列の項目を日付型としてQlik Senseに読み込ませたい場合
7
Date()
日付型の項目のフォーマットを指定・変更したい場合
• Date# と Dateを組み合わせることができます。
• date(date#(‘20210101’, ‘YYYYMMDD’), ‘YYYY/MM/DD’) は、2021/01/01を返します。
8
Date(Floor()) または SubField()
タイムスタンプから日付のみ抽出したい場合
9
AddMonths(), AddYears()
来月、来年の日付を取得
第2引数に負の数を指定することで、前月、前年の日付を取得
10
WeekDay()
日付から曜日を取得
11
Week()
日付から週数を取得
※ 週の数え方、週の開始日の定義はロードスクリプトのMain
セクションで定義される環境変数(SET~)で設定可能。
• FirstWeekDay
• BrokenWeeks
• ReferenceDay
12
環境変数: FirstWeekDay
ロードスクリプト内の環境変数デフォルト定義
13
MakeWeekDate()
前年、同週、同曜日の日付を取得し、今年と前年の比較などに利用
=Date( MakeWeekDate( Year(日付)-1, Week(日付), WeekDay(日付)) -1)
年 (1年前) 週数 (同じ週数) 曜日番号(同じ曜日)
1年前の同じ週数の同じ曜日の日付を取得
日数調整
次ページ
14
曜日番号の評価
Weekday()
MakeWeekDate()
の第3引数(曜日番号)
• 日 : 0
• 月 : 1
• 火 : 2
• 水 : 3
• 木 : 4
• 金 : 5
• 土 : 6
• 日 : 6
• 月 : 0
• 火 : 1
• 水 : 2
• 木 : 3
• 金 : 4
• 土 : 5
常に月曜日=0として評価
FirstWeekDayに
選んだ曜日を0として評価
FirstWeekDay=日曜日 の場合
15
NetWorkDays()
基準日(年初)からの土日・祝日を除く稼働日数を計算
第3引数に祝日のリストをカンマ区切りで指定することで稼働日から除外
→リストを祝日カレンダーとConcat関数で取得
=NetWorkDays(Yearstart(日付),日付,$(=Concat(Chr(39)& 祝日日付 &Chr(39), ',' )))
開始日(年初/期初等) 終了日 除外する祝日(カンマ区切りで指定)
16
参考:
書式設定や日付関数
2021年5月25日のQlik Tipsより
17
書式変換 書式コード
変換関数および書式設定関数では、書式コードを使用して数値や日付の書式を設定できます。
数値書式 説明
#,##0 区切り記号付きの 3 桁の整数として数値を表示します。
###0 3 桁区切りの記号がない整数で数値を表示します。
0000 4 桁以上の整数として数値を表示します。例えば、数値 123 は、0123 と表示されます。
0.000 小数点以下 3 桁で数値を表示します。この例では「.」は小数点の記号として使用されています。
日付記号 説明
D 日を表示するには、各桁に記号 "D" を使用します。
M 月の数字表示には、記号 "M" を使用します。1 桁表示には "M" を、2 桁表示には "MM" を使用します。
Y 年を表示するには、各桁に記号 "Y" を使用します。
W 曜日を表示するには、記号 "W" を使用します。"W" は、曜日を 1 桁の数字として返します (月曜日は 0 など)。
時刻記号 説明
h 時を表示するには、各桁に記号 "h" を使用します。
m 分を表示するには、各桁に記号 "m" を使用します。
s 秒を表示するには、各桁に記号 "s" を使用します。
tt 時刻を AM/PM 書式で表示するには、時刻の後に記号 "tt" を使用します。
18
日付、時刻の表示フォーマット
Qlik Sense は、ロードスクリプトの最初のMainタブの「DateFormat」や「TimeFormat」
などに設定された日付と時刻の環境変数に従って文字列の解釈を行います。
アプリを新規作成した際に、デフォルトで英語圏の書式が適用されている場合、日本語書式に書き換えてご利用いただくことが可能です。
詳細は、Qlik Japan 公認ブログの「クラウド版Qlik Senseアプリの書式を日本語化する方法」を参照してください。
日本語書式テキスト : https://www.qlikspace.net/wp/wp-content/uploads/2021/03/051b06545aa911200d20ae50372313ff.txt
19
年・月・週・日, 時・分・秒の取得
日付、および時刻関数を使用して、きめ細かく日付を取り扱う事が可能です。
関数 用途 基本の記述 備考
Year 年 Year(日付項目)
Month 月 Month(日付項目)
Day 日 Day(日付項目)
Weekday 曜日 Weekday(日付項目,最初の曜日) 最初の曜日は省略すると月曜日
Week 週番号 Week(日付項目,最初の曜日) 最初の曜日は省略すると月曜日
Hour 時 Hour(時間項目)
Minute 分 Minute(時間項目)
Second 秒 Second(時間項目)
Max 最終日 Max(日付項目)
Min 最早日 Min(日付項目)
上記関数の実施例
20
DateとDate#について
Date#
文字列を日付として解釈する変換に使用されます。
Syntax : Date#(text[, format])
text は、日付として評価される文字列
format は、評価される文字列の書式。省略された場合にはデータロードスクリプトのSET DateFormatで指定された形式。
(例) date#(‘2021/05/26’, ‘YYYY/MM/DD) は、4桁の年/2桁の月/2桁の日であることを示しています。
Date
日付の表示方法の指定に使用されます。
Syntax : Date(number[, format])
number は、書式設定する数値
format は、変換後文字列の書式。省略された場合にはデータロードスクリプトのSET DateFormatで指定された形式。
(例) date(today(), ‘YYYY/MM/DD’) は、本日の日付を 4桁の年/2桁の月/2桁の日で返します。
Date# と Dateを組み合わせることができます。
date(date#(‘20210101’, ‘YYYYMMDD’), ‘YYYY/MM/DD’) は、2021/01/01を返します。
21
日付・時刻の計算
関数を使って日付や時刻に関する計算や判定を行う事が可能です。
関数 用途 基本的な記述
AddYears 年の加算・減算 AddYears(日付項目,年数)
AddMonths 月の加算・減算 AddMonths(日付項目,月数)
MonthStart 月初の取得 MonthStart(日付項目)
QuarterStart 四半期のはじめ QuarterStart(日付項目)
MakeDate 年・月・日から日付を作成 MakeDate(年, 月, 日)
MakeTime 時間・分・秒から時刻を作成 MakeTime(時間, 分, 秒)
InMonth 月内の判定 InMonth(日付項目, 基準日付, 月数)
InQuarter 四半期内の判定 InQuarter(日付項目,基準日付, 四半期数)
Age 年齢、経過年 Age(判定日時, 生年月日)
上記関数の実施例
-1 : True, 0 : Falseを意味します。
Thank You!

Qlik Tips 日付データの取り扱い