Scenka z życia: „Dlaczego klienci biorą to razem z tamtym?”
Właściciel niewielkiego sklepu internetowego z artykułami domowymi zauważył coś dziwnego: gdy rośnie sprzedaż koszy na pranie, nagle znikają też określone środki do prania. Czuje, że te produkty „chodzą parami”, ale gdy siada do Excela, kończy z kolejną tabelką obrotów miesięcznych i top 10 produktów. Nic, co naprawdę pokazuje, co klienci wkładają do koszyka razem.
To typowa sytuacja: dane transakcyjne sprzedaży lądują w arkuszu, ale analiza kończy się na prostym rankingu. Tymczasem analiza koszyka zakupowego w Excelu pozwala odpowiedzieć na konkretną, biznesową potrzebę: które produkty współwystępują w tych samych transakcjach, bez pisania skryptów, bez Power Query i bez zatrudniania analityka. Wystarczy dobrze przygotowana tabela i kilka sprytnych układów – głównie przy użyciu filtrów, formuł i tabel przestawnych.
Na końcu chodzi o przełożenie surowego arkusza na decyzje: które produkty pokazać w sekcji „często kupowane razem”, co ułożyć obok siebie na półce, jakie zestawy (bundles) mają sens, a których kombinacji lepiej nie promować, bo praktycznie nie występują.
Jakie dane są potrzebne do analizy koszyka zakupowego w Excelu
Minimalny zestaw kolumn do analizy współwystępowania
Do przeprowadzenia analizy koszyka zakupowego w Excelu potrzeba innych danych niż do standardowego raportu sprzedaży. Kluczowa różnica: liczy się każda pozycja na paragonie / zamówieniu, a nie zsumowany obrót za dzień czy miesiąc.
Minimalna struktura tabeli do analizy par produktów wygląda tak:
- ID transakcji (paragon, zamówienie, numer koszyka online) – wspólny identyfikator dla wszystkich pozycji z tego samego zakupu;
- Data – dzień/godzina zakupu (przy analizie koszyka często nie jest krytyczna, ale bywa przydatna do filtrowania okresów);
- Produkt – nazwa produktu lub kod (najlepiej mieć obie kolumny: kod jako identyfikator, nazwę jako opis);
- Ilość – ile sztuk danego produktu w tej transakcji;
- Kwota – wartość pozycji (cena jednostkowa × ilość).
Każdy wiersz w takiej tabeli to jedna pozycja w koszyku: pojedynczy produkt w ramach konkretnej transakcji. To fundament, bez którego żadna analiza par produktów w Excelu nie zadziała poprawnie.
Różnica między danymi sprzedaży a danymi do analizy koszyka
W wielu firmach raport sprzedaży wygląda tak: wiersz = produkt, kolumny = miesiące, a komórki to sprzedaż ilościowa lub wartościowa. Taka postać jest świetna do:
- analizy trendów (rośnie/spada sprzedaż produktu),
- porównywania asortymentu między sobą,
- prognozowania popytu w skali makro.
Do analizy koszyka zakupowego w Excelu taki raport jest jednak prawie bezużyteczny, bo nie ma w nim informacji o tym, co było w tym samym koszyku. Potrzebny jest układ: wiersz = pozycja paragonu, a nie podsumowanie per produkt czy per dzień.
Inaczej mówiąc: raport dzienny sprzedaży powie, że w danym dniu sprzedało się 50 sztuk kawy i 30 sztuk mleka. Tylko tabela transakcyjna pokaże, w ilu transakcjach kawa i mleko pojawiły się razem. To właśnie ta informacja buduje analizę produktów kupowanych razem.
Przykładowa struktura tabeli źródłowej
Niewielki wycinek prawidłowo przygotowanej tabeli może wyglądać tak (uproszczony przykład):
| ID_transakcji | Data | Kod_produktu | Nazwa_produktu | Ilość | Kwota |
|---|---|---|---|---|---|
| 1001 | 2024-01-10 | P001 | Kawa 250 g | 1 | … |
| 1001 | 2024-01-10 | P010 | Mleko 1 l | 2 | … |
| 1002 | 2024-01-10 | P001 | Kawa 250 g | 1 | … |
| 1002 | 2024-01-10 | P020 | Cukier 1 kg | 1 | … |
Widać, że transakcje 1001 i 1002 zawierają kawę, ale z innymi dodatkowymi produktami. Analiza koszyka będzie polegała przede wszystkim na zliczaniu takich współwystąpień produktów w ramach jednego ID_transakcji.
Jak ocenić, czy obecny plik nadaje się do analizy koszyka
Przed rozpoczęciem pracy warto przeprowadzić krótką kontrolę jakości źródła. Arkusz nadaje się do analizy par produktów, jeśli:
- każdy wiersz to jedna pozycja sprzedaży (nie ma zbiorczych wierszy typu „razem paragon”);
- jest wyraźna kolumna z ID transakcji (bez „dziur”, bez mieszania numerów);
- produkty są opisane w sposób spójny – ta sama nazwa/kod zawsze oznacza ten sam towar;
- nie ma sum w środku danych (podwójne nagłówki, wiersze „RAZEM”);
- ilość i kwota są liczbami, a nie tekstem.
Jeżeli plik sprzedażowy zawiera tylko jedną linię na paragon (z sumą kwot), albo dane są zagregowane do poziomu dnia i produktu, trzeba wrócić do systemu sprzedażowego i poprosić o eksport danych szczegółowych, po pozycjach.
Excel a duże wolumeny danych – realne ograniczenia
Standardowy Excel ma ograniczenie ok. miliona wierszy. Dla wielu małych i średnich biznesów to zaskakująco dużo – spokojnie obejmie kilka lat sprzedaży detalicznej. Jednak przy:
- sklepach internetowych z tysiącami zamówień miesięcznie,
- sieciach sklepów z wieloma punktami,
- systemach, które generują bardzo drobne pozycje,
warto rozważyć pracę na próbie danych (np. ostatnie 3–6 miesięcy) albo na wybranej kategorii produktów. Excel świetnie nadaje się do zbudowania metody analizy koszyka, którą później można przenieść do innych narzędzi, jeśli dane urosną za bardzo.
Przygotowanie danych krok po kroku – od raportu sprzedaży do czystej tabeli
Import z systemu sprzedażowego lub pliku CSV
Większość systemów POS, ERP czy platform e‑commerce umożliwia eksport danych do CSV lub Excela. Najprostsza droga:
- Eksport pozycji sprzedaży (ang. line items / order items) – a nie tylko nagłówków zamówień.
- Zapis do pliku CSV lub XLSX.
- Otwarcie w Excelu i szybkie sprawdzenie podstawowych rzeczy: poprawne kolumny, brak „rozjechanych” wierszy.
Przy imporcie CSV zdarzają się typowe problemy: złe kodowanie polskich znaków, niewłaściwy separator (przecinek vs średnik), liczby wczytane jako tekst. Lepiej poświęcić kilka minut na poprawny import (np. przez Dane → Z tekstu/CSV), niż później walczyć z formułami, które nie rozpoznają liczb.
Oczyszczanie: puste wiersze, dziwne rekordy, codename produktów
Po imporcie przechodzimy do prostego, ale kluczowego porządkowania:
- Usuń puste wiersze między danymi – mogą zaburzać działanie filtrów i tabel przestawnych.
- Sprawdź, czy w środku danych nie ma dodatkowych nagłówków (częsty efekt łączenia raportów z kilku plików).
- Znajdź i usuń wiersze, które nie są sprzedażą (np. korekty bez produktu, notatki tekstowe, linie „RAZEM”).
- Sprawdź spójność nazw produktów – jeśli w tabeli pojawiają się warianty typu „kawa 250g”, „Kawa 250 g”, „Kawa 250G”, dobrze je ujednolicić, choćby prostym wyszukaj/zamień.
Warto też przelecieć kolumnę z ID transakcji i sprawdzić, czy nie ma dziur typu „ID brak”, „0”, „test”. Takie rekordy najlepiej wykluczyć z analizy, bo nie da się ich przypisać do jednego, logicznego koszyka.
Konwersja na Tabelę (Ctrl+T) – mała rzecz, duże ułatwienie
Po wstępnym uporządkowaniu dobrą praktyką jest zamiana zakresu danych na Tabelę Excela (skrót Ctrl+T lub polecenie Wstaw → Tabela). Daje to kilka konkretnych korzyści w analizie koszyka zakupowego:
- automatyczne rozszerzanie się zakresu przy dopisywaniu nowych wierszy (ważne przy odświeżaniu raportów),
- nazwane kolumny (łatwiejsze odwołania w formułach),
- wbudowane filtrowanie po każdym polu,
- większa odporność na błędy przy tworzeniu tabel przestawnych (zawsze biorą aktualny zakres).
Po utworzeniu Tabeli dobrze nadać jej sensowną nazwę (np. Sprzedaz) w Narzędziach tabel. Ułatwi to później korzystanie z funkcji takich jak LICZ.WARUNKI czy SUMA.WARUNKÓW oraz budowanie raportów.
Kontrola duplikatów i spójności ID transakcji
Jednym z częstszych źródeł błędnych wniosków w analizie par produktów Excel są duplikaty pozycji lub błędne ID transakcji. Warto przeprowadzić kilka szybkich testów:
- Posortuj dane po ID_transakcji i dacie – łatwo zauważyć „podejrzane” powtórzenia identycznych linii.
- Użyj funkcji Usuń duplikaty (Dane → Usuń duplikaty) na kombinacji kolumn: ID_transakcji + Kod_produktu + Ilość – jeśli system zdublował pozycję, zostanie usunięta.
- Sprawdź, czy ID_transakcji jest wypełnione wszędzie tam, gdzie jest sprzedaż – puste ID to koszyk widmo.
Porządna tabela wejściowa minimalizuje ryzyko, że Excel pokaże silną korelację produktów tylko dlatego, że któryś rekord powielił się kilkanaście razy. Tu mały nakład pracy zwraca się wielokrotnie na etapie interpretacji wyników.
Dlaczego jakość danych liczy się bardziej niż zaawansowana formuła
Błędna struktura źródła powoduje, że nawet najbardziej „sprytne” formuły do analizy koszyka nie mają sensu. Jeśli:
- ID transakcji miesza dwa różne paragony,
- produkt ma trzy różne nazwy,
- w środku tabeli są wiersze sum,
to wynik analizy współzakupów będzie tylko iluzją. Dlatego pierwszy mini‑wniosek: lepsza prosta analiza na dobrze przygotowanej tabeli niż finezyjne formuły na bałaganie.
Kluczowe pojęcia: transakcja, pozycja, produkt, współwystępowanie
Transakcja i pozycja – dwa poziomy, które trzeba odróżnić
W analizie koszyka zakupowego wszystkie obliczenia opierają się na tym, jak zdefiniowana jest transakcja i pozycja:
- Transakcja – pojedynczy zakup klienta, czyli cały paragon, jedno zamówienie w sklepie internetowym, koszyk online zatwierdzony do płatności.
- Pozycja – linia na paragonie, czyli jeden produkt w konkretnej ilości, przypisany do danej transakcji.
W Excelu każda pozycja to wiersz tabeli. Wszystkie wiersze z tym samym ID_transakcji tworzą razem jeden koszyk. Analiza par produktów polega na liczeniu, jak często dwa produkty znajdują się w obrębie tych samych koszyków.
Współwystępowanie produktów – intuicja bez żargonu algorytmicznego
Pojęcie, które będzie się przewijać, to współwystępowanie produktów. W prostych słowach: jak często produkt A pojawia się w tej samej transakcji co produkt B. Można na to patrzeć na kilka sposobów:
- ile razy A i B były razem w koszyku,
- w ilu procentach transakcji z A pojawił się też B,
- w ilu procentach wszystkich transakcji wystąpiło jednocześnie A i B.
To pozornie drobna różnica, ale ma duże znaczenie przy interpretacji wyników. Co innego produkt popularny, który „występuje ze wszystkim”, a co innego produkt niszowy, który ma bardzo silne skojarzenie z jednym konkretnym towarem.
Często kupowane a mocno skojarzone – dwie różne miary
W praktyce przydają się dwie intuicyjne miary, które w literaturze nazywa się support i confidence, ale w Excelu nie trzeba używać tej terminologii.
Jak przełożyć „często razem” na proste wskaźniki w Excelu
Wyobraź sobie sytuację: kierownik sklepu mówi „klienci ciągle biorą tę kawę z tymi ciastkami”, a ty masz sprawdzić, czy to rzeczywiście reguła, czy tylko kilka głośnych przypadków. Excel ma być sędzią, ale pod warunkiem, że jasno nazwiesz, co liczysz.
Dla par produktów A i B da się policzyć kilka prostych liczb, które nie wymagają żadnej zaawansowanej analityki:
- liczba transakcji łącznie – ile jest wszystkich koszyków w analizowanym okresie,
- liczba transakcji z A – w ilu koszykach pojawił się produkt A,
- liczba transakcji z A i B – w ilu koszykach A i B wystąpiły razem,
- procent koszyków z A, w których jest też B – relacja „jak często A ciągnie za sobą B”.
W praktyce najczęściej interesuje właśnie to ostatnie: jeśli w większości koszyków z kawą pojawiają się też filtry, to mamy faktyczne skojarzenie, a nie tylko wysoką sprzedaż obu produktów.
Jak policzyć liczbę transakcji w Excelu bez duplikatów
Przy prostszych zestawach danych wystarczy informacja: „ile było koszyków?”. Najbardziej uniwersalny sposób w nowym Excelu to wykorzystanie formuły z unikatami:
- załóżmy, że kolumna z ID transakcji w Tabeli Sprzedaz nazywa się
[ID_transakcji], - w pustej komórce wpisz:
=LICZBA.WIERSZY(UNIQUE(Sprzedaz[ID_transakcji]))
Ta liczba będzie bazą, do której można odnosić dalsze obliczenia procentowe. Jeśli korzystasz ze starszego Excela bez funkcji UNIQUE, można użyć tabeli przestawnej, gdzie ID_transakcji wrzucasz do wierszy i liczysz po prostu ilość pozycji w wierszach.
Najprostsza analiza: pary produktów kupowane razem – metoda filtrowania i zliczania
Szybki test tezy „kawa + ciastko” przy pomocy filtrów
Czasem potrzebna jest błyskawiczna odpowiedź na jedno pytanie: czy konkretny produkt faktycznie „ciągnie” inny? Wtedy nie ma sensu od razu budować całej matrycy powiązań – wystarczy przefiltrować dane.
Przykład: chcesz sprawdzić, co klienci biorą razem z kawą mieloną 250 g.
- W Tabeli Sprzedaz włącz filtr na kolumnę z produktem (np. [Nazwa_produktu]).
- Ustaw filtr tak, aby pokazał tylko wiersze z produktem „Kawa mielona 250 g”.
- Zaznacz kolumnę z ID_transakcji filtrowanych wierszy i skopiuj ją do nowego arkusza.
- Na wklejonej liście usuń duplikaty (Dane → Usuń duplikaty) – otrzymasz listę unikalnych koszyków z kawą.
- Wróć do oryginalnej tabeli, wyłącz filtr po produkcie, ale włącz filtr niestandardowy po ID_transakcji: tylko te, które znajdują się na liście koszyków z kawą (można użyć filtrowania zaawansowanego lub formuł typu X.WYSZUKAJ do oznaczenia koszyków „z kawą”).
Po takim zawężeniu widzisz wszystkie produkty, które pojawiły się w transakcjach zawierających kawę. Teraz wystarczy policzyć, które z nich powtarzają się najczęściej.
Zliczanie towarzyszących produktów prostą tabelą przestawną
Najwygodniej przerobić zestaw „koszyków z kawą” na tabelę przestawną:
- Na przefiltrowanej tabeli (tylko transakcje z kawą) wstaw Tabelę przestawną.
- Przeciągnij Nazwa_produktu do obszaru Wiersze.
- Przeciągnij też Nazwa_produktu do obszaru Wartości, ustawiając Podsumuj według: Licznik.
- Na liście produktów odfiltruj samą kawę, żeby nie liczyć jej jako „towarzysza samej siebie”.
W efekcie otrzymujesz listę: produkt + ile razy pojawił się w koszyku, w którym była kawa. Posortowanie malejąco po liczniku pokazuje od razu najczęstszych „towarzyszy” wybranego produktu.
Kiedy zwykły licznik zawyża wrażenie siły powiązania
Jeśli jakiś towar jest „wszędobylski” (np. reklamówka, bułka zwykła), pojawia się w większości transakcji i siłą rzeczy będzie często w każdej analizie par. To nie zawsze oznacza, że ma unikalne powiązanie z kawą czy innym produktem – po prostu jest wszędzie.
W takich przypadkach przydaje się dodatkowy krok: policzyć, w ilu procentach transakcji z danym produktem pojawił się też towarzysz. W tabeli przestawnej można do tego użyć opcji Pokaż wartości jako → % sumy po kolumnie, odnosząc licznik produktu towarzyszącego do łącznej liczby koszyków z produktem wyjściowym (np. kawą).

