顧客分析の精度を上げる!初回購入日やリピートの悩みを解決する必見テクニック【Tableau / Looker Studio/ Power BI 】|ウェブ部

顧客分析の精度を上げる!初回購入日やリピートの悩みを解決する必見テクニック【Tableau / Looker Studio/ Power BI 】

Google Cloud/BI

公開日:

  • Facebook
  • x
  • LINE

はじめに

「顧客ごとの『最初の購入日』を一覧で簡単に出したい」
「同じ商品を何度も買ってくれる『リピート顧客』を効率的に見つけたい」
「個々の購入履歴の横に、その顧客の『平均購入単価』も一緒に表示させたい」
BIツールを使ってデータ分析を行う中で、このような「顧客」を軸とした少し複雑な集計に頭を悩ませた経験はありませんか?
日々の売上データは時系列で記録されていますが、分析の目的によっては「顧客ごと」という、データ全体の粒度とは異なる視点での集計が必要になる場面があるかと思います。こうした分析は、顧客のLTV(Life Time Value: 顧客生涯価値)を向上させるための施策や、よりパーソナライズされたマーケティング戦略を立案する上で欠かせません。
本記事では、そうした「特定の粒度」でデータを集計し、分析の幅を格段に広げるための計算手法について、代表的な3つのBIツール(Tableau、Looker Studio、Power BI)での実装方法を交えながら、分かりやすく解説していきます。

その集計、なぜ難しい?顧客軸での分析を可能にする計算式の仕組み

なぜ「顧客ごとの初回購入日」を出すのが、単純な集計では難しいのでしょうか。
通常のBIツールにおける集計(例えば、売上の合計や注文件数のカウント)は、グラフや表で表示されているディメンション(軸)の粒度に依存します。例えば、「商品カテゴリ」を軸に売上合計を表示すれば、カテゴリごとの集計結果が得られます。
しかし、「顧客ごとの初回購入日」を、個々の注文IDや商品名が表示されている明細レベルの表に表示させたい場合、この原則が壁となります。明細レベルの表に単純に購入日の「最小値」を計算させても、その行自体の購入日が表示されるだけで、「その顧客のすべての取引における最初の購入日」は計算できません。
そこで登場するのが、表示粒度を意図的に”無視”して、指定した粒度で集計を行うという少し特殊な計算方法です。

明らかにしたいこと: 顧客一人ひとりの初回購入日や、特定の商品の購入回数
分析の課題: 明細データを見ながらも、「顧客」という明細よりも大きな単位での集計結果を参照したい
解決策(計算の仕組み): 「このディメンション(例:顧客ID)を基準に集計してね」とツールに明確に指示を与える計算式を使う

この計算を行うと、例えば「顧客ID: Aさん」の行には、どの行にも同じ「Aさんの初回購入日」という値が保持されるようになります。これにより、個々の購入が初回購入日から何日後のものなのか、といったより深い分析が可能になるのです。
TableauではこれをLOD (Level Of Detail)表現、Power BIではDAX (Data Analysis Expressions) 関数を使って実現します。それでは、各ツールでの具体的な書き方を見ていきましょう。

ツール別!実践的な計算式の書き方

ここでは、最も代表的なユースケースである「顧客ごとの初回購入日」と「顧客ごと・商品ごとの購入回数」の2つを例に、各ツールでの実装方法をご紹介します。

Tableau:LOD表現の1つである FIXED で意のままに集計

Tableauにおける粒度制御の代表格がFIXEDです。これは「指定したディメンションに関わらず、常にそのディメンションで集計した値を返す」という関数です。

▼ 顧客ごとの初回購入日を計算する
新しい計算フィールドを作成し、以下の式を記述します。

// 計算フィールド名: 顧客別 初回購入日
{ FIXED [顧客ID] : MIN([購入日]) }

 { }: これがLOD表現であることを示す記号です。
 FIXED [顧客ID]: 「顧客ID」を基準に集計します、という宣言です。ビューに他のディメンション(例えば商品名やカテゴリ)があったとしても、それらをすべて無視し、顧客IDだけでグループ化します。
 MIN([購入日]): そのグループ(ここでは各顧客)における「購入日」の最小値を計算します。
この計算フィールドをビューに追加すると、すべての行に、その行の顧客IDに紐づく初回購入日が表示されるようになります。

▼ 顧客ごと・商品ごとの購入回数を計算する
ある顧客が特定の商品を何回購入したか(リピート分析の基礎となります)を計算する場合は、FIXEDで指定するディメンションを2つに増やします。

