カーディナリティの高いディメンションをチャートやテーブルで可視化する際に、数の少ないものについては纏めて「その他」として表示したいケースというのは往々にしてあると思います。
もちろんLookMLの派生テーブルを利用すれば簡単に実現することが可能ですが、LookMLに手を加えるまでもない場合、テーブル計算を使ってこれを実現することが可能です。
LookMLを使う方法はこちらをご参考ください。
例えば以下のようなカテゴリ別オーダー数のデータについて、TOP10より少ないカテゴリはすべて「その他」にまとめて表示したいとします。
行数制限
を 11 (表示したいカテゴリ数+1(その他の分))とし、合計
の取得のチェックボックスにチェックを入れます。
products.category
を対象のディメンションに、order_item.order_count
を対象のメジャーに、それぞれみなさんの環境に合わせて置き換えてください。カテゴリ (表示用)
if(
# 最終行以外の行の場合
row() != max(row())
# カテゴリ名をそのまま表示
,${products.category}
# 最終行の場合、「その他」と表示
, "その他"
)
オーダー数 (表示用)
if(
# 最終行以外の行の場合
row() != max(row())
# オーダー数をそのまま表示
,${order_items.order_count}
# 最終行の場合、これ以降全ての行の合計値を表示する
, ${order_items.order_count:total} - sum( if(row()= max(row()) , 0 , ${order_items.order_count}) )
)
※ エクスプローラに「合計」を追加している場合に、上記のように「:total」を付けることでその列の合計値を取得することができます。詳細はこちらをご参照ください。
以下のように追加されたかと思います。
元々のディメンションとメジャー項目を可視化項目から除外します。
歯車マークをクリックし、以下のように「Hide from Visualization」を選択します。
最後に、この状態でデータを取得します。
すると以下のようにTOP10より少ないカテゴリがすべて一括りに「その他」として表示されました。
LookMLに手を入れるほどでもない場合に是非お試しください!