Tableau Prepでのソート方法3選

Tableau Prepでのソート方法3選 | Tableau-id Press -タブロイド-
Tableau Prep

こんにちは、S.Satoです。
Tableau Prepでソート機能がないのは有名な話ですが(ver2020.3時点)、
データの処理の都合で並び替えをしたい・・・、というシーンはよくあると思います。

今回は、私が業務で使ったソート3選をご紹介したいと思います。


前提

[オーダーID]、[商品ID]、[商品名列]を持った次のようなデータがあるとします。
データはソートの効果を分かりやすくするため、順不同に並べてあります。

ではこれを並び替えてみたいと思います。

 


①単純なソート

まず[オーダーID]で並び替えてみます。
最初にお話ししたように、Prepにはデータをソートする機能はありません。
そこで、RANK()関数を利用して並び替えます。
計算フィールドでソートID①列を作り、次の式を設定します。

{ ORDERBY[オーダーID]ASC:RANK() }

[オーダーID]の昇順(ASC)でランクを振ります。
結果は次のようになり、[オーダーID]の昇順で並び変わっています。

 


②複数列でのソート

次に、複数列でのソートをやってみます。
第一ソートが[オーダーID]の昇順、第二ソートが[商品ID]の昇順で並び替えてみたいと思います。

ソートID②に次の式を記述します。

{ ORDERBY[オーダーID]ASC,[商品ID]ASC:RANK() }

計算式は単純ソートの時と同じで、ソートしたい列と昇順or降順を並べてカンマ区切りで記述します。
結果は次のようになり、[オーダーID]、[商品ID]の昇順で並び変わっています。

 


③特定列内でのソート

最後に、特定列内(グループごと)でのソートを試してみます。
[オーダーID]ごとに、商品IDを並び替えてみます。

ソートID③に次の式を記述します。

{ PARTITION[オーダーID]:{ ORDERBY[商品ID]ASC:RANK() }}

PARTITIONで、処理を行いたいグループを指定し、その後に処理を記載します。
[オーダーID]ごとに、[商品ID]を昇順で並べる、という処理にします。

結果は次のようになり、[オーダーID]ごとに[商品ID]の昇順で並び変わっています。

(②との違いは、オーダーIDの並び替えは行わないという点です。オーダーIDは順不同。)

 


ソート3選、いかがでしたでしょうか?
今回使ったRANK関数は、連番(Index)を振る場合にも応用できます。
(連番を振る機能もPrepにはありません・・・。)

Tableau Prepはまだ進化途中のツールだと思うので、今後のアップデートに期待したいですね!


truestarでは様々なデータ分析業務を承っています。こちらからぜひご相談ください。