Tabela przestawna jako silnik analizy koszyka – przygotowanie i logika
Dlaczego analiza koszyka „lubi” dane poziome
Standardowy raport sprzedaży ma strukturę: każda linia to osobny produkt, a ID_transakcji powtarza się w kilku wierszach. Dla człowieka to czytelne, ale dla tabeli przestawnej budującej pary produktów wygodniej jest, gdy koszyk jest jednym wierszem, a produkty rozłożone są po kolumnach.
W Excelu nie trzeba budować pełnej macierzy „1 kolumna = 1 produkt”, można jednak przygotować pośrednią strukturę, która przyspiesza liczenie współwystąpień.
Lista produktów w koszyku w jednym wierszu – prosty wariant tekstowy
W pierwszym kroku można spróbować podejścia „tekstowego”: każdy koszyk opisany jednym ciągiem produktów. Taki zapis nie nadaje się do automatycznego liczania wszystkich kombinacji, ale świetnie sprawdza się w analizie jakościowej (przegląd realnych koszyków).
- W nowym arkuszu wypisz unikalne ID_transakcji (np. z użyciem UNIQUE albo tabeli przestawnej).
- Dla każdego ID_transakcji zbuduj listę produktów, np. przy pomocy:
- w nowym Excelu:
=TEXTJOIN(", ";PRAWDA;FILTER(Sprzedaz[Nazwa_produktu];Sprzedaz[ID_transakcji]=A2)) - w starszym – przy użyciu funkcji zdefiniowanej użytkownika lub Power Query (łączenie wierszy w grupie).
- w nowym Excelu:
Otrzymasz tabelę: ID_transakcji + „kawa, ciastko, mleko 1l”. Już samo przejrzenie kilkudziesięciu takich wierszy często otwiera oczy na naturalne zestawienia, których wcześniej nikt nie nazywał.
Macierz koszyk–produkt z wartościami 0/1
Dla bardziej technicznej analizy przydaje się prosty model: wiersze to koszyki, kolumny to produkty, a w środku 1 oznacza „produkt był w koszyku”, 0 – „nie był”. Pełna macierz przy setkach produktów jest ciężka, ale dla jednej kategorii (np. 20–30 SKU) można ją spokojnie zbudować w Excelu.
Przykładowa procedura dla ograniczonej grupy produktów:
- W osobnym arkuszu wypisz w wierszach unikalne ID_transakcji.
- W kolumnach wypisz kody lub nazwy wybranych produktów (np. top 20 według sprzedaży).
- W komórce na przecięciu koszyka i produktu użyj formuły typu:
=--(LICZ.WARUNKI(Sprzedaz[ID_transakcji]=$A2;Sprzedaz[Kod_produktu]=B$1)>0)gdzie:
$A2– ID koszyka w danym wierszu,B$1– kod produktu z nagłówka kolumny.
- Skopiuj formułę na całą macierz.
Podwójny minus (--) zamienia wynik logiczny PRAWDA/FAŁSZ na 1/0. Taka siatka 1/0 jest idealna do dalszej obróbki tabelą przestawną lub prostymi formułami zliczającymi współwystąpienia.
Liczenie współwystąpień produktów na macierzy 1/0
Mając macierz koszyk–produkt, można policzyć, ile razy dwa towary pojawiły się w tym samym koszyku. Dla prostych, ręcznych analiz wystarczy druga tabela, w której w wierszach i kolumnach wpisujesz te same produkty, a w przecięciu liczysz wspólne „jedynki”.
Dla produktów w kolumnach B:E (np. 4 produkty) i koszyków w wierszach od 2 w dół, w komórce krzyżowej możesz użyć formuły:
=SUMA.ILOCZYNÓW( (B$2:B$1000=1) * ($B2:$B1000=1) )W praktyce formuła będzie nieco inna w zależności od ułożenia zakresów, ale idea jest stała: SUMA.ILOCZYNÓW liczy w ilu wierszach (koszykach) oba produkty mają wartość 1. Jeśli zamiast liczb 0/1 użyjesz liczby sprzedanych sztuk, możesz rozszerzyć analizę na ilości, choć do samego „współwystępowania” ważniejsza jest obecność niż ilość.
Tabela przestawna na macierzy – podwójne nagłówki
Macierz 1/0 można też poddać analizie tabelą przestawną, ale wymaga to lekkiej zmiany podejścia. Trzeba najpierw „spłaszczyć” macierz do formatu: koszyk – produkt – 0/1. Taki format jest naturalny dla Excela, a tabela przestawna świetnie liczy sumy po produktach.
Przykładowy schemat:
- z macierzy 1/0 tworzysz (np. Power Query lub formułami) trzykolumnową tabelę:
- ID_transakcji,
- Kod_produktu,
- Flaga (0 lub 1).
- budujesz Tabelę przestawną:
- Wiersze: Kod_produktu (produkt A),
- Kolumny: Kod_produktu (produkt B),
- Wartości: Suma Flagi dla kombinacji A–B (z dodatkowym warunkiem, by nie liczyć A z samym sobą).
Otrzymujesz dużą siatkę z liczbą współwystąpień A–B. Taki widok jest bardzo gęsty informacyjnie, ale pomaga wychwycić „kwadraty gorących pól” – produkty, które wzajemnie mocno się przyciągają.
Analiza par bez dodatkowych narzędzi – LICZ.WARUNKI w praktyce
Jeśli tabel przestawnych jest już za dużo, a potrzebujesz kilku szybkich wskaźników dla wybranych par, sprawdzi się klasyczne LICZ.WARUNKI. Na przykład:
- liczba koszyków z produktem A:
=LICZ.WARUNKI(Sprzedaz[ID_transakcji];"<>";Sprzedaz[Kod_produktu];"A") - liczba koszyków, w których były razem A i B:
=LICZ.JEŻELI(ZBIÓR_KOSZYKÓW_Z_A;"zawiera_B")
Druga formuła wymaga już pomocniczej listy koszyków, dlatego wygodniej jest zbudować zestawienie dwustopniowo: najpierw lista koszyków z A, potem zliczanie, ile z nich zawiera B (np. przez kolumnę pomocniczą „Czy_w_koszyku_B” i kolejne LICZ.WARUNKI). To nadal zwykły Excel, ale z dobrze przemyślanym przepływem krok po kroku, zamiast prób upchnięcia wszystkiego w jednej formule.
Jak wybrać sensowne progi i filtry, żeby nie utonąć w liczbach
Po pierwszych tabelach przestawnych często pojawia się frustracja: „Wszystko się niby z czymś łączy, tylko ja z tego nic nie rozumiem”. Ekran pełen liczb bez hierarchii zamienia analizę w losowe klikanie. W takiej sytuacji nie brakuje danych – brakuje prostych progów, które oddzielą szum od konkretu.
Minimalna liczba koszyków – odcięcie „przypadkowych znajomości”
Najprostsze sito to minimalna liczba wspólnych koszyków, w których pojawiła się dana para produktów. Pary, które pojawiły się razem tylko raz czy dwa, w typowym sklepie nie mają większego znaczenia – to raczej losowy zbieg okoliczności niż trwały zwyczaj klienta.
Praktyczny schemat pracy z progami:
- W tabeli z parą A–B (lub w macierzy) dodaj kolumnę Liczba_wspólnych_koszyków – to licznik współwystąpień.
- Dodaj też liczbę koszyków z produktem A oraz liczbę koszyków z produktem B (np. osobna tabela lub pola pomocnicze w tabeli przestawnej).
- Na tej podstawie zbuduj dodatkowe miary (np. udział % koszyków A, w których jest B).
- Dopiero na końcu zastosuj filtry:
- min. liczba wspólnych koszyków (np. 10+),
- min. udział % (np. B pojawia się w co najmniej 20% koszyków z A).
Takie dwuetapowe sito odrzuca egzotyczne pary, które w praktyce nigdy nie staną się ani regułą ekspozycyjną, ani pomysłem na promocję łączoną.
Filtr po kategorii – nie mieszajmy śrubek z ciastkami
W surowej analizie wszystkie produkty wrzucane są do jednego worka. Excel cierpliwie policzy parę „słuchawki Bluetooth + kawa mielona”, tylko biznesowo taki wniosek niewiele zmieni. Żeby wyciągnąć sensowne obserwacje, dobrze jest zawęzić analizę do logicznych grup.
Proste podejścia:
- analizowanie par wewnątrz kategorii (nabiał z nabiałem, pieczywo z pieczywem),
- analizowanie relacji między dwiema wybranymi kategoriami (np. słodycze ↔ napoje, karma dla zwierząt ↔ przysmaki),
- wyłączenie „uniwersalnych dodatków”, które sztucznie zawyżają współwystępowania (reklamówki, podstawowe pieczywo, woda „do wszystkiego”).
Technicznie możesz dopisać do danych kolumnę Kategoria (lub Segment) i używać jej w filtrach Tabeli przestawnej: np. w Wierszach trzymaj produkt, a w filtrach wybieraj tylko interesującą kategorię.
Odrzucanie „zbyt dużych” bohaterów
Produkty, które są w prawie każdym koszyku, są ważne dla obrotu, ale psują obraz powiązań. Liczba par „z chlebem” będzie ogromna, lecz większość nie niesie konkretnej wskazówki merchandisingowej.
Można je delikatnie „wyciszyć”:
- na etapie danych – dodać flagę Uniwersalny i w analizach par domyślnie je ukrywać,
- na etapie tabeli przestawnej – używać opcji sortowania po % sumy, a nie po samym liczniku, co szybko pokaże, że „wszędobylscy” wcale nie są tacy wyjątkowi w konkretnych duetach.
Po kilku takich czyszczeniach lista par zaczyna przypominać intuicyjną mapę zakupów, a nie wydruk z kasy fiskalnej.
Prosty „wskaźnik siły pary” w czystym Excelu
Przy kilku pierwszych analizach często pojawia się pytanie: „Czy to dużo, że ser żółty i ketchup pojawiają się razem w 15% koszyków z serem?”. Sam procent to już coś, ale dopiero porównanie z tłem całego sklepu zaczyna być konkretne. W Excelu da się to złożyć z kilku prostych ułamków.
Od licznika do udziału – krok po kroku
Wyobraź sobie, że masz już tabelę z parą A–B i trzema liczbami: ilu było klientów z A, ilu z B oraz ilu miało A i B razem. Z tych trzech wartości można zbudować kilka przydatnych wskaźników, bez znajomości zaawansowanej statystyki.
- Support pary (A,B) – udział wszystkich koszyków, w których wystąpiły razem A i B:
=Liczba_koszyków_AB / Liczba_wszystkich_koszyków - Udział B w koszykach z A (czasem nazywany confidence):
=Liczba_koszyków_AB / Liczba_koszyków_A - Udział A w koszykach z B:
=Liczba_koszyków_AB / Liczba_koszyków_B
Trzy proste wskaźniki już pozwalają odróżnić parę „pojawia się wszędzie, bo wszystko się z nią łączy” od pary „rzadziej, ale za to bardzo charakterystycznie”.
„Lift” bez skryptów – miara, czy para jest wyjątkowa
Jeśli produkt B pojawia się w 10% wszystkich koszyków, a w koszykach z A pojawia się w 30%, można powiedzieć, że ekspozycja z A „podnosi” szanse B trzykrotnie. Ten efekt można policzyć prostą proporcją, znaną w analizie koszyka jako lift.
W najprostszym wariancie:
Lift(A,B) = (Liczba_koszyków_AB / Liczba_koszyków_A)
/ (Liczba_koszyków_B / Liczba_wszystkich_koszyków)W Excelu, przy założeniu, że:
- w komórce
B2masz Liczba_koszyków_AB, - w
C2– Liczba_koszyków_A, - w
D2– Liczba_koszyków_B, - w
$F$1– Liczba_wszystkich_koszyków,
możesz użyć formuły:
= (B2/C2) / (D2/$F$1)Interpretacja jest intuicyjna:
- Lift ≈ 1 – para zachowuje się „przypadkowo”, razem są tak często, jak wynikałoby ze średnich udziałów,
- Lift > 1 – produkty lubią chodzić razem, im wyższy wynik, tym mocniejsze przyciąganie,
- Lift < 1 – para pojawia się razem rzadziej, niż można by się spodziewać – zwykle nie ma sensu jej eksponować wspólnie.
Progi dla liftu – pragmatyczne spojrzenie
W realnym sklepie nie chodzi o osiągnięcie „idealnego” progu, tylko o odróżnienie par, które naprawdę zachowują się inaczej niż reszta. Zwyczajowa praktyka:
- najpierw filtr po minimalnej liczbie koszyków (bez tego lift bywa bardzo zmienny),
- potem sortowanie malejąco po lift,
- oraz ręczne odrzucenie par, które są sprzeczne ze zdrowym rozsądkiem, ale wyszły wysoko, bo któryś produkt ma bardzo niską bazę.
Po takim „odsianiu” zostaje krótsza, ale dużo cenniejsza lista par – dobra baza do decyzji o cross-sellingu, ustawieniu półek czy pakietowych promocjach.
Łączenie analizy koszyka z kalendarzem i porą dnia
Kilka mocnych par zwykle wyjdzie bardzo szybko: kawa z mlekiem, chipsy z napojami, makaron z sosem. Prawdziwe smaczki pojawiają się jednak wtedy, gdy spojrzysz na nie przez filtr czasu – nagle okazuje się, że część powiązań jest sezonowa, a część typowo „wieczorna” czy „poranna”.
Kolumna „dzień/godzina” jako dodatkowy wymiar
Jeśli w danych sprzedażowych masz datę i godzinę, zyskujesz dodatkową oś analizy. Wystarczy kilka prostych kolumn pomocniczych:
- Dzień_tygodnia – np. formułą:
=TEKST(Data_sprzedaży;"ddd") - Godzina lub Przedział_czasowy (rano / dzień / wieczór), np.:
=JEŻELI(GODZINA(Czas_sprzedaży)<12;"Rano"; JEŻELI(GODZINA(Czas_sprzedaży)<18;"Dzień";"Wieczór")) - Miesiąc lub Sezon – np. „Zima”, „Lato” według zakresów miesiąca.
Po dodaniu takich kolumn do tabeli źródłowej możesz wykorzystać je jako filtry w Tabelach przestawnych. Ta sama para produktów zaczyna zachowywać się zupełnie inaczej np. w piątkowy wieczór niż we wtorkowy poranek.
Porównanie dwóch okresów w jednej tabeli przestawnej
Częsty scenariusz: chcesz sprawdzić, czy po wprowadzeniu promocji „pizza mrożona + napój” faktycznie wzrosła liczba wspólnych koszyków. Zamiast dwóch oddzielnych analiz, lepiej zbudować jedną tabelę przestawną z okresem jako dodatkowym polem.
Przykładowa konstrukcja:
- w danych dodaj kolumnę Okres (np. „Przed_promocją” / „Po_promocji” albo konkretne miesiące),
- w Tabeli przestawnej:
- Wiersze: Produkt (np. lista towarzyszy pizzy),
- Kolumny: Okres,
- Wartości: liczba koszyków z parą (pizza + produkt),
- Filtry: tylko koszyki zawierające produkt bazowy (pizza).
Po chwili masz przed sobą prostą kolumnową „przed/po”. Jeżeli niektóre pary skaczą znacząco w górę, to sygnał, że promocja lub zmiana ekspozycji pracuje w konkretnych duetach, a nie tylko „ogólnie podnosi sprzedaż”.
Sezonowe duety – inne pary zimą, inne latem
W sklepach spożywczych widać to szczególnie wyraźnie: zimą rośnie rola dań rozgrzewających, latem deserów i napojów chłodzących. Zestaw par „najmocniejszych” dla całego roku bywa mylący, bo spłaszcza sezonowość.
Prosta praktyka:
- W danych dodaj kolumnę Sezon (np. „Zima”, „Wiosna”, „Lato”, „Jesień”), przypisując ją po miesiącu sprzedaży.
- Dla interesującego produktu bazowego (np. lody) wykonaj analizę towarzyszy osobno na każdy sezon (filtr Tabeli przestawnej).
- Porównaj TOP 5–10 towarzyszy między sezonami – często ta lista różni się bardziej, niż się wydaje.
Takie porównanie ułatwia planowanie ekspozycji sezonowej, bo zamiast strzelać na ślepo, wiesz, które duety faktycznie „wchodzą” w danym okresie.
Jak przełożyć wyniki Excela na konkretne działania w sklepie
Nawet najlepsza tabela przestawna nie zwiększy sprzedaży, jeśli skończy jako kolejny plik w folderze „Raporty”. Moment, kiedy liczby spotykają się z regałem, grafiką promocji czy banerem w sklepie online, to prawdziwy test sensu analizy koszyka.
Półka fizyczna i wirtualna: bliskość produktów
Jeśli jakaś para ma wysoki lift i solidną liczbę wspólnych koszyków, pierwsza myśl to „postawić je obok siebie”. W handlu stacjonarnym oznacza to zazwyczaj:
- przeniesienie mniejszego produktu bliżej głównego (np. sosów bliżej makaronów),
- stworzenie małej „wyspy tematycznej” (np. strefa do przygotowania śniadania przy pieczywie),
- dodanie wieszaka lub stojaka z małym towarem przy większym (np. baterie przy zabawkach).
W sklepie internetowym „bliskość” to przede wszystkim sekcje typu „Kup razem z…” oraz podpowiedzi na karcie produktu. Lista par z Excela jest wręcz gotową listą sugestii dla kategorii „często kupowane razem”.
Promocje łączone – z listy par do mechaniki akcji
Analiza koszyka bardzo szybko generuje pomysły na promocje: „-20% na sos, jeśli kupisz makaron”, „Drugi produkt -50% przy zakupie chipsów”. Zanim jednak mechanika trafi na ulotkę, warto zestawić kilka liczb obok siebie:
- Jaka jest obecna liczba koszyków z produktem bazowym (A)?
- Jaka jest liczba koszyków z parą A–B i ich lift?
- Jaką marżę mają oba produkty i ile „miejsca na rabat” realnie zostaje?
Najczęściej zadawane pytania (FAQ)
Jak przygotować dane sprzedażowe w Excelu do analizy koszyka zakupowego?
Typowy punkt wyjścia to plik z systemu sprzedażowego, w którym każdy paragon jest jedną linią i ma tylko sumę. Do analizy koszyka potrzebna jest bardziej „rozbita” wersja – tak, żeby każda pozycja z paragonu była osobnym wierszem, z numerem transakcji wspólnym dla całego zakupu.
W praktyce trzeba zadbać o pięć kluczowych kolumn: ID transakcji, datę, kod produktu, nazwę produktu, ilość i kwotę. Po imporcie danych dobrze jest usunąć puste wiersze, dodatkowe nagłówki, linie typu „RAZEM” oraz ujednolicić nazwy produktów (np. „Kawa 250 g” zamiast trzech różnych wariantów zapisu).
Jak sprawdzić, czy mój obecny raport sprzedaży nadaje się do analizy produktów kupowanych razem?
Dobry test to proste pytanie: czy w jednym ID transakcji widzę kilka wierszy z różnymi produktami? Jeśli tak, jesteś na dobrej drodze. Jeśli każdy paragon to tylko jedna linia z podsumowaniem kwoty, takiego raportu nie da się użyć do badania współwystępowania produktów.
Arkusz jest użyteczny do analizy koszyka, gdy każdy wiersz to jedna pozycja sprzedaży, jest spójna kolumna z ID transakcji, produkty są identyfikowane zawsze tak samo, a ilość i kwota są liczbami, a nie tekstem. Przy raportach w stylu „wiersz = produkt, kolumny = miesiące” trzeba wrócić do systemu i poprosić o eksport danych po pozycjach paragonu/zamówienia.
Czy da się zrobić analizę koszyka zakupowego w Excelu bez Power Query i programowania?
Częsty scenariusz: ktoś słyszał o analizie koszyka, ale myśli, że potrzebuje SQL-a, Power Query albo zaawansowanych skryptów. Do prostych zastosowań w małym lub średnim biznesie wystarczy zwykły Excel: dobrze przygotowana tabela, filtry, tabele przestawne i kilka formuł do zliczania współwystąpień.
Najważniejsze jest przygotowanie struktury danych. Gdy masz już tabelę z pozycjami paragonu, można budować tabelę przestawną z ID transakcji i produktami, filtrować po konkretnym towarze i liczyć, co pojawia się z nim najczęściej. To nie będzie pełny „algorytm rekomendacyjny”, ale do decyzji typu „co położyć obok czego” w sklepie czy co pokazać jako „często kupowane razem” w sklepie internetowym w zupełności wystarczy.
Jakie kolumny są absolutnie konieczne do analizy współwystępowania produktów?
Minimalny pakiet to: ID transakcji, kod produktu (lub jednoznaczna nazwa), ilość oraz – mniej krytycznie, ale przydatnie – kwota i data. Bez ID transakcji nie da się stwierdzić, które produkty były w tym samym koszyku, a bez kodu/nazwy nie zidentyfikujesz powtarzających się towarów.
W codziennej pracy dobrze mieć zarówno kod, jak i nazwę produktu. Kod służy jako stabilny identyfikator (nie zmienia się przy rebrandingu), a nazwa ułatwia interpretację wyników, np. przy układaniu półek czy projektowaniu zestawów promocyjnych.
Co zrobić, jeśli mój plik sprzedażowy jest za duży jak na ograniczenia Excela?
Przy małym sklepie stacjonarnym czy średnim e‑commerce zwykle kilka lat danych mieści się w limicie około miliona wierszy. Problemy zaczynają się przy sieciach sklepów, bardzo szczegółowych pozycjach lub dużych wolumenach zamówień online – wtedy Excel zaczyna zwalniać albo w ogóle nie przyjmuje całego pliku.
Praktyczne obejścia są dwa: pracować na próbie danych (np. ostatnie 3–6 miesięcy lub wybrane kategorie produktów) albo najpierw przefiltrować/wybrać dane już na etapie eksportu z systemu. Excel dobrze nadaje się do zbudowania metody i przetestowania pomysłu; jeśli analiza się sprawdzi, dopiero potem warto myśleć o narzędziach działających na pełnym zbiorze.
Czy data sprzedaży jest potrzebna przy analizie koszyka zakupowego w Excelu?
Na pierwszy rzut oka analiza koszyka dotyczy tylko tego, co jest razem w jednym koszyku, więc data wydaje się drugorzędna. W praktyce często przydaje się do odfiltrowywania konkretnych okresów: promocji, sezonu świątecznego, wakacji czy weekendów.
Dzięki dacie możesz np. sprawdzić, czy pewne kombinacje produktów pojawiają się tylko w określonych miesiącach albo tygodniach z mocną kampanią marketingową. To pozwala odróżnić „stałe” pary produktów od tych, które wynikają wyłącznie z krótkiej akcji promocyjnej.
Po co zamieniać zakres danych na Tabelę (Ctrl+T) przed analizą koszyka?
Na pierwszy rzut oka to tylko kosmetyczna zmiana, ale w praktyce robi dużą różnicę. Tabela automatycznie rozszerza się przy dopisywaniu nowych transakcji, od razu ma filtry na nagłówkach i jest bardziej odporna na błędy przy tworzeniu tabel przestawnych.
Dodatkowo Tabela wprowadza nazwane kolumny, dzięki czemu formuły typu SUMA.JEŻELI czy LICZ.JEŻELI odwołują się do nazw pól, a nie „gołych” adresów komórek. Przy większych plikach i częstych modyfikacjach danych oszczędza to dużo czasu i zmniejsza ryzyko, że analiza koszyka będzie liczona na niepełnym zakresie.
Źródła informacji
- Data Mining: Concepts and Techniques. Morgan Kaufmann (2011) – Podstawy analizy koszyka zakupowego i reguł asocjacyjnych
- Principles of Marketing. Pearson (2017) – Zastosowania cross‑sellingu, „często kupowane razem”, bundling produktów
- Microsoft Excel 365 Data Analysis and Business Modeling. Microsoft Press (2021) – Techniki analizy danych w Excelu, tabele przestawne, filtrowanie
- Data Mining for Business Analytics. Wiley (2016) – Przykłady market basket analysis i interpretacja współwystępowania produktów






