[Looker] Explore上で¥(円マーク)を表示させる
LookerではDBから返ってきた値をいい感じにフォーマットしてくれるvalue_format_name
と言うパラメータがあります。
ただ、残念ながら穴の開くほど画面を眺めても我らがまん丸「¥(円マーク)」のformat_nameがありません。
「ドルンルンさん($)は当然として、ポポポンドさん(£)とユーロデロロさん(€)は羨ましいなぁ」と指を加えて羨むのはまだ早い!
我らがまん丸円マークさんだってLookerに表示できます!!
value_format
value_format
パラメーターをdimensionやmeasureに付け加えるだけで、Exploreで数字を出した際に指定したフォーマットで値を表示します。
フォーマットのスタイルはExcelの記法を使用します:
Common Formatting Strings - Looker documentation
そのため、3桁区切りでカンマ(,)で先頭に円マーク(¥)をつける場合は以下のように記載します。
measure: total_sale_price { type: sum value_format: "\"¥\"#,##0" sql: ${sale_price} ;; }
すると、value_format
付与前は、生データが表示されていたExplore画面ですが、
value_format
付与後には、以下の画像のようにきれいにフォーマットされました。
見事お悩み解決!
・・・、と言いたいところですが、¥が必要な箇所全てに"\"¥\"#,##0"
を記載するのは骨が折れます。
"\"¥\"#,##0"
に名前をつけていつでもどこでも都合の良い時に呼び出したいと思うのが人情でしょう。そんな時に使うのが、named_value_format
パラメーターです。
named_value_format
named_value_format
パラメーターで、value_format
に名前をつけることができ、dimensionやmeasureで前述のvalue_format_name
で呼び出せるようになります。
modelファイルに以下のように定義して、viewファイルで呼び出します。
# model file named_value_format: yen_0 { value_format: "\"¥\"#,##0" }
#view file measure: total_sale_price { type: sum value_format_name: yen_0 sql: ${sale_price} ;; }
Lookerのデフォルトのフォーマットの表示形式が、アンダースコア(_)で小数点以下の表示を指定しているので、named_value_format
でもそれに従うと開発中に混乱が少ないと思います。
千単位で表示させる
大きい数字を扱う場合には千単位、百万単位で表示させたい場合があると思います。
その場合には、以下のように定義をするとLooker側でよろしく計算をして千単位で表示してくれます。
# model file named_value_format: yen_k { value_format: "\"¥\"#,##0,\" K\"" }
#view file measure: total_sale_price_k { type: number value_format_name: yen_k sql: ${total_sale_price} ;; }
マイナス表示
計算の結果がマイナスになる値もあると思います。
マイナス(-)が先頭についているだけでは、見逃してしまう可能性があります。そんな時にはセミコロン(;)で区切ってマイナスの場合の書式を指定します。
# model file named_value_format: yen_0 { value_format: "\"¥\"#,##0;(\"¥\"#,##0)" }
このように定義すると、計算結果がマイナスの場合には値を括弧()で囲ってくれます。
テーブル計算をする場合
テーブル計算は生データが表示されるので、別でフォーマットを指定する必要があります。
指定しない場合:
テーブル計算の画面でDefault Formattingを選択すると、一番下にCustomが選択できます。
そこにExcel方式でフォーマットを記述すれば良いのですが、テーブル計算に入力する際はバックスラッシュ(\)でエスケープする必要はありません。(ダブルクオート:""で囲めばOK)
すると、きれいにフォーマットされます。