Jakie dane produktowe z marketplace’ów naprawdę pomagają wyłapać rosnące oferty
Minimalny zestaw danych do monitoringu wzrostu
Skuteczna analiza ofert marketplace w arkuszach zaczyna się od odpowiedniego zestawu kolumn. Bez kilku podstawowych pól nawet najlepsze formuły w Google Sheets nie pokażą, które oferty faktycznie rosną. Pierwszy krok to zdefiniowanie absolutnego minimum, które musi znaleźć się w eksporcie z marketplace’u.
Na liście obowiązkowej znajdują się przede wszystkim identyfikatory ofert i produktów. Minimum to:
- ID oferty – unikalny numer nadawany przez marketplace (np. numer aukcji).
- SKU (Stock Keeping Unit) – Twój wewnętrzny identyfikator produktu, pozwalający połączyć wiele ofert z jednym towarem.
- Kategoria – pełna ścieżka lub przynajmniej główna kategoria, aby porównywać podobne produkty.
Drugi filar to dane sprzedażowe. Do śledzenia wzrostu potrzebne są:
- Liczba sztuk sprzedanych (w okresie raportowania lub dziennie).
- Liczba zamówień – przydatna, gdy jedno zamówienie może zawierać kilka sztuk.
- Cena sprzedaży – najlepiej końcowa cena sztuki, po uwzględnieniu rabatów.
Trzecia grupa to dane o ofercie i sprzedawcy:
- Nazwa oferty lub produktu – potrzebna do szybkiej identyfikacji.
- ID sprzedawcy lub nazwa konta – przydatne przy porównaniu sprzedawców na marketplace.
- Prowizja marketplace lub stawka prowizji – konieczna, jeśli chcesz analizować marżę, a nie tylko obrót.
Krok 1: zrób listę pól, które chcesz mieć w arkuszu. Krok 2: porównaj ją z eksportem z marketplace’u. Krok 3: brakujące dane spróbuj pozyskać z innego raportu lub API. Bez identyfikatorów, kwot i wolumenów sprzedaży śledzenie wzrostu jest tylko domysłem.
Co sprawdzić: czy w każdym eksporcie masz stałe kolumny: ID oferty, SKU, datę, liczbę sztuk, liczbę zamówień i cenę – bez nich nie policzysz zmian w czasie.
Dane czasowe – fundament analizy dynamiki sprzedaży
Bez czasu nie ma dynamiki. Dwukrotna sprzedaż tego samego produktu może oznaczać spektakularny wzrost lub całkowity brak ruchu – wszystko zależy od długości okresu. Dlatego dane czasowe są równie ważne jak ID oferty i liczba sprzedanych sztuk.
Najbardziej przydatne kolumny czasowe to:
- Data sprzedaży – najlepiej dokładny dzień, czasem godzina.
- Okres raportowania – np. „2026-04-01 – 2026-04-07”, albo osobne kolumny „Data od” / „Data do”.
- Miesiąc / tydzień – można je potem wyliczyć w Google Sheets, ale jeśli marketplace je podaje, ułatwia to pracę.
W praktyce najlepiej działa jeden z dwóch modeli:
- Dane transakcyjne – każdy wiersz to pojedyncze zamówienie lub pozycja zamówienia z konkretną datą.
- Dane zagregowane – każdy wiersz to wynik dla oferty za dany dzień (ID oferty + data + liczba sztuk sprzedanych).
Do identyfikacji rosnących ofert dużo wygodniejszy jest drugi model. Dla każdej oferty masz wtedy ciąg czasowy i możesz łatwo policzyć tygodniowe czy miesięczne zmiany sprzedaży. Google Sheets poradzi sobie z tym świetnie, jeśli daty będą poprawnie rozpoznawane jako daty, a nie tekst.
Co sprawdzić: czy w Twoim eksporcie data sprzedaży ma ten sam format w każdym wierszu i czy po zmianie formatu komórki na „Data” nie pojawiają się błędy.
Atrybuty pomocnicze i dane uzupełniające
Kiedy podstawowe dane są już zabezpieczone, kolejnym krokiem jest wzbogacenie ich o dodatkowe atrybuty. To dzięki nim można lepiej interpretować, dlaczego dana oferta rośnie, i odfiltrować wzrosty „fałszywe” lub słabe jakościowo.
Przydatne atrybuty ofert:
- Brand / producent – pozwala odróżnić markę własną od globalnych marek.
- Stan – nowy, używany, odnowiony; rosnące oferty w „używkach” mogą mieć inny kontekst.
- Typ oferty – Kup teraz / licytacja / oferta promocyjna.
- Słowa kluczowe w tytule – przydatne w analizie SEO marketplace (można je później wyciągać funkcjami tekstowymi).
Z kolei dane o sprzedawcy i obsłudze klienta pomagają odsiać oferty, które rosną, ale mogą być ryzykowne z punktu widzenia współpracy lub naśladowania strategii:
- Rating sprzedawcy (gwiazdki, procent pozytywnych ocen).
- Liczba opinii o sprzedawcy lub produkcie.
- Czas wysyłki i SLA logistyczne.
- Koszty dostawy – darmowa dostawa vs płatna.
Jeśli celem jest identyfikacja rosnących produktów do kopiowania oferty lub ustawienia własnego asortymentu, dane uzupełniające są kluczowe. Oferta, która rośnie tylko dlatego, że ktoś zaniża ceny, ma kiepski rating i długi czas dostawy, może nie być dobrym wzorem.
Co sprawdzić: czy w Twoim eksporcie możesz powiązać ofertę ze sprzedawcą (ID sprzedawcy) i czy masz chociaż podstawowe dane o jakości obsługi – nawet proste gwiazdki i liczba opinii pomagają w selekcji najzdrowszych wzrostów.

