Tableau(タブロー)で実質会員登録数(会員累計-先月までの解約累計数)を求めてみる
今回確認すること RUNNING_SUMとLOOKUPの組み合わせ
今回は中級者〜中上級者向けトピックです。
Tableau(タブロー)で必ずつまづくポイントの一つとして、EXCELであれば超簡単にできる A1セル / B1セル の「割り算」でかなり頭を悩ませる、ということがよくあります。例えば、A1セルが「今月」売上で、B1セルが「先月」売上とした場合です。Tableau(タブロー)のデータ構造はこのEXCELと根本的に異なり、「オーダー日」というディメンションと「売上」というメジャーが使われていることが多いため、EXCELのように直接セル指定した割り算をすることができません。これが原因でTableau(タブロー)を諦めてしまうユーザが多いです。
さらに、今月までの「累計」、先月までの「累計」で割り算する、という話になるとこの時点で多くの方がほぼ「思考停止」状態となってしまいます。今回は、このあたりを上手に処理できるように解説してみたいと思います。
[今回利用する関数]
- RUNNING_SUM(集計関数)
- LOOKUP(集計関数, 相対位置指定するためのオフセット)
- ZN(メジャー)
今回のデータセット
今回使用するデータセットは下記の通りです。
こちらからダウンロード可能です。データセットダウンロードはこちら
毎月の会員登録数と解約数が非集計の状態で整理されております。特に複雑なデータセットではありません。
今回の計算式の定義はこちら
実質会員数 = 今月までの会員登録数の累計から先月までの解約数の累計を控除した値
実質解約率 = 実質会員登録数に占める当月解約数の割合
※ 上記の計算式定義は独自の定義です。ご注意ください。
実質会員数の実際の計算式)
今月までの会員登録の累計は、RUNNING_SUM(集計関数) で表現します。他方、先月までの解約数の累計はコツが必要です。
ここでは、LOOKUP(集計関数, 相対位置オフセット)を使い、相対位置オフセットを-1とすることで先月までを表現します。通常、0は現在位置(自分自身=各月)を表現し、そこからみたときの-1は集計表で考えたときの左隣(各月からみた場合は前の月=前月)を表現します。
また、EXCELのVLOOKUP関数とは似て非なるものですのでマインドセットしておいてください。なお、ZN(メジャー)関数は値がなければ0に置き換えます。
実質解約率の実際の計算式)
実質会員数(今月までの累計会員数から先月までの累計解約数を控除した値)に占める、当月解約数の割合で算出します。当月解約数は、各月の解約数の合計となるため、SUM(メジャー)関数で問題ありません。
では、早速ビジュアライズしてみましょう
下記のようにビジュアライズしてみました。
こちらは、共有軸(解約数、実質会員数、会員登録数のそれぞれの累計)に対して実質解約率というメジャーを使って二重軸を作りました。
下記は、共有軸(会員申込数、実質会員数および、解約数の累計)に対して、実質解約率を行に並列して作成しております。
まとめ
今回は、RUNNING_SUM関数とLOOKUP関数を組み合わせて、今月までの累計と先月までの累計 を表現してみました。LOOKUP関数を使う際は、「集計表」を意識しながら表計算の方向性を意識しながらオフセットを適切に指定できるようになれると良いでしょう。また、EXCELのVLOOKUP関数とは似て非なるものです。こちらも混乱の要因の一つとなりますので特に注意が必要です。