Googleスプレッドシートで始めるマーケットバスケット分析
本記事ではGoogleスプレッドシートだけで、特定の商品Aを起点に「一緒に買われやすい商品」を抽出し、購買の結びつきの強さも確認します。
目次
はじめに
本記事では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) で結びつきの強さを比較する
この結果をもとに、レコメンド、セット提案、同梱訴求などの施策に落とし込めます。
