Skip to main content

先日ご教授して頂いた前回来店日の関連するのですが

これはまた違う形で表示が必要な様で質問させていただきます。

 

その月にオーダーした顧客が前回購入した日付から再来(前回購入からの期間)で分けていくにはどうすれば良いでしょうか。

初めて購入=初回

6か月以内に再度購入=6か月以内購入

12か月以内に再度購入=1年以内購入

それより長い=1年以上前購入

 

列は2016年1月、 2月、 3月・・・

行は 初回

    6か月以内購入

    1年以内購入

    1年以上前購入

 

でそれぞれの顧客数を表示したいです。

それぞれのオーダーレコードで、

DATEDIFF('month',[オーダー日],[前回購入日]>1なら1か月以内購入、

                                                            >6なら6か月以内購入  と言った設定でいけるかとおもったのですが、

顧客名ごとの各月ごとの前回購入日の定義が難しいです。

 

よろしくお願い致します。

5 respostas
  1. 20 de set. de 2016, 07:31

    添付作成してみました。

    「確認用」シートをまず完成させて、それを何とか棒グラフに出来ないか、というアプローチでやっています。

     

    基本的な考え方は、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つ後ろを見たり…という関数です。

    ですので、表の形式を変更したら(例えばクロス集計→棒グラフ)、表にディメンションを追加したら、どこを基準にどこを見にいくのか設定し直す必要があります。

    「サンプル」シートに配置されている[初回・再来区分]を右クリック→「表計算の編集」メニューを色々いじって確認してみてください。

     

    もし可能であれば、元データの方で「前回購入日」や「初回・再来区分」の算出をしてしまって、各レコードごとに確定した値を持ってしまえればベストです。

0/9000