Googleスプレッドシートで始めるマーケットバスケット分析

本記事ではGoogleスプレッドシートだけで、特定の商品Aを起点に「一緒に買われやすい商品」を抽出し、購買の結びつきの強さも確認します。

 ・対象: 商品Aを買った受注

 ・出す指標併売回数(併売受注数) と 併売率(= 信頼度 / Confidence: A→B) と Lift(リフト値)

 ・想定するデータの列: A列 受注コード / B列 商品コード / C列 商品名

前提データ

1つの受注コードに複数の商品行がぶら下がる明細データを想定します。

今回は「商品A起点」で見る

全ペア(A×B)を作る方法もありますが、実務では 「この商品に何が一緒に買われているか」 を知りたいことが多いので、ここでは商品A起点で進めます。

指標(今回使う3つ)

①併売回数(併売受注数): 商品Aと商品Bが同時購入された受注数(回数)

②併売率(= 信頼度 / Confidence: A→B): 「Aを買った受注」のうち「Bも買った受注」の割合

 併売率(Confidence: A→B) = 併売受注数(A∩B) / Aを含む受注数(A)

③Lift(リフト値): 「Aを買ったときにBも買われる確率」が、Bの通常の購入確率と比べてどれだけ高いか(低いか)

 Lift(A→B) = Confidence(A→B) / Support(B)

 Support(B) = Bを含む受注数(B) / 全受注数

 Lift > 1 ならAとBは一緒に買われやすく、Lift = 1 ならAとBの購入は独立に近いと解釈できます。

手順(全体像)

①受注×商品をユニークに整形する

②商品Aを含む受注コードを抽出する

③商品A受注に含まれる商品を集計して「同時購入ランキング」を作る

④併売回数と信頼度(A→B)を計算する

⑤Support(B)を出して Lift(A→B)を計算する

0. 事前に「商品A」を決める

例として、商品Aを P001(コーヒー) とします。

  ・商品Aコード: P001

  ・以降の式中の P001 は、分析したい商品コードに置き換えてください。

1. データを整える(受注×商品のユニーク化)

同一受注内で同じ商品が複数行ある場合(数量明細など)は集計が歪むため、まず 受注×商品をユニークにします。

新しいシート(例: 整形)の A1 に入れます。

=UNIQUE(元データ!A:C)

2. 商品Aを含む受注コードを抽出する

新しいシート(例:A受注 )の A1 に入れます。

=UNIQUE(FILTER(整形!A:A, 整形!B:B="P001"))

これで「商品Aを買った受注コード」の一覧ができます。

3. 商品A受注に含まれる明細を取り出す

新しいシート(例:A明細 )の A1 に入れます。

=UNIQUE(FILTER(整形!A:B, ISNUMBER(MATCH(整形!A:A, A受注!A:A, 0))))

このシートには、商品Aを含む受注に入っていた全商品(A自身も含む)が並びます。

4. 同時購入ランキング(併売回数)を作る

A明細 を商品コード単位で集計します。

新しいシート(例: 併売集計)の A1 に入れます。

※and Col2 <> ‘P001’で、商品A自身がランキングに出るのを除外しています。

=QUERY(A明細!A:B,
"select Col2, count(Col1) where Col2 is not null and Col2 <> 'P001' group by Col2 label count(Col1) '併売受注数'",
0
)

5. 併売率(A→B)を計算する

5-1. Aを含む受注数(分母)

A受注 の件数です。

=COUNTA(A受注!A:A)

5-2. 併売率(A→B)

併売受注数を、A受注数で割ります。

(例: 併売集計 の B列が併売受注数の場合、C列に)

=B2 / COUNTA(A受注!A:A)

6. Lift(リフト値)を計算する

Lift は「AとBが独立に買われている場合」と比べて、A→B がどれくらい強いかを見る指標です。

 ・Lift(A→B) = Confidence(A→B) / Support(B)

 ・Support(B) = Bを含む受注数 / 全受注数

6-1. 全受注数(分母)

ユニーク化済みの 整形 から受注コードのユニーク数を数えます。

=COUNTUNIQUE(整形!A:A)

6-2. Support(B)

Support(B) は 「Bが含まれる受注数 / 全受注数」 なので、「明細行数」ではなく 受注コードのユニーク数 で数えます。

(例: 併売集計 の A列が商品コードの場合)

=COUNTUNIQUE(FILTER(整形!A:A, 整形!B:B = A2)) / COUNTUNIQUE(整形!A:A)

6-3. Lift(A→B)

(例: C列が Confidence、D列が Support(B) の場合、E列に)

=C2 / D2

実務での読み方(コツ)

・信頼度が高い商品は「合わせ買いされやすい」

 セット提案、レコメンド、同梱訴求の候補になります

・併売回数が高くても信頼度が低い場合がある

 商品Aの購入数が多いと、併売回数が増えて見えるためです

・併売率(Confidence)は時系列でも追う

 販促・季節性・価格改定・在庫・導線変更などで変動するため、施策の効果検証や異常検知に使えます

まとめ

Googleスプレッドシートだけでも、次の流れで「商品Aと一緒に買われやすい商品」を可視化できます。

・明細データを 受注×商品でユニーク化 して集計ブレを防ぐ

・商品Aを含む受注 を抽出し、その受注に含まれる商品を集計する

・併売回数 と 併売率(Confidence: A→B) を出してランキング化する

・追加で Support(B) を算出し、Lift(A→B) で結びつきの強さを比較する

この結果をもとに、レコメンド、セット提案、同梱訴求などの施策に落とし込めます。

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人

データドリブンに関するお悩みはまずはSiNCEにご相談ください

目次