【Tableau】上位N%の抽出方法

Tableau導入プロジェクトで躓いた点や発見をTipsとしてまとめます。
導入時の参考にしてみてください!

背景

あるクライアントから「ビューに表示されている値のうち上位N%だけ表示したい」と要望をいただき対応しました。
ビューに表示する指標(メジャー)と分析軸(ディメンション)によっては、表示されるマークや値が多すぎて見やすさに欠ける場合があります。
このような場合によく利用され、かつクライアントからもよく要望をいただく内容なのでTipsとしてまとめます。

実装

以下、上位N%抽出フィルタを作成するための手順を記載します。

  1. ビューを準備する

  2. 集計軸を検討する

  3. 上位N%の抽出フィルタを作成する

1.ビューを準備する

まず、上位N%抽出フィルタを適用するビューを作成します。
いつもの「サンプル-スーパーストア.xlsx」で各都道府県のメーカ別売上をテキストテーブル(Crosstab)で用意しました。

ビューイメージ(標準表示)
ビューイメージ(ビュー全体表示)

上記ビューでは、マークや値が多すぎて各都道府県のメーカ別売上状況がうまく把握できません。
このような場合の対応策として、上位N%抽出フィルタはよく用いられる技となります。

2.集計軸を検討する

フィルタを設定するときは、どのような軸で値を集計(抽出)するかを検討してから設定するのが一般的です。
今回は、都道府県ごとに売上が上位N%のメーカーを抽出することにします(単に売上上位N%のメーカーを抽出するなどの抽出ケースもあるのでデータの正確性を確保するためにも集計軸検討はとても重要な作業です)。

3.上位N%の抽出フィルタを作成する

まずは、上位N%を動的に設定できるようにパラメーターを作成しフィルタ
表示します(デフォルトの設定値は上位100%、つまり全ての値を表示にします)。

パラメータの作成

続いて、パラメータで設定した値が各都道府県のメーカ別売上に適用されるように計算フィールドを作成します。
「RANK_PERCENTILE」関数を適用することで、各行(各都道府県のメーカ別売上)内の各値が全体の中でどの位置にあるかを百分位(0~100%)を使ってランク付けすることができます。
なお、「表(横)に沿って計算する」「降順(desc)を指定する」必要があることに注意してください。特に「RANK_PERCENTILE」関数のデフォルトは「昇順(asc)」となっているため、ここの設定を間違えると上位N%の抽出結果が逆転します。


「RANK_PERCENTILE」関数を適用

最後に、作成した計算フィールドのピルをフィルターに適用(Trueに設定)します。

各都道府県の売上が上位10%のメーカーのみ抽出!

パラメータ「Top N%抽出」の設定値を10%に設定すると、都道府県ごとに売上が上位10%のメーカーのみ抽出が出来ていることを確認できました。

おわりに

いかがだったでしょうか。
個人的に一番シンプルな方法で実装を試みてみました。
この上位/下位N%抽出は、実際のプロジェクトで頻出(クライアント要望なくてもこちらから提案してあげるとよい)すると思うので、参考にしていただけると嬉しいなと思います。


参考


この記事が気に入ったらサポートをしてみませんか?