今回は「顧客ごとの初回購入日を取得する」計算フィールドの作り方を解説する。
顧客ごとの初回購入日を算出する計算フィールドは
「顧客が初回購入してから2回目に購入するまでの経過日数を確認したい!」
というようなコホート分析を行う時によく活用される。
色々と応用が利く方法なので覚えておくと便利だ。
顧客ごとの初回購入日を算出する方法
顧客ごとの初回購入日を算出する計算フィールドは比較的簡単に作成できる。
ただし、LOD表現の1つであるFIXED関数の理解が必要だ(後ほど説明する)
今回は下記のサンプルスーパーストアのデータを使用し、「顧客ごとの初回購入日」を取得したいと思う。
Step1:どのカラムを使用するかを整理する
まず顧客ごとの初回購入日を取得するには、上記のデータでどのカラム(列の名前→オーダー日や顧客名などのこと)を使用すれば実現できるかを検討する。
どのカラムを使用すべきかを検討する際に下記のように要素を分解してみると整理しやすい。
- 初回購入日を顧客ごとに分ける必要があるから、「顧客id」を使用する
- 購入日はサンプルスーパーストアではオーダー日に該当するから、「オーダー日」を使用する
- 初回購入日は「オーダー日」の中で最小の日付を取得すればいいから、最小値を取得するMIN関数を使用する
- 例えば、オーダー日が12月1日と12月2日の2つある場合、最も小さい12月1日を取得する、ということだ
これでどのデータを使用すればいいかを整理できた。
次に、実際に計算フィールドを使用して顧客ごとの初回購入日を算出していく。
Step2:計算フィールドの作成
実際に計算フィールドで作成する際の計算式は下記のようになる。
この計算式の意味としては下記だ。
上記計算式で使用しているFIXED関数は下記特徴がある。
「どのディメンションでデータをまとめるかを指定し、そのディメンションでデータの粒度を固定する」
今回は顧客idごとにオーダー日をまとめたいので、FIXED [顧客id] と指定している。
実際に作成した「顧客ごとの初回購入日」を表示してみると下記のようになる。
顧客idごとのオーダー日をそのまま表示したものと比べると違いが分かりやすいと思う。
上図左側では通常の「オーダー日」フィールドを行シェルフに入れている。
そのため、各顧客Idごとのオーダー日がすべて表示されている。
一方で、上図右側では顧客ごとの初回購入日の計算フィールドを行シェルフに追加している。
そのため、各顧客Idのオーダー日の中で最も早い日付のみが表示されている。
これが顧客ごとの初回購入日の計算方法だ。
まとめ
今回は顧客ごとの初回購入日の計算方法についてご紹介した。
FIXED関数は実務で非常によく使うので、LOD表現の理解と併せて覚えておくとすごく役立つはずだ。
また、日付を操作したり、調整する関数もFIXED関数と併せて覚えておくと更に応用が利くようになるのでおすすめだ。
他のTableauに関するよくある質問は下記でまとめているので少しでも参考になれば幸いだ。