【QuickSight】時分だけでフィルタリングしたい(荒業)
例えば、日付のデータセットを7時から8時までのデータを集計して平均の折れ線グラフで見たいよ。って要望があると思いますが、現状「時分」のみで日付のデータとして持つことができず、フィルタリングがきれいにできないと思うので、それを荒業でやります。
今回のテストデータ
日時 | 値 |
---|---|
2023/09/01 01:00 | 81 |
2023/09/01 01:01 | 1 |
… | … |
2023/09/03 02:58 | 12 |
2023/09/03 02:59 | 43 |
日付と値を持つデータで、9月1日の1時から3時までの値を、3日まで持っているというもので今回やります。
手順
・日付のデータを時分のみのStringに変換する
・固定の日付をconcatでくっつけて、フォーマットに合わせる
・そのデータをparseDateで日付に変換する
・フィルタリングをする
日付のデータを時分のみのStringに変換する
今回は直接データセット内で、計算フィールドを作成します。
【TimeStamp】という計算フィールドを作成して、
formatDate({日時}, 'HHmm')
とすると、
こんな感じになります。
固定の日付をconcatでくっつけて、フォーマットに合わせる
先ほどの、TimeStampの計算フィールドに、
concat('20230101T',formatDate({日時}, 'HHmm'), '00')
concat
でyyyymmddTHHmmss
のフォーマットのStringに変換します。
とすると、
こうなります。
そのデータをparseDateで日付に変換する
データ処理としては最後の作業ですが、先ほどのTimeStampの計算フィールドに、
parseDate(
concat('20230101T',formatDate({日時}, 'HHmm'), '00')
,"yyyyMMdd'T'HHmmss")
parseDate
で日付のデータへと変換します。
とすると、
こうなります。これで準備完了です。
フィルタリングをする。
ビジュアライズは折れ線グラフで、フィールドウェルはX軸にTimeStamp、Y軸に値を入れてください。TimeStampの集計を「分」にして、かつ表示方法を「HH:mm」に変更すれば、
こんな感じで表示されます。
後は、フィルターで自由に変更できます。
ここでの注意点としては、固定の日付を選択しないといけないという事です。
フィルタリング内容が下の画像のようになるので、
計算フィールドに入力した固定の日付を入力して、時分を扱ってください。
補足
このフィルターをコントロールに表示して、ユーザーが自由に扱いたいよ。という時は、
コントロールの表記がそのままだと、こうなってしますので、
日付の形式をこうしたり、
情報アイコンにこういう情報を入れてあげると親切化もしれません。
Discussion