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はまだ進化途中のツールだと思うので、今後のアップデートに期待したいですね!
次回はRANK関数を利用した、「Tableau Prepで1行上のデータを取得する方法」をご紹介します!
truestarはマーケティング及びデータ分析の経験と技術を生かしたコンサルティングサービスを強みとしています。
当社のサービスにつきましては、こちらのお問い合わせフォームからお気軽にご相談ください!