Przygotowanie arkusza w Google Sheets krok po kroku – struktura, zakładki, nazewnictwo
Prosty szkielet pliku do analizy marketplace
Przed wciągnięciem pierwszego pliku CSV warto ułożyć prostą, powtarzalną strukturę arkusza. Dzięki temu każdy kolejny import i każda nowa analiza nie rozjedzie się po dziesięciu chaotycznych zakładkach. Dobrze sprawdza się pięć głównych arkuszy:
- RAW – wszystkie dane surowe z marketplace’ów, bez zmian.
- CZYSZCZENIE – dane przetworzone formułami, ujednolicone identyfikatory, daty, ceny.
- ANALIZA – kolumny pomocnicze, wskaźniki wzrostu, tabele przestawne sprzedaży marketplace.
- DASHBOARD – wykresy i podsumowania, dashboard sprzedażowy w Google Sheets.
- SŁOWNIKI – mapy kategorii, zamienniki nazw marek, kursy walut, lista sprzedawców.
Krok 1: utwórz nowy plik Google Sheets i dodaj wszystkie powyższe zakładki z dokładnie takimi nazwami. Krok 2: ustaw zakładkę „RAW” jako domyślne miejsce wklejania/ładowania surowych danych. Krok 3: w kolejnych arkuszach pracuj wyłącznie na formułach, które odwołują się do „RAW”. Dzięki temu nowy import nie „rozbije” obliczeń.
Co sprawdzić: czy formuły w arkuszu „CZYSZCZENIE” korzystają z odwołań do całych kolumn z „RAW” (np. RAW!A:A), a nie do konkretnych zakresów typu RAW!A2:A1000 – te drugie szybciej się wyczerpią przy kolejnych importach.
Nazewnictwo kolumn i zakresów – baza stabilnych formuł
Im więcej danych, tym bardziej przydaje się konsekwentne nazewnictwo. Chaotyczne nagłówki z polskimi znakami, spacjami i skrótami utrudniają użycie takich funkcji jak QUERY czy FILTER. Dobrze jest wprowadzić prostą konwencję:
- bez polskich znaków (zamiast „Średnia cena” – „srednia_cena”),
- bez spacji – używaj podkreśleń, np. data_sprzedazy, id_oferty,
- stała kolejność kluczowych kolumn (najpierw identyfikatory, potem daty, potem wartości liczbowe).
Google Sheets pozwala też nadawać nazwy zakresom. Przy większych projektach pomaga to uprościć formuły:
- zaznacz kolumnę w „CZYSZCZENIE” z datami sprzedaży,
- Menu: Dane → Nazwane zakresy,
- nazwij ją np. daty_sprzedazy.
Od tego momentu możesz używać tej nazwy w wielu formułach, zamiast ciągle odwoływać się do „CZYSZCZENIE!B:B”.
Co sprawdzić: czy nagłówki w „CZYSZCZENIE” są spójne między kolejnymi miesiącami i czy nigdzie nie wprowadzasz ręcznie innych nazw dla tych samych pól.
Formaty dat, liczb i walut w całym pliku
Rozjazd formatów to jedno z najczęstszych źródeł dziwnych wyników analizy. Ta sama kwota 100,50 może raz być tekstem z przecinkiem, innym razem liczbą z kropką. Przy łączeniu danych z wielu marketplace’ów problem się mnoży.
Krok po kroku:
- Krok 1: na „RAW” zostaw dane tak, jak je dostajesz z marketplace’u.
- Krok 2: w „CZYSZCZENIE” zastosuj formuły, które konwertują tekst na liczbę i datę (szczegóły w osobnej sekcji).
- Krok 3: ustaw w całej kolumnie format „Liczba” z dwoma miejscami po przecinku i symbolem waluty albo bez symbolu, jeśli analizujesz wiele walut naraz.
Przy pracy wielowalutowej (np. marketplace’y zagraniczne) sensownie jest trzymać wartości w walucie źródłowej, a w „ANALIZA” dodać kolumnę z przeliczeniem na walutę główną według kursu ze „SŁOWNIKI”.
Co sprawdzić: zaznacz przykładową kolumnę z cenami, zmień jej format na „Liczba” i dodaj prostą formułę SUMA. Jeśli wynik nie zgadza się z oczekiwaniami, część komórek nadal jest tekstem.
Ochrona arkuszy i prosty system kolorów
Im więcej osób pracuje w jednym pliku, tym większe ryzyko przypadkowego nadpisania formuł. Google Sheets ma funkcję ochrony zakresów i arkuszy, z której warto skorzystać od razu.
Proste zasady:
- Zakładki RAW i SŁOWNIKI dopuszczają edycję tylko wybranym osobom.
- Zakładki CZYSZCZENIE i ANALIZA chronią kolumny z formułami przed przypadkową zmianą.
- Zakładka DASHBOARD jest „do oglądania” – edycja tylko dla administratora arkusza.
Kolorystyka:
- komórki szare – dane wejściowe / importowane,
- komórki zielone – wyniki obliczeń, wskaźniki,
- komórki żółte – pola, które użytkownik może modyfikować (np. filtry parametrów na dashboardzie).
Co sprawdzić: czy osoba mniej techniczna, która pierwszy raz widzi plik, po krótkim wprowadzeniu wie, w których komórkach może pisać, a których nie dotykać.

Import i aktualizacja danych z marketplace’ów w Google Sheets
Ręczne importy CSV/TSV – krok po kroku
Najprostszy scenariusz to ręczny import plików CSV/TSV z panelu marketplace’u. Sprawdza się na początek, zwłaszcza gdy dopiero budujesz proces i chcesz zrozumieć strukturę danych.
Krok 1 – eksport z marketplace’u:
- w panelu wybierz raport sprzedaży lub listę ofert,
- ustaw możliwie krótkie okresy (np. dziennie lub tygodniowe), aby dane były granularne,
- jako format pliku wybierz CSV lub TSV.
Krok 2 – import do Google Sheets:
- otwórz arkusz, zakładka „RAW”,
- Menu: Plik → Importuj → Prześlij, wybierz plik z dysku,
- ustaw opcję „Wstaw nowe arkusze” lub „Zastąp dane w wybranym arkuszu” – zależnie od tego, jak chcesz przechowywać historię.
Przy imporcie zwróć uwagę na:
- separator – przecinek, średnik lub tabulator,
- kodowanie – zwykle UTF-8; jeśli polskie znaki się „sypią”, wyeksportuj raport jeszcze raz w innym kodowaniu.
Co sprawdzić: czy nagłówki kolumn nie zostały zmienione przez Google (czasem dopisuje „_1”, „_2”, jeśli są duplikaty).
IMPORTDATA, IMPORTXML, IMPORTHTML – kiedy używać funkcji online
Do monitoringu cen konkurencji w arkuszu lub podglądu dostępności wybranych ofert można wykorzystać funkcje, które pobierają dane bezpośrednio z sieci. Najczęściej używane:
Do najczęstszych należą:
=IMPORTDATA("URL_raportu_lub_pliku.csv")– wciąga dane z publicznie dostępnego pliku CSV/TSV,=IMPORTHTML("URL_strony"; "table"; 1)– pobiera pierwszą tabelę HTML z podanej strony (np. lista ofert),=IMPORTXML("URL_strony"; "//xpath")– wyciąga konkretne pola z kodu strony (np. cenę, nazwę produktu, dostępność).
Te funkcje działają dobrze przy prostym monitoringu kilku–kilkunastu adresów URL, np. bieżącej ceny topowych ofert konkurencji na konkretnych frazach. Przy bardziej złożonych raportach sprzedażowych z marketplace’ów zwykle się nie sprawdzą, bo wymagają logowania, tokenów lub generowania raportu w panelu.
Typowy błąd: próba wczytania całej listy produktów z dużego marketplace’u jednym IMPORTXML bez zrozumienia struktury HTML. W praktyce lepiej odczytać z takiej funkcji tylko kluczowe parametry dla kilku wybranych URL-i (np. bestsellery w kategorii), a całą resztę raportować klasycznym eksportem CSV.
Co sprawdzić: czy adresy URL używane w IMPORTDATA/IMPORTHTML/IMPORTXML są publicznie dostępne w trybie incognito oraz czy arkusz nie zwraca błędów typu #N/A, #ERROR! lub komunikatów o zbyt częstym odświeżaniu (limit zapytań).
Półautomatyczne odświeżanie danych – raporty okresowe i dopisywanie do historii
Gdy raport CSV pobierasz regularnie (np. codziennie lub co tydzień), opłaca się poukładać prosty rytuał importu, żeby historia rosła, a formuły w „CZYSZCZENIE” dalej działały.
Krok 1 – jeden format raportu: w panelu marketplace’u zawsze generuj ten sam typ raportu (te same kolumny, w tej samej kolejności). Dzięki temu nie trzeba za każdym razem przebudowywać formuł ani dopasowywać nagłówków.
Krok 2 – dopisywanie do historii: zamiast każdorazowo zastępować całą zawartość „RAW”, wklejaj nowe dane pod istniejącą tabelą. Ułatwia to późniejszą analizę trendów. W praktyce możesz:
- skopiować dane z nowego CSV i wkleić je w „RAW” pod ostatnim wierszem,
- albo utrzymywać osobny arkusz „RAW_YYYYMM” dla każdego miesiąca i łączyć je później funkcją QUERY w „CZYSZCZENIE”.
Krok 3 – prosta kontrola jakości: po każdym imporcie dodaj w „ANALIZA” małą tabelę kontrolną z liczbą rekordów, liczbą unikalnych ofert i zakresem dat sprzedaży. Jedno spojrzenie pokaże, czy raport nie jest przypadkiem pusty, ucięty albo nie dubluje wcześniejszych danych.
Co sprawdzić: czy po dopisaniu nowej partii danych w „RAW” formuły w „CZYSZCZENIE” i „ANALIZA” nadal obejmują pełen zakres (zastosuj raczej całe kolumny niż sztywne zakresy w stylu A2:A5000).
Synchronizacja przez narzędzia zewnętrzne i API marketplace’ów
Przy większej skali i kilku marketplace’ach wygodniej oprzeć się na integracjach: dodatkach do Google Sheets (Add-ons), prostych skryptach Apps Script albo gotowych konektorach (np. przez narzędzia typu no-code). Dzięki nim raport sprzedaży aktualizuje się według harmonogramu, bez ręcznego pobierania plików.
Najczęściej wygląda to tak: konfigurujesz połączenie (klucz API, konto sprzedawcy, zakres danych), definiujesz, jakie pola mają trafić do arkusza i ustawiasz harmonogram odświeżania, np. raz dziennie o 6:00. Dane lądują w „RAW” lub osobnym arkuszu technicznym, a reszta procesu (czyszczenie, analiza, dashboard) działa już jak wcześniej.
Zanim zaczniesz intensywnie polegać na integracji, przeprowadź kilka suchych testów: porównaj sumy sprzedaży z panelu marketplace’u i z arkusza dla tego samego okresu, sprawdź, czy nie brakuje żadnych statusów zamówień (np. częściowo zrealizowane, zwroty) i czy integracja nie nadpisuje historii zamiast ją dopisywać.
Przy narzędziach bazujących na API pojawia się kilka dodatkowych pułapek. Częsty problem to zmieniające się limity zapytań – zbyt agresywny harmonogram (np. odświeżanie co 15 minut dla dużego konta) kończy się błędami po stronie integratora i niepełnymi danymi. Druga typowa sytuacja: marketplace modyfikuje strukturę odpowiedzi API (np. zmiana nazwy pola lub formatu daty), a skrypt lub dodatek nie jest jeszcze zaktualizowany. W arkuszu objawia się to nagłym wysypem pustych kolumn albo przesunięciem danych.
Praktycznie podejdź do tematu w trzech krokach. Krok 1 – ustal minimalną potrzebną częstotliwość odświeżania (dla analizy trendów sprzedaży zwykle wystarcza raz dziennie, rzadko częściej niż co godzinę). Krok 2 – zapisz w osobnej zakładce „TECH” kopię kilku przykładowych odpowiedzi z API (np. surowy JSON lub tabelę pól), żeby szybko porównać, czy coś się nie zmieniło po stronie marketplace’u. Krok 3 – po większych aktualizacjach panelu sprzedawcy (nowe statusy, nowe typy zamówień) ręcznie zweryfikuj, czy integracja dalej przesyła wszystkie potrzebne pola.
Jeśli korzystasz z gotowych konektorów no-code, nie opieraj się wyłącznie na „czarnej skrzynce”. Raz na jakiś czas przejdź pełną ścieżkę: panel marketplace’u → raport referencyjny CSV → arkusz „RAW_z_API” i porównaj agregaty (suma przychodu, liczba zamówień, liczba pozycji). Różnice na tym poziomie to sygnał, że filtr lub zakres danych w integratorze jest ustawiony inaczej niż w ręcznym raporcie.
Co sprawdzić: czy integracja dopisuje nowe dane na koniec tabeli zamiast nadpisywać historię, czy harmonogram odświeżania jest realistyczny (nie przekracza limitów API) oraz czy po zmianach po stronie marketplace’u liczba kolumn i ich nazwy nadal są zgodne z założeniami w arkuszach „CZYSZCZENIE” i „ANALIZA”.

