![見出し画像](https://assets.st-note.com/production/uploads/images/115796784/rectangle_large_type_2_ff0e710c417300b7200bb195d4565bbd.png?width=1200)
行をスマートに並べ替える
ラスベガスで行われた Tableau Conference 2023 VIZZIES Award で "PREPSTAR" の称号を頂きました! 身に余る光栄に Tableau User の皆様に感謝しかありません。ありがとうございました。
![](https://assets.st-note.com/img/1694251597567-0gFQCfDM53.jpg?width=1200)
という割には、Tableau Prep Builder の記事を全く書いてません! なので、少し書いていこうと思います。
「Tableau Prep Builder を使ってフローを作った。でも出力する時、並び順がグチャグチャでなんだか気持ち悪い」そんな気持ちになった方は多いのではないでしょうか? 出力結果は Tableau Desktop や Database, Excel 等で使うデータソースになりますから、行の並び順はあまり重要ではありません。でもどうせなら意図した順番になっていたほうが気持ちいい。
例えば、"サンプルスーパーストア.xls" のサブカテゴリ別売上数量を集計すると、こんな感じになります。
![](https://assets.st-note.com/img/1694251364537-lq56QmQJJ7.png)
![](https://assets.st-note.com/img/1694239978713-M4VeyH8ZNs.png)
何の順番に並んでるのでしょうか? Tableau Desktopは、既定でデータデータソース順になりますが、PREPではランダムっぽいですね。
そんな時、version 2023.2 から登場した LOOKUP関数を使うと簡単に並べ替え出来ちゃいます。
クリーニング・ステップを追加して計算フィールドを作成します。
計算式は
{ ORDERBY [サブカテゴリ] ASC: LOOKUP([サブカテゴリ],0) }
のように書きます。
![](https://assets.st-note.com/img/1694255593704-so0uZOywBk.png)
![](https://assets.st-note.com/img/1694255496556-LAcxlJmIRj.png)
![](https://assets.st-note.com/img/1694255732529-neI158mVpg.png)
以前のバージョンでも並べ替えは出来ましたが、ROW_NUMBER や RANK で列フィールドを追加しなくてはなりませんでした。追加したフィールドは、出力時に隠せないので余分な列が増えてしまいます。LOOKUP関数を使うことで、スッキリ並べ替えが出来ます。
なお、計算式のフィールド名を、"サブカテゴリ" にしてしまえば、フィールドを上書き出来ますので、これまた余分なフィールドを増やさずに済みます。
LOOKUP関数を利用したスマートな並べ替え方法のご紹介でした。是非お試し下さい。