[小ネタ]QuickSightで表示するフィールド名の置換について

QuickSightで表示する項目を置換する方法を紹介します(ほぼ関数の話です)
2023.03.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、洲崎です。
QuickSightで表示するフィールド名を置換する方法を紹介します。

元データにリソースネーム(ARN)しかなくて前処理をしていない場合

QuickSightはデータセットで様々な参照先を選ぶことができます。
参照先にある元データを見に行くときに、AWSのリソースネーム(ARN)しかない場合&前処理も行っていないと、ダッシュボードで見ても長くなる&分かりづらくなります。
今回はARNの情報を元にQuickSightの計算フィールドを利用して表示名を置換してたかったので、2パターン試してみました。

いきなりまとめ

QuickSightで表示するフィールド名を置換する際は以下の関数を利用する方法があります。

  • replace関数
    • 文字列の一部を指定した別の文字列に置き換える場合
  • ifelse関数
    • 複数のパターンで文字列を置き換える場合

やってみる

replace関数

replace関数は文字列の一部を、指定した別の文字列に置き換える関数です。
例えば、Amazon ConnectのCTR(問い合わせレコードデータモデル)では、Amazon ConnectインスタンスのARNを取得することができます。

しかしARNだと情報が分かりづらいので、これをインスタンス名に置換します。
データセットの編集画面で、フィールドから「計算フィールドの追加」をクリックします。

replace関数を入力します。フォーマットは下記です。

replace(expression, substring, replacement)

今回はインスタンスARNをインスタンス名に置換したい為、以下関数を入力します。

replace('インスタンスARN', 'インスタンスARN', 'インスタンス名')

入力できたら右上の保存をクリックします。

これで、"instancearn"を表示したいインスタンス名に置換することができました。

ifelse関数

ifelse関数は、if then式のペアで文字列を置き換える関数です。
今回はAmazon Connectでユーザーが2名いる場合で、それぞれの表示名を変換してみます。

suzaki = 洲崎、tanaka = 田中に変換します。
先ほどと同様に、「計算フィールドの追加」を開きます。
ifelse関数を入力します。フォーマットは下記です。

ifelse(if-expression-1, then-expression-1 [, if-expression-n, then-expression-n ...], else-expression)

今回のケースをフォーマットに当てはめると下記になります。

ifelse({username} = 'suzaki','洲崎',ifelse({username} = 'tanaka','田中','その他'))

入力できたら右上の保存をクリックします。

問題なく、suzakiとtanakaを置換することができました。

ちなみに、複数条件で利用する際に使われるSQLのCASE関数はドキュメントで見当たりませんでした。
その為、2パターン以上の場合はifelseをネストして利用する形になります。

最後に

今回はQuickSightでフィールド名を置換する方法を紹介しました。
その他にもQuickSightには様々な関数を計算フィールドで利用できます。

もしQuickSightの表示に困ることがあれば計算フィールドを利用してみてください。

ではまた!コンサルティング部の洲崎でした。

参考