先日ご教授して頂いた前回来店日の関連するのですが
これはまた違う形で表示が必要な様で質問させていただきます。
その月にオーダーした顧客が前回購入した日付から再来(前回購入からの期間)で分けていくにはどうすれば良いでしょうか。
初めて購入=初回
6か月以内に再度購入=6か月以内購入
12か月以内に再度購入=1年以内購入
それより長い=1年以上前購入
列は2016年1月、 2月、 3月・・・
行は 初回
6か月以内購入
1年以内購入
1年以上前購入
でそれぞれの顧客数を表示したいです。
それぞれのオーダーレコードで、
DATEDIFF('month',[オーダー日],[前回購入日]>1なら1か月以内購入、
>6なら6か月以内購入 と言った設定でいけるかとおもったのですが、
顧客名ごとの各月ごとの前回購入日の定義が難しいです。
よろしくお願い致します。
添付作成してみました。
「確認用」シートをまず完成させて、それを何とか棒グラフに出来ないか、というアプローチでやっています。
基本的な考え方は、Ogawaさんのおっしゃる通り
DATEDIFF('month',[オーダー日],[前回購入日]>1なら1か月以内購入、
>6なら6か月以内購入
なので、以下2つの計算フィールドを作成しています。
[前回購入からの期間]
DATEDIFF("month", [Last Time Order], attr([オーダー日]))
[初回・再来区分]
if ISNULL([前回購入からの期間]) then "初回"
elseif [前回購入からの期間] <= 6 then "6ヶ月以内購入"
elseif [前回購入からの期間] <= 12 then "1年以内購入"
else "1年以上前購入"
end
今回難しいのは、[Last Time Order]をLOOKUP関数で算出しているところですね。
LOOKUP関数のようなTableauの表計算関数は、名前通り「表」にしたときに、何かを基準に1つ前を見たり、1つ後ろを見たり…という関数です。
ですので、表の形式を変更したら(例えばクロス集計→棒グラフ)、表にディメンションを追加したら、どこを基準にどこを見にいくのか設定し直す必要があります。
「サンプル」シートに配置されている[初回・再来区分]を右クリック→「表計算の編集」メニューを色々いじって確認してみてください。
もし可能であれば、元データの方で「前回購入日」や「初回・再来区分」の算出をしてしまって、各レコードごとに確定した値を持ってしまえればベストです。