Tableau

Tableau Prep Builder 2023.2の新機能”複数行の計算”を試してみた

最近、Tableau Prep Builder(以下prep)で累積合計を算出したくなるケースがあったので、算出方法を調べていました。

↑こちらの記事にわかりやすく算出方法が記載されていたのですが、どうやら自己結合をする必要がありそうで、一旦そのやり方で対処しようとしていたところ、prepの2023.2で新たに”複数行を計算する機能”が追加されたことを知りました。

公式サイトには

複数行を計算する機能が Tableau Prep に追加され、データ準備の段階で表計算を実行できます。コードや複雑な計算式を記述せずに、クリックするだけで差の計算、差の割合の計算、移動計算をこれまでになく簡単に行えます。また、Tableau Prep の式エディターで LOOKUP 計算式も記述できるようになりました。

と記載されています。

ひょっとしたら累積計算もできそうかも!!

と思いましたので、ちょっと試してみることにしました。

結論:累積計算はできないっぽい……

結論から言うと累積計算はできないみたいです。

じゃあ、何ができる?

先に記述した機能の紹介文にもある通り、差の計算、差の割合の計算、移動計算ができるようになっていました。毎度おなじみスーパーストアのデータを用いて、1つずつ見ていきます。

※下準備として注文データを下図のように[カテゴリ]×[オーダー日]の粒度で集約しておきます。

差の計算

任意のカラム上で右クリック > 計算フィールドの作成 > 次との差 を選択します。

すると、”グループ化”、”並び替え”、”次の方法で計算”、”次との差”を指定する画面が表示されます。ためしに、”グループ化”を[カテゴリ]、”並び替え”を[オーダー日]、”次の方法で計算”を[数量]、”次との差”を前の値(1)と設定してみます。

こうすると[カテゴリ]ごとに[オーダー日]でソート(デフォルトでは昇順)され、各カテゴリにおいて前日の[数量]を引いた値が返されます。例えば”次との差”を前の値(2)とすれば前日ではなく前々日の[数量]を引いた値が返ってくるといったロジックです。また、”次との差”で指定した値が存在しない場合はNULLとなるようです。

差の割合の計算

差の割合の計算も同じように、”グループ化”を[カテゴリ]、”並び替え”を[オーダー日]、”次の方法で計算”を[数量]と設定し、”次との差の割合”には前の値(1)と設定してみます。

[カテゴリ]ごとに[オーダー日]でソート(デフォルトでは昇順)されることは差の計算と同様で、引いた値ではなく割った値から1をひいた値が返されます。例えば事務用品の2020/01/02のレコードの場合

“2020/01/02の事務用品の数量” / “2020/01/01の事務用品の数量” – 1= 4/9 – 1 = -5/9 = -0.555……

という数値が返されます。

移動計算

移動計算も同じように、”グループ化”を[カテゴリ]、”並び替え”を[オーダー日]、”次の方法で計算”を[数量]と設定します。また、”Results”は集計方法をSUM, Previous valuesの値を1, Next valuesの値を1とし、Exclude current valueにチェックをいれています。

すると、各カテゴリごとに前日と翌日の数量を足し合わせた数値が返されます。”Results”の集計方法に関してはSUM以外にもAVGが用意されており、Previous valuesやNext Valuesの値を変更することで柔軟に計算区間を変更することが可能です。また、Exclude current valueのチェックを外すと現在値も集計対象となります。

さいごに

移動計算がイケるんだったら、累積計算もイケそうじゃない??と思ったのですが、どうやらそういうワケでもなさそうです。
※作成した計算式上でカーソルを合わせると下図のように計算式が表示されるのですが、裏ではLOOKUP計算式でごり押していることがわかります。

 

 

mochizuki
データサイエンティスト。筋トレ、温泉、時々スキー。