マーケティング
2026/04/08
尾花 知典

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) で結びつきの強さを比較する


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


New call-to-action