Date#関数とDate関数
更新日:2023年9月26日
Qlik Senseには「Date#」と「Date」とよく似た関数があります。なかなか使い分けが覚えられないので記事にしてみました。
【Date# と Date の違い】
2つの関数の違いは下記のとおりです。
・Date#:文字列などのデータを日付型に変換します
・Date:日付型のデータの表示書式を指定します
<日付データとDate#関数>
日付データは分析においてとても重要で、日付データ特有の関数も多く存在しています。例えば「Year」や「Month」関数は日付データから「年」や「月」といった軸を作ることができます。(→ 日付関数を便利に使う)
ただし、こういった関数は「日付型」の値にしか使用できません。一見、日付に見えるデータも実は数値だったり文字列だったりすることがあり、これを日付型に変換する関数が Date# となります。
▼Date#関数で「日付型」に変換する!
文字列などのデータはDate#関数で明示的に「日付型」にすることで様々な日付データ用の関数を使用することができます。Date#の使い方は次のとおりです。
⁼Date#(値,'変換したい値の書式')
「値」には変換させるデータ項目が入ります。「変換したい値の書式」は、その項目の値がどのような書式か?を指定します。指定した書式のデータ値を「日付型」に変えるという感じです。
例)
⁼Date#(売上日付,'YYYY年MM月DD日')
※売上日付で返される'2023年10月10日'といった文字列などが日付型に変換されます。売上日付には引数で指定した書式でデータが含まれているとします。
<Date関数と表示書式>
Date関数は日付型のデータに対して、任意の書式で表示するための関数です。例えばレポートの要件によっては「2023年1月1日」ではなく「2023-01-01」や「2023/1/1」と
Date関数は日付型のデータに対して使用する関数です。ここが私にとってはややこしいところです。(一方のDate#関数は文字列や数値として扱われる値を日付型に変換する関数で、そもそも日付型でないデータに対する関数です)
= Date(日付データ,'表示したい日付書式')
下記のような例で任意の日付書式で値を表示することができます。
書式記号については、ヘルプで確認するのが分かりやすいです。
> Qlikヘルプ:数値や日付書式の説明
注意点としては、日付は大文字(Y、M、D 等)で指定してください。小文字だと「m」は時刻を表す「分」と混同してしまいます。
さいごに、Date関数とDate#関数はセットで使用されることも多いのでそちらの例を記載しておきます。
Excelの元データ「日付」が「2023年10月10日」と文字列で入っている場合にQlik Sense上では「2023/10/10」と表示するようなケースです。
この場合は、まず「2023年10月10日」をDate#関数で日付に変換します。その上で、Date関数で表示書式を変更します。
=Date(Date#(日付,'YYYY年MM月DD日'),'YYYY/MM/DD')
【参考】 Qlikヘルプ:数値や日付書式の説明
Qlik Senseトレーニングブログ:DateとDate#の違い
Comments