はじめに
AWS QuickSightでダッシュボードを構築する際、使用するテーブルの日付に関する部分の型が数値や文字列の場合があります。実務上、数値や文字列を日付型に変換したり、日付型を数値または文字列に変換する必要性が度々発生します。
今回、この記事では、AWS QuickSightでの日付型に纏わる変換方法について紹介します。
使用するデータセット
データセットのダウンロード
今回は、各日付ごとに3種類の商品の販売件数に関するデータ(sample_sales.csv)を使用します。使用するデータセットは、以下に格納しています。
データセット
データセットの中身
データセットの各カラムの内容は以下の通りです。
カラム名 | データ型 | 説明 |
---|---|---|
日付 | 数値 | 商品販売日次(2024/4/4~2024/8/31) |
商品A | 数値 | 商品Aの販売件数 |
商品B | 数値 | 商品Bの販売件数 |
商品C | 数値 | 商品Cの販売件数 |
データセットのアップロード
本記事はデータの操作方法に関する説明がメイントピックなので、QuickSight上でのデータのアップロードに関する説明は省略します。
データセットのアップロード、作成方法については、ユーザーガイドを参照してください。
データセットの編集
データをアップロードしたら以下の、データセットの編集画面に移動してください。
フィールドから直接型変換してみる
データセットのカラム名の下に各データセットの型が表示されています。
日付のデータもintegerとなっているので、これをdateに変更したいです。
試しに、既存のフィールド「日付」のデータ型を直接数値型に変更してみます。
フィールドの日付の横の「…」をクリックし、[データ型の変更]>[日付]を選択してください。

「日付形式の編集」画面が表示されるので、「yyyy/MM/dd」と入力し更新ボタンを押してみてください。すると、同じ画面が表示され日付型に変更することができません。

計算フィールドから変換を行う
計算フィールドを使用するには、編集画面左上の[追加]>[計算フィールドの追加]を選択します。
「計算フィールドの追加」の画面は以下の通りです。赤枠部分から、編集したいカラムや関数を選択できます。「名前の追加」の部分はカラム名を記入、その下のエディタに関数を記入して使用します。
ここまでできれば、計算フィールドの準備は完了です。
試しに、商品A、商品Bおよび商品Cの合計販売件数を算出してみます。
シンプルに商品の和をとれば、合計値が算出できます。
{商品A} + {商品B} + {商品C}
入力後、右上の保存ボタンを押すと、新しく「合計」というフィールドが作成されます。
日付型の変換
計算フィールドを使って、「文字型、数値型から日付型」および「日付型から文字型、数値型」の変換を行います。
文字型から日付型
{日付}
は、文字型とします。文字型を日付型にするには、parseDate
関数を使用します。parseDate
の最初の引数に変換したいカラム、2番目の引数にフォーマット(今回はyyyyMMdd
)を指定します。
parseDate({日付}, "yyyyMMdd")
数値型から日付型
{日付}
は、数値型とします。数値型を日付型にするには、次に2段階のステップを踏みます。
- 数値型から文字型
- 文字型から日付型
1の数値型から文字型に変換するには、toString
を使用します。2の文字型から日付型については、parseDate
関数を使用し、parseDate
の最初の引数に変換したいカラムを文字列に変換したもの、2番目の引数にフォーマット(今回はyyyyMMdd
)を指定します。
parseDate(toString({日付}), "yyyyMMdd")
日付型から数値型
{日付}
は、日付型とします。日付型を数値型にするには、extract
関数を使用します。extract
を使用すると、日付の年や月、日などを数値として抽出できます。extract
の最初の引数に、抽出したい期間のフォーマット、2番目の引数に変換したいカラムを指定します。抽出した年、月、日の数値に対し、年×10000 + 月×100 + 日
の計算をすれば、数値としての日付が取得できます。
extract("YYYY", {日付}) * 10000 + extract("MM", {日付}) * 100 + extract("DD", {日付})
日付型から文字型
{日付}
は、日付型とします。日付型を文字型にするには、次に2段階のステップを踏みます。
- 日付型から数値型
- 数値型から文字型
1の日付型から数値型については、先に説明した「日付型から数値型」と同じです。2の数値型から文字型については、toString
を使用します。
toString(extract("YYYY", {日付}) * 10000 + extract("MM", {日付}) * 100 + extract("DD", {日付}))
今回使用した関数
今回使用した関数は、以下の通りです。QuickSightの関数については、ユーザーガイドのカテゴリ別関数にまとめられています。