Time#関数とTime関数
Qlik Senseには「Time#」と「Time」というよく似た関数があります。なかなか使い分けが覚えられないので記事にしてみました。
【Time# と Time の違い】
2つの関数の違いは下記のとおりです。
・Time#:文字列などのデータを時刻として評価します
・Time:時刻データの表示書式を指定します
<時間データとTime#関数>
時間データは分析においてとても重要で、時間データ特有の関数も多く存在しています。例えば「Hour」や「Minute」関数は時間データから「時間」や「分」といった軸を作ることができます。(→ 日付関数を便利に使う)
ただし、こういった関数は「時間」と評価された値にしか使用できません。一見、時間に見えるデータも実は数値だったり文字列だったりすることがあり、これを時間として評価させる関数が Time# となります。
▼Time#関数で「時間」と評価させる!
文字列などのデータはTime#関数で明示的に「時間」にすることで様々な時間データ用の関数を使用することができます。Time#の使い方は次のとおりです。
⁼Time#(値,'変換したい値の書式')
「値」には変換させるデータ項目が入ります。「変換したい値の書式」は、その項目の値がどのような書式なのか?を指定します。指定した書式のデータ値を「時間」として評価するという感じです。
例)
⁼Time#(開始時間,'hh:mm:ss')
※開始時間で返される'23:59:01'といった文字列などが時間として評価されます。開始時間には引数で指定した書式でデータが含まれているとします。
<Time関数と表示書式>
Time関数は時間データに対して、任意の書式で表示するための関数です。例えばレポートの要件によっては「23:59:01」ではなく「23時59分01秒」や「23°59'01”」と表示したいようなケースです。
ちなみに、Time関数は時間データに対して使用する関数です。ここが私にとってはややこしいところです。(一方のTime#関数は文字列や数値として扱われる値を時間として評価させる関数で、そもそも時間でないデータに対する関数です)
= Time(開始時間,'表示したい日付書式')
下記のような例で任意の時間書式で値を表示することができます。
書式記号については、ヘルプで確認するのが分かりやすいです。
> Qlikヘルプ:数値や日付書式の説明
サンプル:hh:mm:ss.f
さいごに、Time関数とTime#関数はセットで使用されることも多いのでそちらの例を記載しておきます。
Excelの元データ「開始時間」が「10時50分30秒」と文字列で入っている場合にQlik Sense上では「10:50:30」と表示するようなケースです。
この場合は、まず「10時50分30秒」をTime#関数で時間と評価させます。その上で、Time関数で表示書式を変更します。
=Time(Time#(開始時間,'hh時mm分ss秒'),'hh:mm:ss')
【参考】 Qlikヘルプ:数値や日付書式の説明
Comments