Tableau2023.2で追加されたTableau Prepでの複数行の計算を使ってみた
Tableau2023.2が6/16に公開されました。
https://www.tableau.com/ja-jp/products/new-features
今回の主なアップデート情報
- Tableau Prepでの複数行の計算
- 線の模様
- 管理者による個人用accessトークンのコントロール
など…
特に注目すべきは、Tableau Prepで複数行の計算が出来るようになったことです。
これにより以下のような計算が可能になり、事前計算によるダッシュボード側でのパフォーマンス向上を図ることが出来るようになりました。
- 前年比・前月比の計算
- 移動平均の計算
本記事では、Tableau Prepで複数行の計算機能をどのように使用するかを紹介します。
関数LOOKUPの追加
関数一覧にLOOKUPが追加されました。

これはTableau Desktopではおなじみの、指定した数値の差だけ離れた行の値をとってくる表計算の関数になります。

記述方法はPrepでのRANK関数と同じように、PARTITIONでどの粒度を使用して計算するかを指定し、ORDERBYで並び替えるという形になります。
なお、今回のアップデートで増えた関数はLOOKUPのみのようです。今後増えていくかもしれないですね。
関数LOOKUPを使った自動計算機能
Tableauの簡易表計算のようなイメージでしょうか、LOOKUPを使用した計算をUI上で行うことが出来ます。
数値のフィールドを選択→計算フィールドの作成から選択可能です。

追加されたのは
- 次との差
- 次との差の割合
- 移動計算
です。
選択すると以下のような画面になります。

「並び替え」でどのような順番で表を並べるか設定し、どの値をどの位置から引っ張るか設定します。(計算フィールドで言うORDERBYの部分)

オーダー日で並び替えしたときのひとつ前との差の値を返します。

LOOKUPを使用した計算式を自動的に書いてくれます。

グループ化にディメンションを指定すると、その指定したディメンション内の固まりで並び替えをしてくれます。(計算フィールドで言うPARTITIONの部分)

次との差の割合も似たようなイメージ。今の値から指定した値を引いて指定した値で割っています。
移動計算

その行から見ていくつ前からいくつ後までかを指定し、その範囲で集計を行っています。
今回の場合はその行と前後1行を合計した結果を返しています。

移動平均も計算できます。
出来そうなこと
適切に集計を行った後に計算を行えば、昨年との比較、昨月との比較などが単一ステップで行えるようになります。
昨年との比較

都道府県ごとのサブカテゴリの売上を年単位に集計されたデータがあるとします。

今までであれば昨年の値を示す列を作成して結合するというちょっとステップが多い対応が必要でした。

LOOKUP関数を使えば、計算フィールドで一発で前年の売上を取得することが出来ました。
前年の売上
{PARTITION[都道府県],[サブカテゴリ]:{ORDERBY [オーダー日] ASC:LOOKUP([売上],-1)}}
月ごとの移動平均

地域毎・カテゴリ毎に月別で売り上げを集計したデータがあるとします。

地域・カテゴリ毎にオーダー月で並べたときの前後1か月分の移動平均の値を計算させておくことが可能です。時系列の変動が大きい株価などのデータを大まかなトレンドでとらえるためのデータを作成したいときに有効です。
まとめ
Tableau Desktopでの表計算は度々計算の処理に時間がかかり重くなることが多いので、このようにあらかじめ集計して値を持たせておくことでパフォーマンス改善につながるということは結構多いので覚えておくと役に立ちそうと思いました。
個人的には、累計の計算をしてくれる表計算関数も今後のアップデートでPrepに追加されたらいいなと思いました。