Qlikで日時データから日付だけの項目を作成する
更新日:2024年6月27日
Qlikを使って、YYYY/MM/DD hh:mm:ss のように時刻まで含まれるデータから、日付部分「YYYY/MM/DD」だけの項目を作成する方法です。Subfield関数がよさそうでした。
・日付データの作成方法③:Subfield関数 → おススメ
※2024年4月時点のQlik Sense Businessを利用しています。
<日時データ項目から日付を取り出す関数がない?>
日付と時刻を持ったデータから「日付」だけの項目を作成したいときに少し悩みました。 日付データから「年」「月」「日」をそれぞれ返す関数はYear()、Month()、Day()といったものがあるのですが、年月日を返す関数が見つかりませんでした。
日時 | 日付 | Year(日時) | Month(日時) | Day(日時) |
2024/05/01 12:34:56 | 2024/05/01 | 2024 | 5 | 1 |
2024/05/01 12:34:57 | 2024/05/01 | 2024 | 5 | 1 |
2024/05/01 12:34:58 | 2024/05/01 | 2024 | 5 | 1 |
2024/05/01 12:34:59 | 2024/05/01 | 2024 | 5 | 1 |
<日付データの作成方法①:Date関数>
Date(日時,'YYYY/MM/DD')
Date関数をこれでやってみたところ、日付部分のみ表示することができました。が、Date関数はあくまで表示上の書式を設定する関数なので、データの実体としては時刻まで持ったままです。よって、下図のようにフィルターパネルで一意の表示にならずおかしな感じになります。
上述の表のように日時データと並べて表示だけ日付にしたい場合はDate関数を使った方法でもよいかもしれません。
<日付データの作成方法②:Date関数+Text関数>
表示書式を日付にした上で重複表示を回避するためText関数で文字列変換してみました。
Text(Date(日時,'YYYY/MM/DD'))
こうすることで、無事に日付項目となりデータの実体としても時刻を除いた状態になったので、Date関数での課題は回避できました。ただ、文字列になってしまうので日付の計算などができなくなったりするのが気になりました。
<日付データの作成方法③:Subfield関数>
そこで、他の方法も探ってみたところSubfield関数でやることを見つけました。
Subfield(日時,' ',1)
こうすることで、日時データの日付と時刻の間の半角空白 ' ' を区切り文字とした1つ目の日付部分だけを返すということができました。文字列データになることもなく、日付の計算もできる状態だったので今回はこれにしました。
【参考】
以上です
Comments