Czyszczenie i standaryzacja danych produktowych przed analizą
Dane z marketplace’ów rzadko nadają się do sensownej analizy od razu po imporcie. Ten sam produkt potrafi mieć kilka wariantów nazwy, różne zapisy kategorii, waluty mieszają się z tekstem, a w kolumnie ze statusem zamówienia pojawiają się literówki lub nowe wartości. Im lepiej uporządkujesz te elementy na wejściu, tym prostsze będą wszystkie późniejsze raporty.
Ujednolicenie nazw produktów i identyfikatorów
Punkt wyjścia to spójne identyfikatory ofert. Ideał to posiadanie własnego, stabilnego klucza (np. SKU lub ID_produktu), który jest stały we wszystkich marketplace’ach i systemach. Jeśli w danych masz tylko nazwy produktów i ID ofert z platformy, trzeba zbudować prostą mapę powiązań w „SŁOWNIKI”.
Praktycznie możesz podejść do tematu tak:
- krok 1 – w „CZYSZCZENIE” dodaj kolumnę „Nazwa_surowa” (oryginalna nazwa z marketplace’u) i „SKU” (docelowy kod produktu),
- krok 2 – w „SŁOWNIKI” utwórz tabelę z kolumnami: „Nazwa_surowa”, „SKU”, „Marka”, „Kategoria_docelowa”,
- krok 3 – w „CZYSZCZENIE” podepnij słownik przez
VLOOKUPalboXLOOKUP, np.=XLOOKUP(A2;SŁOWNIKI!A:A;SŁOWNIKI!B:B), gdzie A2 to nazwa surowa, a w słowniku w kolumnie B trzymasz SKU.
Na początku część rekordów nie znajdzie dopasowania, bo słownik będzie niekompletny. To normalne. Zrób pomocniczą kolumnę „Brak_SKU” (np. =IF(ISBLANK([@SKU]);"BRAK";"OK")) i co jakiś czas przejrzyj tylko wiersze oznaczone jako „BRAK” – dopisuj mapowanie w „SŁOWNIKI”. Po kilku iteracjach większość nowych nazw zacznie trafiać w istniejące reguły.
Jeśli ten sam produkt funkcjonuje pod kilkoma lekko różniącymi się nazwami (np. „Etui iPhone 13”, „Case IP13”, „Pokrowiec iPhone 13”), do słownika dodaj każdy wariant jako osobny wiersz, ale z tym samym SKU. Dzięki temu raporty sprzedaży zbiją się do jednego produktu, a nie trzech pozornie różnych ofert. Przy większej skali możesz wesprzeć się prostym filtrowaniem wg słów kluczowych (np. zawiera „iphone 13”) i hurtowo przypisywać SKU do serii podobnych nazw.
Drugi element to stabilny identyfikator oferty z danego marketplace’u (np. OfferID/ListingID). W „CZYSZCZENIE” trzymaj go w osobnej kolumnie i nie nadpisuj przy ręcznych poprawkach. Jeśli marketplace zmieni nazwę produktu albo opis, nadal połączysz sprzedaż po tym samym ID oferty. W raportach „ANALIZA” raportuj zarówno po SKU (widok produktowy), jak i po ID oferty (widok stricte marketplace’owy, pomocny np. przy porównywaniu skuteczności różnych tytułów i miniaturek).
Przy kilku marketplace’ach przydaje się dodatkowa kolumna „Źródło” („Allegro”, „Amazon”, „Empik”, itd.) oraz osobny słownik mapujący identyfikatory zewnętrzne do SKU: „Marketplace”, „ID_oferty”, „SKU”. Dzięki temu, jeśli w jednym kanale zmienisz SKU lub przenumerujesz produkty, wystarczy poprawić jeden wiersz w słowniku, zamiast grzebać w wielu raportach historycznych.
Co sprawdzić: czy w „CZYSZCZENIE” wszystkie formuły odwołują się do słowników po stabilnych kolumnach (np. „Nazwa_surowa” + „Marketplace”), czy SKU nie są wpisywane ręcznie w losowych miejscach oraz czy w „SŁOWNIKI” nie ma zduplikowanych wierszy z różnymi SKU dla tej samej nazwy i źródła.
Standaryzacja kategorii, marek i wariantów
Marketplace’y stosują własne drzewa kategorii, które rzadko pokrywają się między sobą. Żeby sensownie analizować rozwój ofert, potrzebujesz jednej, wspólnej kategoryzacji docelowej. Najprościej: w „SŁOWNIKI” dodaj kolumnę „Kategoria_marketplace” (oryginalna), „Kategoria_docelowa” (twoja) i podepnij ją w „CZYSZCZENIE” przez XLOOKUP po SKU lub po parze: nazwa + źródło.
Dla marek podejdź podobnie. W raportach często pojawiają się różne warianty („Apple”, „APPLE”, „Apple Inc.”). W słowniku trzymaj jedną, docelową formę, np. „Apple”, a wszystkie inne warianty mapuj do niej. W „CZYSZCZENIE” dodaj kolumnę „Marka_docelowa” obliczaną ze słownika. Ułatwi to później filtrowanie: jednym kliknięciem wyciągniesz wszystkie oferty danej marki, niezależnie od tego, jak zostały opisane w marketplace’u.
Warianty (kolor, rozmiar, pojemność) najlepiej rozbić na osobne kolumny, nawet jeśli marketplace trzyma je w jednym polu. Jeśli w danych masz np. „Czarny, 128 GB”, zastosuj prosty podział tekstu (np. PODZIEL.TEKST lub kombinację LEFT/RIGHT/FIND), żeby uzyskać Kolor i Pojemność jako osobne pola. W raportach szybko wtedy sprawdzisz, które warianty rosną najszybciej (np. konkretne rozmiary albo kolory).
Co sprawdzić: czy w „SŁOWNIKI” nie ma sytuacji, w której ta sama „Kategoria_marketplace” jest przypisana do różnych „Kategoria_docelowa”, czy wszystkie raporty „ANALIZA” korzystają już z pól „Kategoria_docelowa” i „Marka_docelowa” zamiast surowych kategorii/marki oraz czy pola wariantów nie są „sklejone” w jednym tekście, którego nie da się łatwo przefiltrować.
Porządkowanie dat, walut i ilości
Nawet najlepiej opisane produkty nic nie dadzą, jeśli pola czasowe i liczbowe są niespójne. Przy analizie trendów drobne różnice w formacie daty czy waluty potrafią całkowicie wypaczyć wyniki.
Zacznij od dat. Marketplace’y mieszają zwykle kilka pól: data złożenia zamówienia, data płatności, data wysyłki, data zakończenia oferty. Do analizy wzrostu sprzedaży na poziomie ofert kluczowe są zwykle:
- „Data_zamówienia” – kiedy klient faktycznie kupił produkt,
- „Data_rozliczenia” lub „Data_przychodu” – kiedy sprzedaż powinna trafić do przychodu (przy rozliczeniach prowizyjnych czasem się różni),
- „Data_aktywacji_oferty” – od kiedy oferta jest dostępna, przydatne do porównań typu „sprzedaż w pierwszych 30 dniach od startu”.
Krok 1 – w „CZYSZCZENIE” dodaj osobne kolumny dla każdego typu daty i nadaj im jednoznaczne nazwy (np. „Data_zamówienia”, „Data_rozliczenia”, „Data_start_oferty”). Nie trzymaj różnych dat w jednej kolumnie z dopiskiem w nawiasie.
Krok 2 – zamień wszystkie daty na prawdziwy format daty Google Sheets. Jeśli import przyniósł ciągi tekstowe, użyj np. =DATA(WARTOŚĆ(LEWY(A2;4));WARTOŚĆ(ŚRODKOWY(A2;6;2));WARTOŚĆ(PRAWY(A2;2))) dla formatu „YYYY-MM-DD” lub funkcji DATA.WARTOŚĆ tam, gdzie działa poprawnie. Upewnij się, że kolumna jest ustawiona jako data.
Krok 3 – dodaj pomocnicze kolumny „Rok”, „Miesiąc”, „Tydzień”, np.:
=ROK([@Data_zamówienia]),=TEKST([@Data_zamówienia];"RRRR-MM")– wygodny klucz do raportów miesięcznych,=TYDZIEŃ([@Data_zamówienia];2)– numer tygodnia z poniedziałkiem jako pierwszym dniem.
Przy walutach i kwotach zachowaj podobną dyscyplinę. Główne problemy to mieszanie symboli walut w tej samej kolumnie i różne separatory tysięcy/przecinków.
Krok 1 – wydziel osobną kolumnę „Waluta” (np. „PLN”, „EUR”) i osobną „Kwota_surowa” (tak, jak przyszła z raportu). W „CZYSZCZENIE” dodaj „Kwota_docelowa” jako czyste NUMBER bez symboli. Jeśli w danych masz wartości w stylu „1 234,50 zł”, możesz użyć kombinacji ZASTĄP / PODSTAW do usunięcia spacji i tekstu, a potem pomnożyć przez 1, żeby wymusić typ liczbowy.
Krok 2 – jeśli pracujesz z wieloma walutami, zrób tabelę kursów w „SŁOWNIKI” (np. „Waluta”, „Kurs_do_PLN” z datą obowiązywania). W „CZYSZCZENIE” dodaj „Kwota_PLN” z formułą typu =Kwota_docelowa * Kurs_do_PLN, dopasowując kurs po dacie transakcji lub przynajmniej po miesiącu.
Krok 3 – dla ilości (sztuki) upewnij się, że kolumna jest liczbą całkowitą i nie ma tam np. opisów „x2”, „2 szt.”. W razie potrzeby użyj REGEXEXTRACT do wyciągnięcia pierwszej liczby z tekstu, np. =WARTOŚĆ(REGEXEXTRACT(A2;"d+")).
Co sprawdzić: czy wszystkie daty są faktycznymi datami (a nie tekstem), czy kwoty są liczbami bez symboli walut oraz czy w tabelach kursów nie ma luk dla okresów, które analizujesz.
Obsługa statusów zamówień i zwrotów
Analiza rosnących ofert bez uwzględnienia zwrotów i anulacji prowadzi do fałszywych „gwiazd sprzedaży”. Oferta może mieć imponującą liczbę zamówień, ale wysoki odsetek zwrotów zjada jej realny potencjał.
Krok 1 – w „CZYSZCZENIE” zadbaj o kolumnę „Status_zamówienia” ujednoliconą względem oryginalnych wartości z marketplace’ów. W „SŁOWNIKI” przygotuj prostą mapę: „Status_marketplace” → „Status_docelowy”, np.:
- „Completed”, „Shipped”, „Delivered” → „Zrealizowane”,
- „Cancelled”, „Anulowane przez klienta”, „Payment failed” → „Anulowane”,
- „Returned”, „Refunded” → „Zwrot”.
Krok 2 – w „CZYSZCZENIE” dodaj kolumny logiczne, np. „Czy_zrealizowane”, „Czy_zwrot”, „Czy_anulowane” z prostymi formułami =[@Status_docelowy]="Zrealizowane" itd. Ułatwi to późniejsze filtrowanie i tworzenie agregacji bez ciągłego odwoływania się do tekstowych statusów.
Krok 3 – przy zwrotach określ jasną logikę znaków przychodu. Najprościej: trzymaj przychód brutto jako wartość dodatnią, a zwroty jako ujemną. W „CZYSZCZENIE” możesz dodać:
- „Przychód_brutto” – zawsze dodatni, z raportu,
- „Przychód_netto_status” – np.
=JEŻELI([@Czy_zwrot];-[@Przychód_brutto];[@Przychód_brutto]).
Dzięki temu na poziomie „ANALIZA” będziesz w stanie szybko policzyć np. sprzedaż netto per oferta lub wskaźnik zwrotów: liczba zwrotów / liczba zamówień.
Co sprawdzić: czy słownik statusów obejmuje wszystkie wartości pojawiające się w „RAW”, czy zwroty nie są przypadkiem liczone podwójnie (osobne wiersze dla sprzedaży i zwrotu) oraz czy w przychodach netto znak kwoty zawsze odpowiada statusowi.
Filtrowanie i sortowanie danych, żeby wyłapać interesujące oferty
Gdy dane są już oczyszczone i ustandaryzowane, można przejść do właściwej selekcji ofert, które faktycznie rosną. Zamiast ręcznie przeklikiwać tysiące wierszy, zbuduj kilka powtarzalnych widoków w „ANALIZA”, które wyciągną to, co najważniejsze.
Podstawowe filtrowanie po czasie, źródle i kategorii
Na początek wystarczy prosty widok: określony okres, kilka kluczowych źródeł i wybrane kategorie. Chodzi o odcięcie „szumu” przed bardziej zaawansowaną analizą trendów.
Krok 1 – w „ANALIZA” przygotuj tabelę bazową z odwołaniem do „CZYSZCZENIE”. Możesz skorzystać z funkcji QUERY, np.:
=QUERY(
CZYSZCZENIE!A:Z;
"select SKU, ID_oferty, Marka_docelowa, Kategoria_docelowa,
sum(Ilość) as Sztuki, sum(Przychód_netto_status) as Przychód
where Data_zamówienia >= date '"&TEXT($B$1;"yyyy-MM-dd")&"'
and Data_zamówienia <= date '"&TEXT($B$2;"yyyy-MM-dd")&"'
group by SKU, ID_oferty, Marka_docelowa, Kategoria_docelowa";
1
)W komórkach B1 i B2 ustaw początek i koniec analizowanego okresu (np. bieżący i poprzedni miesiąc). W ten sposób jednym ruchem zawężasz dane do wybranego okna czasowego.
Krok 2 – jeżeli pracujesz na kilku marketplace’ach, dodaj do zapytania filtr po „Źródle” lub przygotuj osobne sekcje w arkuszu „ANALIZA” dla każdego kanału. Łatwiej wtedy wychwycić specyfikę poszczególnych platform.
Krok 3 – użyj filtrów wbudowanych w Google Sheets na tabeli wynikowej: możesz szybko ograniczyć widok do jednej lub kilku „Kategoria_docelowa” albo wybranych marek. To na tym etapie zauważysz, czy w danej kategorii jest wystarczająco danych do sensownej analizy wzrostu.
Co sprawdzić: czy filtry dat faktycznie działają po oczyszczonych kolumnach datowych (a nie surowych), czy agregaty (suma sztuk, suma przychodu) zgadzają się z kontrolnymi raportami z marketplace’u dla tego samego zakresu.
Porównywanie okresów – które oferty faktycznie rosną
Sam poziom sprzedaży nie mówi, czy oferta rośnie. Potrzebujesz porównania co najmniej dwóch okresów: np. ostatnie 30 dni vs poprzednie 30 dni albo bieżący miesiąc vs poprzedni.
Jednym z prostszych podejść jest zbudowanie dwóch osobnych zestawień w „ANALIZA” i połączenie ich po SKU/ID_oferty.
Krok 1 – przygotuj tabelę „Okres_A” (np. poprzedni miesiąc) z agregacją po ofercie:
=QUERY(
CZYSZCZENIE!A:Z;
"select SKU, ID_oferty, sum(Ilość) as Sztuki_A, sum(Przychód_netto_status) as Przychód_A
where Data_zamówienia >= date '"&TEXT($B$1;"yyyy-MM-dd")&"'
and Data_zamówienia <= date '"&TEXT($B$2;"yyyy-MM-dd")&"'
group by SKU, ID_oferty";
1
)Krok 2 – poniżej lub obok zbuduj analogiczną tabelę „Okres_B” (np. bieżący miesiąc) z „Sztuki_B” i „Przychód_B”, opierając się na innych datach w komórkach (np. B3, B4).
Krok 3 – scal obie tabele w jedną widokową przy użyciu funkcji XLOOKUP lub kombinacji VLOOKUP. Przykład dla kolumny „Sztuki_B” w tabeli zbiorczej:
=XLOOKUP(
A2&"|"&B2;
Okres_B!A:A&"|"&Okres_B!B:B;
Okres_B!C:C;
0
)Gdzie A2 to SKU, B2 to ID_oferty, a w „Okres_B” kolumny A i B odpowiadają tym samym polom, kolumna C to „Sztuki_B”. Dzięki konkatenacji klucza (SKU|ID_oferty) unikasz problemów przy duplikatach.
Krok 4 – dodaj w tabeli zbiorczej kolumny różnicowe:
- „Delta_sztuki” –
=[@Sztuki_B]-[@Sztuki_A], - „Delta_%_sztuki” –
=JEŻELI([@Sztuki_A]=0;"";([@Sztuki_B]/[@Sztuki_A])-1), - „Delta_przychód” i „Delta_%_przychód” analogicznie.
Teraz wystarczy posortować tabelę po „Delta_%_sztuki” malejąco, żeby na górze zobaczyć oferty z największym procentowym wzrostem wolumenu sprzedaży. Warto też zerknąć na „Delta_sztuki”, bo drobne liczby potrafią generować spektakularne procenty przy bardzo niskiej bazie.
Co sprawdzić: czy zakresy dat dla „Okres_A” i „Okres_B” są dobrze ustawione, czy przypadkiem nie porównujesz różnych długości okresów oraz czy w tabeli scalającej nie pojawiają się oferty z danymi tylko w jednym okresie (trzeba je odpowiednio oznaczyć, np. jako „nowe” lub „wygasłe”).
Wyłapywanie nowych, obiecujących ofert
Szczególnie interesujące są oferty, które wcześniej praktycznie nie sprzedawały, a nagle „zaskoczyły”. To często nowości produktowe lub dobrze zoptymalizowane listingi.
Krok 1 – w tabeli porównującej okresy dodaj kolumnę „Typ_oferty”, np.:
=JEŻELI(
ORAZ([@Sztuki_A]=0;[@Sztuki_B]>0);
"Nowa_rozkręca_się";
JEŻELI(
ORAZ([@Sztuki_A]>0;[@Sztuki_B]=0);
"Zatrzymała_się";
"Kontynuuje"
)
)Krok 2 – przefiltruj tabelę tylko na „Nowa_rozkręca_się” i posortuj po „Sztuki_B” lub „Przychód_B” malejąco. Masz wtedy listę ofert, które dopiero co pojawiły się lub zyskały trakcję, ale już generują znaczący obrót.
Krok 3 – dodaj do widoku kilka kolumn opisowych z „SŁOWNIKI”/„CZYSZCZENIE”: „Kategoria_docelowa”, „Marka_docelowa”, wariant (np. „Kolor”, „Rozmiar”). Szybko zobaczysz, czy nowe hity skupiają się w konkretnej kategorii, u jednego producenta albo w określonej kombinacji wariantów.
W praktyce dobrze sprawdza się prosta reguła odsiewająca przypadkowe pojedyncze sprzedaże, np.:
- „Sztuki_B >= 5” – minimalny próg wolumenu,
- „Przychód_B >= łączny_progu_kwotowego” – zależnie od branży.
Można to zaimplementować dodatkową kolumną „Czy_kandydat” z formułą =ORAZ([@Typ_oferty]="Nowa_rozkręca_się";[@Sztuki_B]>=5) i filtrowaniem po wartości „PRAWDA”.
Co sprawdzić: czy oferty zaklasyfikowane jako „Nowa_rozkręca_się” faktycznie nie mają sprzedaży w „Okres_A” (sprawdź, czy wcześniejsze dane nie zostały obcięte w imporcie) oraz czy wybrane progi minimalne nie wycinają zbyt wielu sensownych kandydatów.
Identyfikacja ofert, które zwalniają lub „umierają”
Tak samo istotne jak znalezienie rosnących gwiazd jest wychwycenie ofert, które tracą dynamikę. Daje to szansę na korektę ceny, treści oferty albo decyzję o wycofaniu produktu.
Krok 1 – wykorzystaj już obliczone „Delta_sztuki” i „Delta_%_sztuki”. Dodaj kolumnę „Status_trendu”, która z grubsza otaguje oferty:
=JEŻELI(
ORAZ([@Sztuki_A]>0;[@Sztuki_B]=0);
"Zatrzymała_się";
JEŻELI(
ORAZ([@Delta_%_sztuki]<-0,3;[@Sztuki_B]>0);
"Mocny_spadek";
JEŻELI(
ORAZ([@Delta_%_sztuki]<0;[@Delta_%_sztuki]>=-0,3);
"Lekki_spadek";
"Stabilna/rośnie"
)
)
)Krok 2 – zafiltrowuj widok tylko na „Mocny_spadek” oraz „Zatrzymała_się” i posortuj po „Delta_%_sztuki” rosnąco. Na górze pojawią się oferty z największym spadkiem. Dobrze jest od razu dodać kolumnę z marżą lub procentową rentownością, żeby nie tracić czasu na ratowanie ofert, które i tak ledwo zarabiają.
Krok 3 – do analizy spadków dorzuć podstawowe wskaźniki ekspozycji, jeżeli masz je w danych (np. wyświetlenia, kliknięcia, pozycję w listingach). Często okaże się, że spadek sprzedaży dotyczy tylko widoczności (np. koniec kampanii promocyjnej), a konwersja na poziomie oferty pozostaje stabilna. Wtedy reakcja jest inna niż w przypadku faktycznego „wypalenia” produktu.
Krok 4 – oznacz w dodatkowej kolumnie „Działanie” pierwszy sugerowany ruch, np. „sprawdź cenę”, „przegląd treści i zdjęć”, „rozważyć wycofanie”. Jeżeli kilka miesięcy z rzędu oferta ma status „Mocny_spadek” i brak sensownej marży, lepiej ją świadomie zamknąć niż utrzymywać w katalogu z przyzwyczajenia.
Co sprawdzić: czy progi dla „Mocny_spadek” i „Lekki_spadek” pasują do dynamiki Twojej branży, czy w analizie nie zostały pomieszane sezony (np. porównanie grudnia do stycznia) oraz czy oferty z tagiem „Zatrzymała_się” faktycznie są aktywne na marketplace’ach (czasem sprzedaż gaśnie po prostu dlatego, że oferta wygasła technicznie).
Ułożony w ten sposób arkusz w Google Sheets staje się praktycznym radarem: na jednej liście widać, które oferty rosną, które dopiero się rozkręcają, a które gasną i wymagają decyzji. Z czasem możesz tylko podmieniać zakresy dat, odświeżać dane z marketplace’ów i przechodzić krok po kroku przez te same widoki, zamiast co miesiąc zaczynać analizę od zera.
Segmentacja ofert według rangi wzrostu
Sama kolumna z procentową zmianą i statusem trendu jest pomocna, ale w codziennej pracy wygodniej operować prostymi segmentami: TOP_rośnie, Średnio_rośnie, Stabilna, Spadek. Dzięki temu możesz szybko rozdysponować uwagę zespołu.
Krok 1 – na arkuszu „ANALIZA” dodaj kolumnę „Segment_wzrostu”, która połączy informacje z „Delta_%_sztuki” i wolumenu w okresie B:
=JEŻELI(
LUB([@Sztuki_B]<5;[@Przychód_B]<100);
"Niska_objętość";
JEŻELI(
[@Delta_%_sztuki]>=0,5;
"TOP_rośnie";
JEŻELI(
ORAZ([@Delta_%_sztuki]>=0,15;[@Delta_%_sztuki]<0,5);
"Średnio_rośnie";
JEŻELI(
ORAZ([@Delta_%_sztuki]>-0,15;[@Delta_%_sztuki]<0,15);
"Stabilna";
"Spadek"
)
)
)
)Powyższe progi są przykładowe – możesz je dostosować do dynamiki swojej kategorii. Segment „Niska_objętość” odsiewa oferty o małym wolumenie, gdzie procentowe skoki są przypadkowe.
Krok 2 – zastosuj filtr na kolumnie „Segment_wzrostu” i skoncentruj się na „TOP_rośnie” oraz „Średnio_rośnie”. Tu zazwyczaj kryją się oferty, którym warto dorzucić budżet reklamowy, poprawić stany magazynowe, rozszerzyć warianty.
Krok 3 – zrób prostą tabelę przestawną (Dane > Tabela przestawna) na podstawie arkusza „ANALIZA” z polami:
- Wiersze: „Segment_wzrostu”,
- Kolumny: „Kategoria_docelowa”,
- Wartości: liczba „ID_oferty” (zliczanie), suma „Przychód_B”.
Po kilku sekundach widzisz, które kategorie są przepełnione rosnącymi ofertami, a które się „wypalają”. Taki przegląd dobrze sprawdza się przy planowaniu budżetu marketingowego na kolejny miesiąc.
Co sprawdzić: czy progi segmentów nie są zbyt szerokie (wszyscy wpadają do „Stabilna”) albo zbyt wąskie (po 2–3 oferty w segmencie), czy segment „Niska_objętość” nie zawiera przypadkiem strategicznych produktów o niskim wolumenie, ale kluczowych marżowo.
Identyfikacja „końców ogona” z potencjałem
Część ofert sprzedaje niewiele, ale regularnie. Takie „końcówki ogona” często są ignorowane, a po lekkim wsparciu mogą dołączyć do głównego portfela sprzedaży.
Krok 1 – dodaj kolumnę „Średnia_sztuki_dziennie_B” dla okresu B. Załóżmy, że w komórce B5 trzymasz liczbę dni w okresie B (np. obliczoną funkcją =B4-B3+1):
=[@Sztuki_B]/$B$5Krok 2 – przygotuj prostą klasyfikację wolumenu, np. w kolumnie „Poziom_wolumenu”:
=JEŻELI(
[@Średnia_sztuki_dziennie_B]>=10;
"Wysoki";
JEŻELI(
[@Średnia_sztuki_dziennie_B]>=3;
"Średni";
JEŻELI(
[@Średnia_sztuki_dziennie_B]>0;
"Niski";
"Brak_sprzedaży"
)
)
)Krok 3 – na tej podstawie zbuduj filtr kombinowany: wybierz oferty z „Poziom_wolumenu = Niski” ale z „Delta_%_sztuki >= 0,5” i „Segment_wzrostu = TOP_rośnie” lub „Średnio_rośnie”. To oferty o małej skali, ale wysokiej dynamice – kandydaci do wzmocnienia.
Przykładowy filtr w oddzielnej tabeli (funkcja FILTER):
=FILTER(
ANALIZA!A:Z;
ANALIZA!Kol_Poziom_wolumenu="Niski";
ANALIZA!Kol_Delta_proc_sztuki>=0,5;
(ANALIZA!Kol_Segment_wzrostu="TOP_rośnie")+(ANALIZA!Kol_Segment_wzrostu="Średnio_rośnie")
)Krok 4 – dla tak wyselekcjonowanych ofert sprawdź dostępność wariantów, stany magazynowe i widoczność reklamową. Jeżeli zaczynają rosnąć „same z siebie”, często wystarczy kosmetyczne wsparcie, żeby urosły kilka razy.
Co sprawdzić: czy liczba dni w okresie B (komórka B5) faktycznie obejmuje cały badany zakres, czy w filtrze przypadkiem nie używasz starej nazwy kolumny po modyfikacjach oraz czy oferty z „Poziom_wolumenu = Niski” nie mają ograniczeń dostępności (częsty powód niskiej średniej).
Formatowanie warunkowe jako wizualny radar
Przy większej liczbie ofert same liczby przestają wystarczać. Dobrze zaprojektowane formatowanie warunkowe pozwala dosłownie jednym rzutem oka odróżnić gwiazdy od problemów.
Krok 1 – zaznacz w arkuszu „ANALIZA” kluczowe kolumny: „Delta_%_sztuki”, „Delta_sztuki”, „Segment_wzrostu”, „Status_trendu”. Przejdź do Format > Formatowanie warunkowe.
Krok 2 – dodaj regułę dla „Delta_%_sztuki”:
- Zakres: kolumna „Delta_%_sztuki”,
- Formatuj komórki, jeżeli… > „Jest większe lub równe” > 0,5 – ustaw wyraźne zielone tło i pogrubienie,
- Druga reguła: „Jest mniejsze lub równe” > -0,3 – czerwone tło, biały tekst.
Krok 3 – dodaj reguły oparte na tekście dla „Segment_wzrostu”:
- Jeżeli tekst zawiera „TOP_rośnie” – ciemniejsza zieleń,
- Jeżeli zawiera „Spadek” – czerwień,
- Jeżeli zawiera „Niska_objętość” – jasnoszary, przytłumiony kolor.
Krok 4 – jeżeli pracujesz na kilku marketplace’ach, zrób podobne formatowanie po „Źródle” w osobnej kolumnie (różne kolory obramowania). Szybciej zauważysz, na której platformie pojawiają się najciekawsze ruchy.
Po takiej konfiguracji przewijanie arkusza zaczyna przypominać przegląd pulpitu menedżerskiego. Nawet bez dodatkowych dashboardów widzisz skupiska „zielonych” i „czerwonych” ofert w konkretnych kategoriach.
Co sprawdzić: czy kolejność reguł nie powoduje nadpisywania ważniejszych kolorów mniej istotnymi (w Google Sheets kolejność ma znaczenie), czy progi procentowe są sensownie ustawione oraz czy nie używasz zbyt intensywnych kolorów w zbyt wielu miejscach (arkusz zamienia się wtedy w „choinkę”).
Prosty „score” priorytetu działania
Przy kilkuset aktywnych ofertach trudno ręcznie decydować, którą zająć się w pierwszej kolejności. Pomaga prosty wskaźnik punktowy, który łączy wiele czynników w jedną liczbę.
Krok 1 – ustal kryteria. Przykładowo dla rosnących ofert:
- wysoka sprzedaż w okresie B (Sztuki_B, Przychód_B),
- wysoki procentowy wzrost (Delta_%_sztuki),
- dobra marża (%_marży),
- strategiczna kategoria (np. kategorie, które chcesz rozwijać).
Krok 2 – wystandaryzuj każde kryterium do skali punktowej. Prosty przykład w kolumnie „Score_wzrost”:
=MINUTA(
Zamiast komplikować, można użyć sumy kilku warunkowych punktów. Przykład w jednej formule (pseudo-współczynniki – dopasuj do siebie):
=SUMA(
JEŻELI([@Sztuki_B]>=50; 3; JEŻELI([@Sztuki_B]>=10; 2; JEŻELI([@Sztuki_B]>=5; 1; 0)));
JEŻELI([@Delta_%_sztuki]>=1; 3; JEŻELI([@Delta_%_sztuki]>=0,5; 2; JEŻELI([@Delta_%_sztuki]>=0,2; 1; 0)));
JEŻELI([@Procent_marży]>=0,3; 3; JEŻELI([@Procent_marży]>=0,2; 2; JEŻELI([@Procent_marży]>=0,1; 1; 0)));
JEŻELI([@Kategoria_docelowa]="Kategoria_strategiczna"; 2; 0)
)Krok 3 – posortuj arkusz po „Score_wzrost” malejąco i nałóż dodatkowy filtr na „Segment_wzrostu = TOP_rośnie” lub „Średnio_rośnie”. Pierwsza dwudziestka z listy to naturalni kandydaci do indywidualnego przeglądu i wzmocnienia.
Krok 4 – podobny wskaźnik możesz zbudować dla ofert spadających („Score_alarm”), ale z innymi wagami (tu większą rolę może odgrywać marża i udział oferty w całkowitym przychodzie).
Co sprawdzić: czy nie „karzesz” zbyt mocno produktów o niższej marży, które są kluczowe wolumenowo, czy rozkład punktów faktycznie różnicuje oferty (a nie daje większości podobny wynik) oraz czy lista TOP na pewno odzwierciedla biznesową intuicję – jeżeli nie, zmień wagi.
Łączenie danych z wielu marketplace’ów na poziomie produktu
Częstym problemem jest to, że ta sama oferta produktowa występuje na różnych marketplace’ach pod innymi ID_oferty. Analiza wzrostu powinna jednak patrzeć szerzej – na poziomie SKU lub EAN.
Krok 1 – upewnij się, że w arkuszu „CZYSZCZENIE” masz spójną kolumnę „SKU” lub „EAN_docelowy” po normalizacji. To powinien być główny klucz produktowy.
Krok 2 – w arkuszu „ANALIZA” przygotuj dodatkowe agregaty po produkcie, niezależne od pojedynczych ofert. Na dole arkusza lub w nowej sekcji użyj funkcji QUERY na istniejącej tabeli z porównaniem okresów, np.:
=QUERY(
ANALIZA!A:Z;
"select SKU,
sum(Sztuki_A) as Sztuki_A_produkt,
sum(Sztuki_B) as Sztuki_B_produkt,
sum(Przychód_A) as Przychód_A_produkt,
sum(Przychód_B) as Przychód_B_produkt
where SKU is not null
group by SKU
label sum(Sztuki_A) '', sum(Sztuki_B) '', sum(Przychód_A) '', sum(Przychód_B) ''";
1
)Krok 3 – dodaj na tej tabeli produktowej takie same kolumny różnicowe jak wcześniej („Delta_sztuki_produkt”, „Delta_%_sztuki_produkt” itd.). Teraz widzisz, czy dany produkt jako całość rośnie, niezależnie od różnic między marketplace’ami.
Krok 4 – połącz informacje z widoku produktowego i ofertowego. Np. w tabeli ofert dodaj kolumnę „Trend_produktu” pobieraną z tabeli produktowej przy pomocy XLOOKUP po SKU. Dzięki temu zobaczysz, czy spadek na jednej platformie jest kompensowany wzrostem na innej, czy też produkt globalnie traci.
=XLOOKUP(
[@SKU];
Tabela_produkty!A:A;
Tabela_produkty!Kol_Delta_proc_sztuki_produkt;
""
)Co sprawdzić: czy SKU/EAN są na pewno spójne między źródłami (brak spacji, duplikatów, różnych formatów), czy funkcja QUERY obejmuje cały zakres aktualnej tabeli oraz czy produkty bez danych w jednym z okresów są poprawnie obsłużone (np. 0 zamiast pustej komórki).
Prosty dashboard na osobnym arkuszu
Przy regularnej pracy z danymi dobrze zbudować jeden widok menedżerski, który pokaże tylko najważniejsze liczby i listy. Nie trzeba od razu używać Lookera – wystarczy oddzielny arkusz „DASHBOARD”.
Krok 1 – utwórz nowy arkusz „DASHBOARD” i podziel go logicznie na kilka sekcji: KPI na górze, listy rosnących/spadających ofert poniżej, ewentualnie kilka prostych wykresów.
Krok 2 – w części KPI użyj funkcji SUMA.JEŻELI lub SUMIFS, żeby policzyć m.in.:
- łączny przychód w okresie B,
- łączny przychód w okresie A,
- procentową zmianę przychodu,
- liczbę ofert w segmentach „TOP_rośnie”, „Spadek”, „Nowa_rozkręca_się”.
Przykład dla liczenia ofert „TOP_rośnie”:
=LICZ.JEŻELI(ANALIZA!Kol_Segment_wzrostu;"TOP_rośnie")Krok 3 – w sekcji „TOP rosnące oferty” wstaw formułę QUERY lub FILTER z sortowaniem, która wyświetli np. 20 ofert o najwyższym „Score_wzrost”. Przykład:
=QUERY(
ANALIZA!A:Z;
"select SKU, Tytuł_oferty, Marketplace, Sztuki_B, Delta_%_sztuki, Score_wzrost
where Segment_wzrostu = 'TOP_rośnie'
order by Score_wzrost desc
limit 20";
1
)Krok 4 – obok listy rosnących zrób analogiczną sekcję „TOP spadki” (np. po „Score_alarm” rosnąco). W praktyce przydają się też małe przyciski-filtry (np. rozwijane listy z nazwą marketplace’u lub kategorią), które zmieniają zakres w formułach QUERY przez odwołania do komórek z parametrami.
Krok 5 – dodaj 2–3 proste wykresy: np. kolumnowy z porównaniem przychodu okres A vs B oraz wykres liniowy pokazujący dzienną sprzedaż wybranej kategorii. Dane do wykresów najlepiej pobierać z przefiltrowanych tabel (np. z osobnych zakresów z QUERY), a nie bezpośrednio z „SUROWE” – łatwiej wtedy zmienić logikę bez przepinania każdego wykresu.
Krok 6 – ustaw jasną hierarchię wizualną: na górze 3–5 najważniejszych KPI, poniżej dwie listy (rosnące/spadające), na dole wykresy. Unikaj dodawania wszystkiego, co się da – dashboard ma służyć szybkiemu przeglądowi, resztę szczegółów i tak sprawdzisz w arkuszu „ANALIZA”.
Co sprawdzić: czy formuły w „DASHBOARD” nie są zbyt ciężkie (duże zagnieżdżone ARRAYFORMULA i QUERY mogą spowolnić arkusz), czy wszystkie kluczowe liczby odświeżają się po imporcie danych oraz czy użytkownik spoza zespołu analitycznego poradziłby sobie z odczytaniem widoku bez dodatkowych tłumaczeń.
Jeżeli cały proces zbudujesz raz porządnie – od importu i czyszczenia, przez standaryzację i metryki wzrostu, aż po prosty dashboard – codzienne szukanie rosnących ofert sprowadzi się do odświeżenia danych, przejrzenia kilku kolorowych wierszy i listy TOP. Reszta to już decyzje operacyjne: które oferty podbić budżetem, które zoptymalizować, a które wygasić, zanim zaczną ciągnąć wynik w dół.
Najczęściej zadawane pytania (FAQ)
Jakie kolumny muszą się znaleźć w eksporcie z marketplace, żeby analizować wzrost sprzedaży w Google Sheets?
Krytyczne są trzy grupy danych: identyfikatory, sprzedaż i czas. Bez nich nie policzysz dynamiki ani nie odróżnisz jednej oferty od drugiej.
Krok 1: zadbaj o identyfikatory – ID oferty, SKU i kategorię. Krok 2: dołóż dane sprzedażowe – liczbę sprzedanych sztuk, liczbę zamówień i cenę sprzedaży (najlepiej już po rabatach). Krok 3: uzupełnij o nazwę oferty/produktu i ID sprzedawcy, żeby móc porównywać konta i szybko odnajdywać pozycje.
Co sprawdzić: czy w każdym raporcie masz stałe kolumny: id_oferty, SKU, data, sztuki, zamowienia, cena. Jeśli którejś brakuje – spróbuj dobrać ją z innego raportu lub przez API.
Jak przygotować strukturę pliku w Google Sheets do analizy danych z marketplace’ów?
Najwygodniej działa prosty, powtarzalny szkielet pliku. Krok 1: utwórz arkusze: RAW, CZYSZCZENIE, ANALIZA, DASHBOARD, SŁOWNIKI. Krok 2: do RAW zawsze wklejaj lub importuj surowe CSV bez zmian. Krok 3: w CZYSZCZENIE przetwarzaj dane formułami (daty, kwoty, standardyzacja nazw), a w ANALIZA licz wskaźniki wzrostu i buduj tabele przestawne.
DASHBOARD wykorzystaj tylko do wykresów i podsumowań, a w SŁOWNIKI trzymaj mapy kategorii, listę sprzedawców, kursy walut. Dzięki temu przy kolejnym imporcie podmieniasz tylko dane w RAW, a cała reszta przelicza się sama.
Co sprawdzić: czy wszystkie formuły w kolejnych arkuszach odwołują się wyłącznie do RAW (np. RAW!A:A), a nie do ręcznie zaznaczonych zakresów typu RAW!A2:A1000.
Jakie dane czasowe są potrzebne, żeby znaleźć najszybciej rosnące oferty?
Bez poprawnych dat nie da się policzyć dynamiki. Minimum to: data sprzedaży (dzień, ewentualnie godzina) oraz okres raportowania (Data od / Data do lub zakres typu 2026-04-01 – 2026-04-07). Dodatkowo możesz dodać „tydzień” i „miesiąc”, czy to z eksportu, czy wyliczane funkcjami GOOGLE’a.
Najpraktyczniejszy układ do analizy wzrostu to dane zagregowane: jeden wiersz = jedna oferta + jedna data + liczba sprzedanych sztuk. Z takiej serii dziennych wyników łatwo policzyć sprzedaż tydzień do tygodnia, miesiąc do miesiąca i wychwycić oferty, które wystrzeliły.
Co sprawdzić: czy po zmianie formatu kolumny na „Data” Google Sheets poprawnie rozpoznaje wszystkie wartości, a nie zamienia części w tekst lub błędy.
Jak poradzić sobie z różnymi formatami dat, liczb i walut z różnych marketplace’ów?
Najpierw oddziel surowe dane od przetworzonych. Krok 1: w arkuszu RAW nie zmieniaj nic – wklejaj dane dokładnie tak, jak je pobierasz. Krok 2: w CZYSZCZENIE dodaj kolumny pomocnicze, w których konwertujesz tekst na liczby i daty (np. VALUE() / WARTOŚĆ(), DATEVALUE() / DATA.WARTOŚĆ()). Krok 3: ustaw jednolity format w całych kolumnach: typ „Data” dla dat i „Liczba” z dwoma miejscami po przecinku + wybraną walutą dla kwot.
Przykład z życia: Allegro podaje ceny z przecinkiem, a Amazon z kropką – jeśli w jednym arkuszu zsumujesz to „na żywca”, wyniki będą losowe. Rozdzielenie RAW i CZYSZCZENIE oraz jawna konwersja formatu likwiduje ten problem.
Co sprawdzić: czy w CZYSZCZENIE nie masz w jednej kolumnie mieszanki tekstu i liczb (mały zielony trójkąt w rogu komórki to znak ostrzegawczy).
Jakie dodatkowe atrybuty oferty i sprzedawcy pomagają odsiać „fałszywe” wzrosty?
Poza czystą sprzedażą przydają się atrybuty, które tłumaczą, dlaczego oferta rośnie i czy ten wzrost jest zdrowy. Po stronie produktu to m.in. brand/producent, stan (nowy/używany/odnowiony), typ oferty (Kup teraz, licytacja, promocja) oraz słowa kluczowe w tytule, które później można analizować funkcjami tekstowymi.
Po stronie sprzedawcy szukaj danych o jakości: rating (gwiazdki, % pozytywnych), liczba opinii, czas wysyłki, koszty dostawy. Dzięki temu łatwo odfiltrować oferty, które rosną tylko dlatego, że ktoś drastycznie zaniża cenę albo wozi towar tygodniami.
Co sprawdzić: czy w eksporcie masz ID sprzedawcy, które umożliwia połączenie danych sprzedażowych z osobnym raportem o jakości obsługi.
Jak nazwać kolumny i zakresy w Google Sheets, żeby formuły były stabilne przy kolejnych importach?
Dobra praktyka to proste, konsekwentne nazwy. Krok 1: usuń polskie znaki i spacje z nagłówków (np. zamiast „Średnia cena” użyj srednia_cena, zamiast „Data sprzedaży” – data_sprzedazy). Krok 2: ustaw stałą kolejność kluczowych kolumn: najpierw identyfikatory (id_oferty, sku), potem czas (data_sprzedazy), na końcu liczby (sztuki, zamowienia, cena).
Dla najczęściej używanych kolumn warto zdefiniować nazwane zakresy (Dane → Nazwane zakresy), np. „daty_sprzedazy”, „wolumen_sprzedazy”. Formuły typu =FILTER(wolumen_sprzedazy; daty_sprzedazy>=... są czytelniejsze i mniej podatne na błędy przy dodawaniu nowych kolumn.
Co sprawdzić: czy między kolejnymi miesiącami nie zmieniasz nazwy tej samej kolumny (np. raz „data”, raz „data_sprzedazy”), bo QUERY i inne funkcje przestaną działać poprawnie.
Najważniejsze wnioski
- Krok 1: zacznij od minimalnego zestawu danych – ID oferty, SKU, kategoria, liczba sztuk, liczba zamówień, cena, nazwa oferty oraz identyfikator sprzedawcy. Bez tych pól każda analiza wzrostu będzie oparta na domysłach, a nie na twardych liczbach.
- Krok 2: zadbaj o dane czasowe – data sprzedaży, okres raportowania i możliwość agregacji po dniu, tygodniu lub miesiącu. To one pozwalają odróżnić chwilowy „strzał” sprzedaży od stabilnego trendu rosnącej oferty.
- Model danych dziennych (oferta + data + sprzedaż za dzień) jest praktyczniejszy niż surowe dane transakcyjne, bo od razu buduje ciąg czasowy dla każdej oferty i ułatwia liczenie zmian tygodniowych czy miesięcznych w Google Sheets.
- Krok 3: wzbogacaj dane o atrybuty pomocnicze – brand, stan produktu, typ oferty, słowa kluczowe, rating sprzedawcy, liczbę opinii, czas i koszty dostawy. Dzięki temu odróżnisz zdrowy, powtarzalny wzrost od ofert opartych na dumpingu cenowego lub słabej jakości obsługi.
- Struktura pliku w Google Sheets powinna być stała i jasno podzielona: RAW (surowe dane), CZYSZCZENIE (ujednolicenie ID, dat i cen), ANALIZA (wskaźniki i tabele), DASHBOARD (wykresy), SŁOWNIKI (mapy kategorii, marki, kursy, sprzedawcy). To ogranicza chaos przy każdym kolejnym imporcie.
Źródła
- Google Sheets Function List. Google – Oficjalna dokumentacja funkcji arkuszy, m.in. QUERY, FILTER, PIVOT
- Analyze data in Google Sheets with pivot tables. Google – Instrukcje tworzenia i użycia tabel przestawnych w Google Sheets
- Data Cleaning. MIT OpenCourseWare – Podstawy czyszczenia danych: brakujące wartości, formaty dat, identyfikatory
- Data Wrangling Handbook. Open Knowledge Foundation – Praktyki porządkowania, łączenia i wzbogacania danych z wielu źródeł
- Data Analysis Using Spreadsheets. University of Colorado Boulder – Kurs o analizie danych w arkuszach: filtrowanie, sortowanie, metryki wzrostu
- Time Series Analysis. Princeton University Press – Wprowadzenie do analizy szeregów czasowych i dynamiki sprzedaży
- Measuring and Managing Performance in Organizations. Oxford University Press – Koncepcje wskaźników wzrostu, KPI sprzedaży i interpretacji trendów
- Retail Analytics: The Secret Weapon. Harvard Business Review Press – Zastosowanie analityki sprzedaży i danych produktowych w handlu detalicznym
- E‑commerce Analytics: Analyze and Improve Online Marketing and Sales. Wiley – Metody analizy danych e‑commerce, w tym marketplace’y i oferty produktowe
- GS1 General Specifications. GS1 – Standardy identyfikacji produktów (SKU, kody) i powiązań ofert z towarem