// 計算フィールド名: 顧客・商品別 購入回数
{ FIXED [顧客ID], [商品ID] : COUNTD([注文ID]) }

 FIXED [顧客ID], [商品ID]: 「顧客ID」と「商品ID」を「,」でつなぐことで、2つの組み合わせを基準に集計してくれます(3つ以上も同様に「,」でつなげばOK)。
COUNTD([注文ID]): その組み合わせにおけるユニークな「注文ID」の数を数えます。もし注文IDが購入のたびに発行されるものであれば、COUNTでも構いません。
この計算結果を使えば、「購入回数が2回以上」といったフィルターをかけることで、特定商品をリピート購入している優良顧客を簡単に抽出できます。

Looker Studio: 「データ統合」機能で代替する

Looker Studio(旧Googleデータポータル)には、TableauのFIXEDに直接対応するような単一の関数は備わっていません。しかし、「データ統合(ブレンディング)」という別の機能を使うことで、同様の集計が実現可能です。データ統合については、今後別の記事で詳しくご説明しますので、乞うご期待ください。

Power BI: DAX関数である CALCULATE と ALLEXCEPT の組み合わせ

Power BIでは、DAX関数という数式言語を用いて計算を行います。TableauのFIXEDと考え方が似ているのが、CALCULATE関数とALLEXCEPT関数の組み合わせです。
ALLEXCEPT関数は、「指定した列以外のフィルターコンテキストをすべて削除する」という強力な機能を持っています。

▼ 顧客ごとの初回購入日を計算する
[新しいメジャー] または [新しい列] として、以下のDAX式を作成(記述)します。この場合は各行に値を保持させたいので「新しい列」が適しています。

// 新しい列名: 顧客別 初回購入日
顧客別 初回購入日 =
CALCULATE(
 MIN(‘売上テーブル'[購入日]),
 ALLEXCEPT(
  ’売上テーブル’,
  ’売上テーブル'[顧客ID]
 )
)

CALCULATE( … ): DAXにおける最も重要な関数の一つで、第一引数の計算式(ここでは「 MIN(‘売上テーブル'[購入日])」)を、第二引数以降で指定されたフィルター条件(ここでは「ALLEXCEPT(‘売上テーブル’, ‘売上テーブル'[顧客ID])」)の下で評価します。
MIN(‘売上テーブル'[購入日]): 計算したい式、ここでは購入日の最小値です。
ALLEXCEPT(‘売上テーブル’, ‘売上テーブル'[顧客ID]): これがフィルター条件です。「’売上テーブル’に対するフィルターを評価する際、’顧客ID’列に対するフィルターだけは有効にして、それ以外の列(商品名、日付など)にかかっているフィルターはすべて無視してください」という意味になります。
結果として、レポート上でどのようなスライサーやフィルターが適用されていても、この計算列は常に「顧客ID」のみでグルーピングされた「購入日」の最小値を返します。

▼ 顧客ごと・商品ごとの購入回数を計算する
こちらも同様に、ALLEXCEPTで残したいフィルターコンテキストを2つ指定します。

// 新しい列名: 顧客・商品別 購入回数
顧客・商品別 購入回数 =
CALCULATE(
 COUNTROWS(‘売上テーブル’),
 ALLEXCEPT(
  ’売上テーブル’,
  ’売上テーブル'[顧客ID],
  ’売上テーブル'[商品ID]
 )
)

COUNTROWS(‘売上テーブル’): テーブルの行数をカウントします。
ALLEXCEPT(…, ‘売上テーブル'[顧客ID], ‘売上テーブル'[商品ID]): 「顧客ID」と「商品ID」のフィルターだけを残して、行数を数えるように指示しています。

まとめ

今回ご紹介したTableauのFIXED関数、Power BIのALLEXCEPT関数、そして別途ご紹介するLooker Studioのデータ統合は、一見すると少し複雑に感じるかもしれません。しかし、これらは顧客中心のデータ分析を行う上で避けては通れない、非常に便利な集計方法です。
これらの手法をマスターすれば、
・ 初回購入から2回目購入までの平均日数
・ 顧客セグメントごとのLTV
・ 特定商品を購入した顧客が、次に何を購入しているかのバスケット分析
など、これまで手が出せなかった一歩進んだ分析が可能になります。
まずは、ご自身のデータを使って、この記事の計算式を見様見真似ながら試してみてください。試行錯誤する中で、データの見え方が大きく変わり、顧客一人ひとりの購買行動がより鮮明に浮かび上がってくるはずです。ぜひ、使ってみてはいかがでしょうか。

  • Facebook
  • x
  • LINE

データ統合・活用にお悩みのみなさまへ

メディックスでは、企業において重要なデータの統合から可視化、課題の発見に役立つデータ分析、改善施策の展開まで、データ活用マーケティングのすべての工程をトータルでサポートしています。


ご相談・お問い合わせはこちら

関連記事