Skip to main content

お世話になっております。​

最終来店日から6ヶ月以上来店(購入)していない会員を「休眠会員」、それ以外を「アクティブ会員」として、毎月の推移を調べたいです。

DATEDIFF関数を使って、何ヶ月経過しているのかを調べたいのですが、

その時点からの6ヶ月以上を休眠会員とすることができません。

終了日を都度変えずに相対日付のようにすることはできますでしょうか。

(11月の休眠会員を知りたいなら終了日は#2016-11-30#)

ご教示のほどよろしくお願い致します。​

計算式の中に相対日付を入れることができますか。スクリーンショット 2021-02-09 10.42.51

4 answers
  1. Feb 9, 2021, 4:59 AM

    まず、Tableauでは あるマークから見て相対的に前/後という位置関係を取るときは表計算を使います。v2020.2以降ならリレーションを使って実現することもできますが、今回は各顧客の最終購入日から現在(もしくはデータの存在する最後の月)までの枠を作る必要があるので、リレーションよりも表計算が適しています。

    顧客と月を並べてみると、複数箇所が欠損して空白になっていることが分かります。そもそも計算の根拠となるマークが無いので​、このままでは休眠かアクティブかを判断することもできません。

    まず、Tableauでは あるマークから見て相対的に前/後という位置関係を取るときは表計算を使います。v2020.

    そこで、すべての顧客と月の組み合わせに対して休眠orアクティブをつけられるように、INDEXを使ってマークを配置します。INDEXを始めとする表計算の一部は、これをビュー内に入れることでデータソース上にデータがない = マークが表示されない箇所に対して強制的にマークを表示させることができます。

    キャプチャ

    マークを配置したら​個別にオーダーが発生しているか否かを判定します。

    キャプチャ

    このデータを使って過去6ヶ月間に購入履歴があるかどうかを見ます。但し、顧客の初回オーダー前のマークは休眠ではなく未購入として扱うべきなので、ここでは​未購入・休眠・アクティブの3つに分類します。次の図では未購入が-1、休眠が0、アクティブが1になっています。

    キャプチャ

    あとは月ごとに休眠の数とアクティブの数を数えます。状態は顧客ごとに判定しているので、WINDOW_SUMを使って顧客を横断しながら何人の顧客が休眠/アクティブのそれぞれに該当するのかを数えます。

    キャプチャキャプチャ

    このままだと数字が顧客の数だけ重複するので、FIRSTを使って最初の顧客だけを表示します。

    キャプチャ

    あとは適当に望む見た目に切り替えます。例えば、チャートタイプを棒グラフにし、メジャーネームを色に、メジャーバリューを行に置いて顧客名のヘッダーを非表示にすると、先の投稿につけたようなグラフになります。

    キャプチャ

    表計算の設定などは、添付のワークブックを参照してください。

0/9000