【Tableau】顧客ごとの初回購入日を取得する方法をわかりやすく解説!

今回は「顧客ごとの初回購入日を取得する」計算フィールドの作り方について解説したいと思う。

顧客ごとの初回購入日を算出する計算フィールドは下記のようなコホート分析を行う時によく活用される。

「顧客が初回購入してから2回目に購入するまでの経過日数を確認したい!」

色々と応用が利く方法なので覚えておくと便利だ。

スポンサーリンク

顧客ごとの初回購入日を算出する方法

顧客ごとの初回購入日を算出する計算フィールドは比較的簡単に作成できるが、LOD表現の理解が必要だ。

今回は下記のサンプルスーパーストアのデータを使用して顧客ごとの初回購入日を取得したいと思う。

サンプルスーパーストア

Step1:どのデータを使用して計算フィールドを作成するかを整理する

まず顧客ごとの初回購入日を取得するには、上記のデータでどのカラム(列の名前→オーダー日や顧客名などのこと)を使用すれば実現できるかを検討する。

どのカラムを使用すべきかを検討する際に下記のように要素を分解してみると整理しやすい。

顧客ごとの初回購入日①

  • 初回購入日を顧客ごとに分ける必要があるから、「顧客id」を使用する
  • 購入日はサンプルスーパーストアではオーダー日に該当するから、「オーダー日」を使用する
  • 初回購入日は「オーダー日」の中で最小の日付(例えば、オーダー日が12月1日、12月2日の2つあったら、12月1日を取得するということ)を取得すればいいから、最小値を取得するMIN関数を使用する

初回購入日②

これでどのデータを使用すればいいかを整理できたので、実際に計算フィールドを使用して顧客ごとの初回購入日を取得していく。

Step2:計算フィールドの作成

実際に計算フィールドで作成する際の計算式は下記のようになる。

初回購入日③

この計算式の意味としては下記だ。

初回購入日③

詳しくは他の記事でご紹介する予定だが、LOD表現のFIXED関数は下記特徴がある。

「どのディメンションでデータをまとめるかを指定し、そのディメンションでデータの粒度を固定する」

今回は顧客idごとにオーダー日をまとめたいから、FIXED [顧客id] と指定しているのだ。

実際に作成した「顧客ごとの初回購入日」を表示してみると下記のようになる。顧客idごとのオーダー日をそのまま表示したものと比べると違いが分かりやすいと思う。

 

初回購入日④

上図左側では通常の「オーダー日」フィールドを行シェルフに入れているので、各顧客Idごとのオーダー日がすべて表示されている(その顧客がそれぞれの日に購入しているという意味だ)。

一方で、上図右側では顧客ごとの初回購入日の計算フィールドを行シェルフに追加したので、各顧客Idのオーダー日の中で最も早い日付のみが表示されている。

これが顧客ごとの初回購入日の計算方法だ。

LOD表現を使わない方法
LOD表現を使わずに、下記のようなオーダー日の最小値を取得する計算フィールドを作成し、顧客ごとの初回購入日を表現する方法もある。
顧客の初回購入日⑤
下記のようにFIXED関数を使用した「顧客ごとの初回購入日」と表示だけは同じにすることが出来る。
顧客の初回購入日⑥
ただし、これだと顧客ごとの初回購入日と2回目購入日の日付差を計算するなどの応用が利かないので、FIXED関数を使用した顧客ごとの初回購入日の計算方法を覚えておくのがおすすめだ。

まとめ

今回は顧客ごとの初回購入日の計算方法についてご紹介した。

FIXED関数を使用して計算フィールドを作成し、他の計算にそのフィールドを使用するってことが、実務でよくあるので、LOD表現の理解も併せて覚えておいてもらえるといいと思う。

スポンサーリンク
おすすめの記事