Scenka startowa: kiedy tekst w Excelu blokuje analizę danych
Rozproszony chaos w kolumnach „Uwagi” i „Opis”
Raport sprzedaży wygląda obiecująco: tysiące wierszy, kolumny z datami, kwotami, numerami zamówień – wszystko da się szybko przefiltrować i zsumować. Problem zaczyna się w momencie, gdy trzeba odpowiedzieć na proste pozornie pytanie: „W ilu transakcjach klient zgłaszał reklamację lub opóźnienie dostawy?”. Odpowiedź kryje się w kolumnie „Uwagi”, w której każdy handlowiec wpisuje co chce i jak chce.
W jednym wierszu widnieje „reklamacja – kolor”, w innym „REKL. brak dostawy”, dalej „klient niezadowolony, spóźniona wysyłka”, a jeszcze gdzie indziej suchy skrót „opóźnienie”. Część wpisów po polsku, część po angielsku, w połowie wierszy literówki. Niemożliwe jest proste przefiltrowanie po słowie „reklamacja” czy „delay”. Przestaje pomagać klasyczne sortowanie, tabele przestawne nie mają na czym się oprzeć, a ręczne przeglądanie setek wierszy mija się z celem.
Właśnie tutaj wchodzi w grę analiza danych tekstowych w Excelu: od czyszczenia tekstu, przez wyciąganie konkretnych fragmentów, aż po sprytne kategoryzowanie opisów w spójne etykiety typu „Reklamacja”, „Opóźnienie dostawy”, „Pochwała”, „Pytanie produktowe”. Gdy tekst zostanie znormalizowany, raporty zaczynają działać – i nagle zyskowność produktów, najczęstsze problemy klientów czy powody zwrotów przestają być zagadką.
Dlaczego nieoczyszczony tekst blokuje analizę
Dane liczbowe w Excelu najczęściej są dość jednorodne – mają format daty, kwoty, procentu. Kolumny tekstowe („Opis”, „Uwagi”, „Komentarz”) to zupełnie inny świat. Pojawiają się w nich:
- różne wersje tej samej nazwy produktu lub usługi,
- literówki, skróty tworzone „na szybko”,
- mieszanka języków, znaków specjalnych i spacji,
- informacje upchane w jednym ciągu zamiast w osobnych kolumnach.
Bez uporządkowania takich danych trudno:
- zbudować sensowne filtrowanie (np. wszystkie zgłoszenia związane z dostawą),
- przypisać kategorie problemów (reklamacja, pytanie, sugestia),
- przygotować raporty jakości obsługi czy przyczyn zwrotów,
- zasilać innymi narzędziami (BI/Power BI, systemy CRM) wartościowe, uporządkowane pola.
W praktyce oznacza to, że dopóki tekst w Excelu nie zostanie znormalizowany i rozsądnie pocięty na elementy, wszystkie dalsze analizy – nawet najładniejsze wykresy – opierają się na przypadkowości.
Mini-wniosek: bez porządku w tekście nie ma rzetelnej analizy
Jeżeli dane tekstowe w Excelu są chaotyczne, każdy kolejny krok analityczny będzie obciążony błędem. Pierwszym zadaniem analityka lub osoby przygotowującej raport jest więc opanowanie narzędzi do czyszczenia, wyciągania i kategoryzacji danych tekstowych. To od nich zaczyna się droga od zbioru notatek do sensownych raportów.

Jak Excel „widzi” tekst – fundamenty pracy z danymi tekstowymi
Tekst a liczby: nie chodzi tylko o to, co widać na ekranie
Excel rozróżnia przede wszystkim typy danych, choć użytkownik często widzi jedynie „jak to wygląda”. Liczba może być sformatowana jako tekst, a tekst może przypominać liczbę – i tu pojawia się wiele nieporozumień przy analizie danych tekstowych. Zrozumienie różnicy między tym, co widać, a tym, co Excel uważa za faktyczny typ danych, jest kluczowe.
Typowe przykłady tekstu, który wygląda jak liczba:
- kody pocztowe z wiodącym zerem (np. „01-234”),
- numery katalogowe (np. „000123”),
- numery zamówień typu „2023-000045”,
- numery identyfikacyjne, które nigdy nie będą podlegać działaniom matematycznym.
Jeśli takie dane zostaną przypadkowo przekonwertowane na liczby, Excel usunie wiodące zera, zmieni format i utrudni późniejsze dopasowywanie oraz łączenie danych. Z drugiej strony, gdy liczby przechowywane są jako tekst (np. po imporcie z PDF), formuły SUMA czy ŚREDNIA ich nie obejmą, a sortowanie tekstowe da inny efekt niż sortowanie numeryczne.
Jak rozpoznać, że komórka zawiera tekst
W codziennej pracy pomaga kilka prostych sygnałów i funkcji:
- Wyrównanie – domyślnie tekst w Excelu jest wyrównany do lewej, liczby do prawej. Nie jest to reguła absolutna (mogło być ręcznie zmienione), ale daje pierwszy trop.
- Apostrof na początku – gdy komórka zaczyna się od apostrofu (’12345), Excel traktuje zawartość jako tekst i nie wyświetla tego apostrofu w komórce, lecz w pasku formuły.
- Funkcja T (T) –
=T(A1)zwróci tekst, jeśli A1 jest tekstem, lub pusty ciąg, jeśli to liczba lub data. - Funkcja TYPE (TYP) –
=TYP(A1)zwraca 2 dla tekstu, 1 dla liczby.
Gdy pojawiają się żółte trójkąciki w rogu komórki z komunikatem „Liczba zapisana jako tekst”, oznacza to, że Excel wykrył potencjalny problem i traktuje dane jak tekst, mimo że wyglądają na liczby.
Źródła tekstowego bałaganu
Najczęstsze źródła danych tekstowych, które wymagają czyszczenia i analizy:
- Eksporty z systemów – CRM, systemy magazynowe, sklepy internetowe często generują pliki CSV/XLSX z opisami produktów, uwagami do zamówień, komentarzami klientów.
- Kopiowanie z dokumentów PDF/WWW – wklejanie danych z zewnętrznych źródeł wprowadza niełamliwe spacje, ukryte znaki końca wiersza, tabulatory.
- Ręczne wpisywanie danych – każde dodatkowe słowo, skrót, literówka czy dodatkowa spacja wprowadza kolejną niejednorodność do analizy.
- Import danych z różnych krajów – mieszanka języków, znaków narodowych i odmiennych standardów zapisu.
Bez rozpoznania, skąd bierze się problematyczny tekst i jak Excel go widzi, trudno dobrać skuteczne narzędzia do czyszczenia i kategoryzacji. Dlatego pierwszym krokiem przed budowaniem formuł jest zidentyfikowanie typu danych i charakteru „brudu” w tekście.
Mini-wniosek: typ danych to filtr wstępny
Przed rozpoczęciem czyszczenia tekstu warto poświęcić chwilę na rozpoznanie, czy dane są faktycznie tekstem, czy tylko tak wyglądają. Użycie prostych funkcji T i TYP, sprawdzenie wyrównania oraz komunikatów o błędach pozwala uniknąć wielu pułapek przy dalszym przetwarzaniu danych tekstowych w Excelu.
Podstawowe narzędzia czyszczenia tekstu w Excelu – od ręcznych do półautomatycznych
Ręczne operacje i proste sztuczki ujednolicania tekstu
Pierwszy etap porządkowania tekstu rzadko wymaga skomplikowanych formuł. Często wystarczy kilka konsekwentnie stosowanych operacji, aby dane stały się bardziej jednorodne i zdatne do analizy.
Znajdź i zamień (Ctrl+H)
Narzędzie „Znajdź i zamień” jest jednym z najszybszych sposobów na globalne poprawki w danych tekstowych:
- ujednolicanie różnych wersji tej samej nazwy („rekl.” → „reklamacja”),
- usuwanie zbędnych fragmentów („klient:” → pusty ciąg),
- zamiana znaków specjalnych (np. „/” na „-” w numerach zamówień),
- zamiana podwójnych spacji na pojedyncze.
Praktyczny przykład: w kolumnie „Uwagi” pojawiają się wpisy „REKL.”, „reklam.” i „reklamacja”. Aby uprościć późniejszą kategoryzację, można je ujednolicić do jednego słowa „reklamacja”, wykonując kilka przemyślanych operacji Ctrl+H na zaznaczonym zakresie, a nie na całym arkuszu.
Ważną techniką jest wyszukiwanie „niewidocznych” znaków, np. końców wiersza (Alt+Enter). W oknie „Znajdź i zamień” można je wprowadzić, naciskając Ctrl+J w polu „Znajdź”. Dzięki temu da się usunąć ukryte przejścia do nowej linii w środku komórek i scalić tekst w jedną linię.
Tekst jako kolumny – szybkie rozbijanie na pola
Funkcja „Tekst jako kolumny” (Data > Text to Columns) pozwala rozdzielić tekst z jednej kolumny na kilka, np. według separatora „;”, „,”, spacji lub określonej szerokości. Idealnie sprawdza się, gdy w jednym polu zapisano wiele informacji, np. „Produkt A; 10 szt.; kolor czerwony”.
Ta funkcja bywa jednak zdradliwa:
- może zmieniać kody pocztowe w liczby i usuwać wiodące zera,
- może interpretować ciągi jako daty (np. „03-04” jako 3 kwietnia),
- nadpisuje dane w sąsiednich kolumnach, jeśli przed uruchomieniem nie utworzy się pustych kolumn na prawo.
Bezpieczniejszą praktyką jest skopiowanie analizowanej kolumny do nowego arkusza, uruchomienie „Tekst jako kolumny”, a po sprawdzeniu efektów – przeniesienie wyników do właściwego pliku. Jeśli w organizacji działają powtarzalne importy, lepiej zainwestować chwilę w Power Query, który daje większą kontrolę nad typem danych.
Usuwanie spacji i „niewidocznych śmieci”
Spacje na początku, w środku i na końcu tekstu potrafią zablokować porównywanie i łączenie danych. Klasyczna funkcja:
- TRIM (USUŃ.ZBĘDNE.ODSTĘPY) – usuwa wiodące i końcowe spacje oraz zamienia wielokrotne spacje wewnątrz tekstu na pojedyncze.
Problem w tym, że TRIM działa na „zwykłe” spacje (kod 32), a często z kopiowanych danych pojawia się niełamliwa spacja (kod 160). Wtedy niezbędne staje się:
- połączenie TRIM z funkcją ZASTĄP (SUBSTITUTE):
=USUŃ.ZBĘDNE.ODSTĘPY(ZASTĄP(A1;ZNAK(160);"")), - lub użycie Power Query, który ma wbudowane opcje usuwania białych znaków.
Dodatkowo funkcja CLEAN (OCZYŚĆ) usuwa z tekstu znaki niedrukowalne (np. z importów z systemów), jednak nie radzi sobie z niełamliwą spacją, dlatego często trzeba stosować kombinacje kilku funkcji.
Funkcje tekstowe pierwszej potrzeby
Podstawowy zestaw do pracy z tekstem
Niezależnie od wersji Excela, kilka funkcji tekstowych pojawia się w pracy nad danymi tekstowymi niemal zawsze:
- LEFT (LEWY) – zwraca określoną liczbę znaków od lewej strony tekstu:
=LEWY(A1;3). - RIGHT (PRAWY) – zwraca określoną liczbę znaków od prawej strony:
=PRAWY(A1;4). - MID (FRAGMENT.TEKSTU) – zwraca fragment tekstu, podając pozycję początkową i długość:
=FRAGMENT.TEKSTU(A1;5;3). - LEN (DŁ) – długość tekstu w znakach:
=DŁ(A1). - CONCAT / TEXTJOIN (ZŁĄCZ.TEKSTY) – łączenie wielu fragmentów w jedno pole z separatorem lub bez.
W starszych wersjach często stosuje się po prostu operator & do łączenia tekstu: =A1 & " " & B1. Funkcja TEXTJOIN (ZŁĄCZ.TEKSTY) jest bardziej elastyczna – pozwala np. pominąć puste komórki i użyć jednego separatora między wszystkimi elementami.
Standaryzacja wielkości liter
Nie ma nic gorszego niż mieszanka „Reklamacja”, „REKLAMACJA”, „reklamacja” w jednej kolumnie, gdy próbujesz filtrować tekst lub tworzyć segmenty. Przydają się trzy funkcje:
- UPPER (LITERY.WIELKIE) – zamienia cały tekst na wielkie litery:
=LITERY.WIELKIE(A1). - LOWER (LITERY.MAŁE) – wszystko na małe litery:
=LITERY.MAŁE(A1). - PROPER (Z.WIELKIEJ.LITERY) – pierwsza litera każdego słowa wielka, reszta mała:
=Z.WIELKIEJ.LITERY(A1).
Przy analizie tekstu do kategoryzacji bardzo wygodne jest konwertowanie wszystkiego do małych liter, aby wyszukiwanie słów kluczowych było odporne na różnice w zapisie. Często łączy się to z innymi funkcjami, np. =LITERY.MAŁE(USUŃ.ZBĘDNE.ODSTĘPY(A1)), aby jednocześnie oczyścić odstępy i ujednolicić wielkość liter.
Prosty przykład – kod produktu z opisu
Prosty przykład – kod produktu z opisu (dokończenie)
Wyobraź sobie kolumnę „Opis”, w której ludzie wpisywali: „Buty B1234 czarne rozm. 42”, „B1234 buty męskie 42”, „rozmiar 42 model B1234”. Szef chce raport sprzedaży po kodzie produktu „B1234”, ale w systemie masz tylko ten opis.
Jeśli kod ma stałą długość (np. 5 znaków, litera + 4 cyfry) i zawsze zaczyna się od „B”, można użyć kombinacji funkcji wyszukujących pozycję znaku i wycinających fragment:
- najpierw znaleźć pozycję litery „B”:
=ZNAJDŹ("B";A2), - następnie wyciąć 5 znaków od tej pozycji:
=FRAGMENT.TEKSTU(A2;ZNAJDŹ("B";A2);5).
Taka formuła:
=FRAGMENT.TEKSTU(A2;ZNAJDŹ("B";A2);5)zwróci „B1234” niezależnie od tego, gdzie w środku opisu ten kod się znajduje, o ile spełnione są dwa warunki: kod zawsze zaczyna się od „B” i ma stałą długość. To pierwszy krok do późniejszej kategoryzacji sprzedaży po modelu produktu.
Mini-wniosek po takim ćwiczeniu bywa prosty: im bardziej standaryzujesz sposób zapisu (np. długość kodu, prefiksy), tym mniej „akrobatyki” w formułach potrzebujesz podczas analizy.
Półautomatyczne czyszczenie tekstu za pomocą Power Query
Czasem kończy się miejsce na sprytne formuły i ręczne poprawki. Przykład: co tydzień dostajesz eksport z systemu zamówień, w którym w kolumnie „Komentarz klienta” lądują wielolinijkowe uwagi, dziwne symbole i spacje z kosmosu. Ręczne poprawki po trzecim tygodniu zaczynają frustrować.
W takich sytuacjach opłaca się raz zdefiniować kroki czyszczenia w Power Query i uruchamiać je przy każdym imporcie jednym kliknięciem „Odśwież”. Podstawowy schemat wygląda podobnie niezależnie od rodzaju danych.
Wczytanie i pierwsze porządki
Typowy proces zaczyna się od wczytania tabeli do Power Query (Dane > Z tabeli/zakresu). W edytorze można zbudować sekwencję kroków, które przy przyszłym imporcie odtworzą się automatycznie:
- zmiana typu kolumn na „Tekst” tam, gdzie nie chcesz, by Power Query zgadywał (np. przy kodach, numerach zamówień),
- przycięcie spacji (Transformacja > Format > Przytnij),
- usunięcie pierwszych/ostatnich znaków, jeśli masz stałe prefiksy/sufiksy w polu, a nie chcesz ich widzieć,
- zamiana wartości (prawy przycisk > Zamień wartości) dla szybkiego ujednolicania słowników, skrótów, literówek.
Każda taka akcja zapisuje się jako kolejny krok. Przy kolejnym imporcie nie myślisz o tym drugi raz – wystarczy użyć „Odśwież” i Power Query przeprowadzi te same operacje na nowych danych.
Usuwanie „brudów” trudnych dla standardowego Excela
Power Query dosyć dobrze radzi sobie z białymi znakami, końcami linii i nietypowymi odstępami. Kilka kliknięć potrafi zastąpić rozbudowane kombinacje funkcji:
- zamiana znaków końca linii na spację (Transformacja > Zamień wartości, w polu „Znajdź” wklejasz znak nowej linii skopiowany z komórki),
- usuwanie podwójnych i potrójnych spacji za pomocą kilku kolejnych „Zamień wartości” lub jednego kroku z wyrażeniem M (dla bardziej zaawansowanych),
- filtrowanie wierszy zawierających konkretne frazy (Filtr tekstu > Zawiera/Nie zawiera) już na etapie ładowania danych – dzięki temu do arkusza trafia mniej śmieci.
Jeżeli do tej pory walczyłeś z kombinacją OCZYŚĆ, USUŃ.ZBĘDNE.ODSTĘPY i ZASTĄP, czasem szybciej jest przerzucić całość do Power Query i zbudować prostą sekwencję klików.
Mały schemat pracy: od brudnego eksportu do czystej tabeli
W praktyce dobrze działa prosty schemat:
- Zaimportuj surowy plik CSV do nowego arkusza.
- Stwórz z niego tabelę (Ctrl+T) i wczytaj do Power Query.
- W edytorze zrób:
- konwersję typów na „Tekst” dla opisów, kodów, ID,
- „Przytnij” i „Oczyść” (Format > Przytnij/Oczyść) dla kluczowych kolumn tekstowych,
- zamianę oczywistych skrótów i błędów (np. „REKL.” → „reklamacja”, „reklamacj” → „reklamacja”),
- opcjonalnie: rozbij kolumnę tekstową na kilka (kolor, rozmiar, typ) funkcją „Rozdziel kolumny” według separatora.
- Załaduj wynik do nowego arkusza jako „Tylko połączenie + raport przestawny” lub zwykłą tabelę.
Gdy następnym razem dostaniesz analogiczny eksport, podmieniasz plik źródłowy i klikasz „Odśwież”. Koszt jednorazowego zbudowania tego procesu szybko się zwraca, gdy dane napływają cyklicznie.

Wyciąganie fragmentów tekstu według wzorca – praktyczne schematy formuł
Najczęściej prawdziwa informacja nie leży w całym tekście, tylko w jego kawałku: ktoś w jednej kolumnie wpisuje „Zamówienie #FV-2024-00123 od klienta X”, a ciebie interesuje tylko numer faktury albo kraj z adresu dostawy. Tu zaczyna się zabawa we wzorce.
Wyciąganie tekstu pomiędzy dwoma znacznikami
Klasyczna sytuacja: w komentarzu zamówienia widnieje „[REKLAMACJA] uszkodzone opakowanie”. Chcesz wydobyć wszystko między nawiasami kwadratowymi, żeby później pogrupować rodzaje zgłoszeń.
Jeżeli znasz początek i koniec fragmentu, da się zbudować formułę „od znacznika do znacznika”:
=FRAGMENT.TEKSTU(
A2;
ZNAJDŹ("[";A2)+1;
ZNAJDŹ("]";A2)-ZNAJDŹ("[";A2)-1
)Jak to działa krok po kroku:
ZNAJDŹ("[";A2)– daje pozycję otwierającego nawiasu,ZNAJDŹ("]";A2)– pozycja zamykającego nawiasu,- różnica to długość fragmentu wewnątrz nawiasów,
FRAGMENT.TEKSTUpobiera odpowiednią liczbę znaków, przesuwając start o 1, żeby pominąć sam nawias.
Ten sam schemat można zastosować do wielu innych par znaczników: „<” i „>”, „(” i „)”, „START:” i „:KONIEC” – wystarczy podmienić teksty w funkcji ZNAJDŹ.
Mini-wniosek: jeżeli możesz narzucić współpracownikom sposób zapisu (np. „[KATEGORIA] reszta opisu”), późniejsze wyciąganie danych jest kwestią jednej formuły kopiowanej w dół.
Wyciąganie elementu z listy rozdzielonej separatorem
W wielu systemach dostajesz w jednym polu listę wartości: „PL;DE;FR”, „czerwony|42|męski”, „email,telefon,czat”. Do analizy potrzebujesz np. tylko drugi element listy albo ostatni.
Drugi element z listy rozdzielonej średnikiem
Przy danych typu „PL;DE;FR” (w A2) możesz użyć prostego triku opartego na zamianie separatorów i funkcji FRAGMENT.TEKSTU:
=FRAGMENT.TEKSTU(
A2;
ZNAJDŹ(":";ZASTĄP(A2;";";":";1))+1;
ZNAJDŹ(":";ZASTĄP(A2;";";":";2))
-ZNAJDŹ(":";ZASTĄP(A2;";";":";1))-1
)Działa to tak, że funkcja ZASTĄP zmienia pierwsze i drugie wystąpienie „;” na dwukropek „:”, dzięki czemu można zlokalizować początek i koniec drugiego elementu. Schemat jest zawiły, ale bardzo elastyczny – sprawdza się, gdy nie masz dostępu do nowszych funkcji typu TEKST.PO, TEKST.PRZED, TEKST.POMIĘDZY (w Microsoft 365).
Nowsze funkcje: TEKST.PRZED / TEKST.PO / TEKST.DZIEL
Jeśli korzystasz z Microsoft 365, sprawa staje się dużo prostsza. Załóżmy, że w A2 masz „PL;DE;FR”.
- Pierwszy element:
=TEKST.PRZED(A2;";") - Ostatni element (od prawej):
=TEKST.PO(A2;"*";-1)Przy czym trik polega na tym, że znak „*” w tym przykładzie to dowolny ciąg – często lepiej użyć:
=TEKST.PO(A2;"*";-1)
Praktyczniejszym narzędziem jest TEKST.DZIEL, który w jednej komórce potrafi rozlać wynik na kilka kolumn:
=TEKST.DZIEL(A2;";")W efekcie „PL;DE;FR” zamienia się w trzy kolumny: „PL” | „DE” | „FR”. To taka bardziej elastyczna wersja „Tekst jako kolumny”, ale działająca dynamicznie – aktualizuje się po zmianie w A2.
Wyciąganie liczb z tekstu
W raportach sprzedaży często spotykasz opisy typu „Zwrócono 3 szt. z 10”, „Upust 15% na zamówienie”, „Dostawa w 24h”. Aby zbudować wykres lub tabelę przestawną, potrzebujesz samej liczby, bez liter i innych znaków.
Klasyczne podejście z funkcjami tekstowymi
Jeśli liczba zawsze jest w tym samym miejscu (np. pierwsze 2 znaki, ostatnie 3 znaki), wystarczy LEWY lub PRAWY oraz konwersja na liczbę:
=WARTOŚĆ(PRAWY(A2;2))Przy bardziej złożonym tekście, gdzie liczba jest „gdzieś w środku”, przydaje się kombinacja ZNAJDŹ, FRAGMENT.TEKSTU i WARTOŚĆ. Przykład: opis „Upust 15% na zamówienie” – liczba jest między spacją a procentem:
=WARTOŚĆ(
FRAGMENT.TEKSTU(
A2;
ZNAJDŹ(" ";A2)+1;
ZNAJDŹ("%";A2)-ZNAJDŹ(" ";A2)-1
)
)To rozwiązanie zakłada, że między słowem „Upust” a liczbą zawsze jest pojedyncza spacja, a po liczbie – znak „%”. Jeśli opisy są bardziej zróżnicowane, trzeba budować formuły z dodatkowymi zabezpieczeniami (np. JEŻELI.BŁĄD), aby nie generować błędów w wierszach bez tego wzorca.
Nowsze funkcje: WYODRĘBNIJ.LICZBY
Jeśli dysponujesz najnowszą wersją Excel 365 z funkcją WYODRĘBNIJ.LICZBY, praca z liczbami w tekście staje się banalna. Przykład:
=WYODRĘBNIJ.LICZBY(A2)Formuła zwróci wszystkie znalezione liczby w tekście jako jedną wartość (domyślnie łączy cyfry). Dla „Upust 15% na 2 sztuki” zwróci „152”, więc jeśli zależy ci tylko na pierwszej liczbie, możesz użyć parametru, który ogranicza wynik lub połączyć to z innymi funkcjami.
W scenariuszach z fakturami, numerami zamówień czy ID klientów taka funkcja potrafi oszczędzić sporo czasu, bo nie musisz już zgadywać, gdzie w tekście stoi liczba – Excel sam ją wyciąga.
Wyciąganie domeny z adresu e-mail
Bardzo praktyczne zadanie przy segmentacji klientów: z kolumny z adresami e-mail wyodrębnić domenę (np. „gmail.com”, „firma.pl”), żeby później porównać zachowania klientów indywidualnych i firmowych.
Przy adresie w komórce A2 możesz użyć prostego schematu „po znaku @”:
=TEKST.PO(A2;"@")Jeśli nie masz nowszych funkcji, równie dobrze zadziała klasyka:
=FRAGMENT.TEKSTU(
A2;
ZNAJDŹ("@";A2)+1;
DŁ(A2)-ZNAJDŹ("@";A2)
)Jeżeli zależy ci tylko na „rdzeniu” domeny (bez końcówki typu „.pl”, „.com”), możesz pójść krok dalej i wyciąć część przed pierwszą kropką:
=LEWY(
TEKST.PO(A2;"@");
ZNAJDŹ(".";TEKST.PO(A2;"@"))-1
)W ten sposób z „anna@firma.com” otrzymasz „firma”, a z „user@gmail.com” – „gmail”. Taki prosty zabieg szybko pozwala zobaczyć, jak duża część twojej bazy to poczta prywatna vs firmowa.
Słowa kluczowe w tekście – podstawa do kategoryzacji
Przy większej liczbie zgłoszeń serwisowych szybko pojawia się powtarzający się problem: na liście masz kilkaset opisów typu „brak dostawy”, „późna dostawa”, „kurier nie przyjechał”, a ktoś prosi o raport „ile mieliśmy problemów z dostawą, ile z fakturą, a ile z jakością produktu?”. Opisy są swobodne, ale da się je sprowadzić do kilku kategorii.
Najprostszy sposób to szukanie słów kluczowych w tekście i przypisywanie im etykiet kategorii. Kluczowe jest to, żeby ustalić słownik danych fraz, a później konsekwentnie go stosować.
Szukanie słów kluczowych funkcją ZNAJDŹ / SZUKAJ.TEKST
Podstawą jest sprawdzenie, czy w tekście w ogóle występuje dane słowo (np. „dostaw”, „faktura”, „reklamacj”). Klasyczny schemat wygląda tak:
=JEŻELI(
CZY.LICZBA(
ZNAJDŹ("dostaw";A2)
);
"dostawa";
""
)Jeżeli w opisie w A2 znajduje się ciąg „dostaw”, formuła zwróci „dostawa”, w przeciwnym wypadku pusty tekst. Taki prosty warunek można skopiować dla innych słów kluczowych: „faktura”, „zwrot”, „jakość” itd.
Przy bardziej rozbudowanych opisach praktyczniejsza jest wersja niewrażliwa na wielkość liter, czyli SZUKAJ.TEKST:
=JEŻELI(
CZY.LICZBA(
SZUKAJ.TEKST("faktura";A2)
);
"faktura";
""
)To zabezpiecza cię przed różnymi wariantami typu „FAKTURA”, „Faktura”, „faktura”.
Prosta kategoryzacja wielopoziomowa
Gdy kategorii jest kilka, pojawia się pytanie, która ma mieć pierwszeństwo. Przykład: opis „opóźniona dostawa, błędna faktura” – do jakiego kubełka powinien trafić? Najprościej ułożyć priorytety w jednej formule warunkowej.
Przykładowy schemat przypisania jednej kategorii na podstawie wielu słów kluczowych (A2 – opis):
=JEŻELI(
CZY.LICZBA(SZUKAJ.TEKST("reklamacj";A2));
"reklamacja";
JEŻELI(
CZY.LICZBA(SZUKAJ.TEKST("dostaw";A2));
"dostawa";
JEŻELI(
CZY.LICZBA(SZUKAJ.TEKST("faktur";A2));
"faktura";
"inne"
)
)
)Działa to w taki sposób:
- jeśli opis zawiera jakąkolwiek formę „reklamacj” (np. „reklamacja”, „reklamacyjny”), wygrywa kategoria „reklamacja”,
- w przeciwnym razie sprawdzana jest „dostaw”,
- jeśli nie znaleziono „dostaw”, szukana jest „faktur”,
- gdy żadne słowo nie występuje – wiersz trafia do kategorii „inne”.
Mini-wniosek: samo ułożenie kolejności warunków jest już decyzją analityczną – warto ustalić ją z osobą odpowiedzialną za raport, żeby uniknąć dyskusji, dlaczego dany wiersz trafił do tej, a nie innej grupy.
Słownik fraz w osobnej tabeli zamiast formuły-potwora
Gdy słów kluczowych robi się kilkanaście lub więcej, gniazdowe JEŻELI zaczyna być nieczytelne. Lepszym podejściem jest zbudowanie małego słownika w innej tabeli, np.:
| Fraza | Kategoria |
|---|---|
| dostaw | dostawa |
| kurier | dostawa |
| faktur | faktura |
| paragon | faktura |
| reklamacj | reklamacja |
Tabelę nazwij np. tblSlownik. Do komórki B2 (kategoria dla opisu z A2) możesz wtedy podejść bardziej elastycznie, zwłaszcza w Microsoft 365 z funkcjami tablicowymi:
=LET(
opis;A2;
frazy;tblSlownik[Fraza];
kategorie;tblSlownik[Kategoria];
maska;CZY.LICZBA(SZUKAJ.TEKST(frazy;opis));
WYBIERZ.WIERSZE(kategorie;DOPASUJ(PRAWDA;maska;0))
)Formuła:
- szuka wszystkich fraz z tabeli słownikowej w opisie,
- tworzy tablicę PRAWDA/FAŁSZ (
maska), - zwraca kategorię odpowiadającą pierwszej znalezionej frazie.
Możesz wtedy rozbudowywać słownik, dodać nowe frazy, poprawić literówki – bez dotykania formuły. Wystarczy, że tabela ma stabilne nagłówki i nazwę.
Liczenie wierszy z daną kategorią lub słowem
Po kategoryzacji kolejny krok to proste podsumowania. Jeśli w kolumnie B masz już gotową kategorię (np. „dostawa”, „faktura”, „reklamacja”), liczba wierszy w danej grupie to kwestia jednej funkcji:
=LICZ.JEŻELI(B:B;"dostawa")Gdy chcesz policzyć wiersze zawierające konkretne słowo w opisie (bez wcześniejszej kolumny z kategorią), użyjesz kombinacji z LICZ.WARUNKI i maską tablicową lub przefiltrujesz dane w tabeli i zrobisz zwykłe sumowanie filtrowane. Przy regularnej analizie lepiej jednak zainwestować w dodatkową kolumnę „Kategoria”, bo późniejsze raporty stają się znacznie prostsze.
Kategoryzacja opisów z wykorzystaniem wyszukiwanych fraz i tabel przestawnych
W pewnym momencie opisów robi się tyle, że przeglądanie ich wiersz po wierszu przestaje mieć sens. Chcesz zobaczyć, jak rozkładają się tematy zgłoszeń, ale również przejść od ogólnej kategorii do konkretu, gdy coś cię zainteresuje.
Dobry wzorzec pracy wygląda tak: dodatkowa kolumna z kategorią → tabela → tabela przestawna → drill-down po ciekawych pozycjach.
Od kolumny z kategorią do raportu przestawnego
Załóżmy, że masz tabelę z kolumnami: Data, Klient, Opis, Kategoria. Po zbudowaniu kategorii za pomocą słów kluczowych możesz wstawić tabelę przestawną:
- Zaznacz dowolną komórkę w tabeli z danymi.
- Wstaw > Tabela przestawna.
- Jako wiersze ustaw „Kategoria”, jako wartości „Liczba wierszy” (np. Dowolne pole > Licznik).
W kilka sekund dostajesz prosty podział: ile zgłoszeń trafiło do „dostawa”, ile do „faktura”, ile do „reklamacja”. Jeśli chcesz, możesz dorzucić do kolumn np. miesiąc lub kwartał (pole Data zgrupowane w tabeli przestawnej).
Schodzenie w dół do konkretnych przypadków
Gdy jakaś kategoria nagle „wystrzeli” – np. widzisz gwałtowny wzrost liczby problemów z dostawą – wystarczy podwójne kliknięcie w liczbę w tabeli przestawnej. Excel wygeneruje nowy arkusz z listą wszystkich wierszy źródłowych, które utworzyły tę wartość.
To szybki sposób na przejście od ogólnej statystyki do konkretnego tekstu zgłoszenia, bez ręcznego filtrowania tabeli źródłowej. Dobrze sprawdza się w codziennej pracy zespołów obsługi klienta, gdzie jedna osoba patrzy na „obrazek z lotu ptaka”, a inna – na konkretne case’y.
Łączenie kilku kategorii w jedną grupę
Czasem słownik kategorii robi się zbyt szczegółowy: „dostawa – opóźnienie”, „dostawa – brak towaru”, „dostawa – błąd kuriera”. W analizie zarządczej chcesz jednak zobaczyć jedną zbiorczą kategorię „Dostawa”. Rozwiązać to można na dwa sposoby.
Pierwszy, prostszy: zbuduj dwie kolumny – „Kategoria szczegółowa” i „Kategoria ogólna”. W „szczegółowej” trzymaj dokładny opis, a w „ogólnej” – prosty kod typu „Dostawa”, „Faktura”, „Reklamacja”. Potem w tabeli przestawnej używasz tej drugiej to kolumny.
Drugi: grupowanie ręczne w tabeli przestawnej. Gdy masz w wierszach listę bardziej granularnych kategorii, możesz zaznaczyć kilka z nich, kliknąć prawym przyciskiem i wybrać „Grupuj”. Powstanie nowa grupa, którą możesz nazwać „Dostawa”. Ten wariant jest szybki, ale grupy funkcjonują tylko w danej tabeli przestawnej; jeśli chcesz je wykorzystywać w kilku raportach, lepsza będzie osobna kolumna w źródle.
Kategoryzacja na podstawie wielu słów kluczowych jednocześnie
W praktyce ten sam opis często zawiera kilka różnych wątków. Tekst typu „opóźniona dostawa, dodatkowo otrzymano błędną fakturę” dotyczy dwóch różnych obszarów. Raz potrzebujesz jednej „głównej” kategorii, innym razem – pełnej listy tagów, żeby później filtrować po dowolnym z nich.
Tworzenie listy tagów w jednej komórce
W Microsoft 365 możesz zbudować formułę, która zwróci wszystkie pasujące słowa kluczowe w formie tagów oddzielonych przecinkiem. Znów użyj tabeli słownikowej tblSlownik z kolumnami „Fraza” i „Kategoria”.
=LET(
opis;A2;
frazy;tblSlownik[Fraza];
kategorie;tblSlownik[Kategoria];
maska;CZY.LICZBA(SZUKAJ.TEKST(frazy;opis));
dopasowane;FILTR(kategorie;maska);
POŁĄCZ.TEKSTY(", ";PRAWDA;UNIKATOWE(dopasowane))
)Jeżeli w opisie występowały np. słowa powiązane z „dostawą” i „fakturą”, wynik może wyglądać tak: „dostawa, faktura”. W jednej komórce masz pełną listę tematów dotykanych przez zgłoszenie.
Takie tagi można później rozwijać w Power Query lub rozdzielać na kolumny (np. funkcją TEKST.DZIEL), jeżeli chcesz mieć możliwość filtrowania po każdej kategorii osobno.
Tagi jako podstawa filtrowania i widoków
Przy kolumnie z tagami łatwo zbudować proste filtry: wystarczy włączyć filtr na kolumnie i wpisać w pole wyszukiwania „faktura”, aby zobaczyć tylko te zgłoszenia, gdzie tag obejmuje tę kategorię. Możesz też chcieć mieć wiele widoków: osobno lista wszystkich zgłoszeń z „dostawą”, osobno z „jakością”.
Dobrą praktyką jest przechowywanie oryginalnego opisu bez zmian, a obok – jedna lub kilka kolumn technicznych: „Kategoria główna”, „Tagi”, „Tagi – techniczne” (np. kody). Opis zostawiasz analitykom biznesowym, a kolumny techniczne – formułom i raportom.
Łączenie kategoryzacji z czyszczeniem danych
Przy słowach kluczowych wracają wszystkie wcześniejsze problemy z jakością tekstu. Jeśli raz masz „Reklamacja uszkodzenia”, a raz „reklamacją uszkodzenai”, proste SZUKAJ.TEKST("reklamacja";…) zawiedzie. Dlatego przed kategoryzacją przydaje się lekka normalizacja tekstu.
Ujednolicenie wielkości liter i polskich znaków
Pierwszy krok to sprowadzenie tekstu do jednego formatu – np. małych liter bez polskich ogonków. Schemat w dodatkowej kolumnie pomocniczej (B2) może wyglądać tak:
=USUŃ.ZBĘDNE.ODSTĘPY(
PODSTAW(
PODSTAW(
PODSTAW(
PODSTAW(
PODSTAW(
PODSTAW(
PODSTAW(
POMNIEJSZ(A2);
"ą";"a"
);
"ć";"c"
);
"ę";"e"
);
"ł";"l"
);
"ń";"n"
);
"ó";"o"
);
"ś";"s"
)
)Formuła jest długa, ale schemat prosty: POMNIEJSZ zamienia litery na małe, PODSTAW usuwa polskie znaki, a USUŃ.ZBĘDNE.ODSTĘPY porządkuje spacje. Dzięki takiemu przygotowaniu możesz później szukać fraz typu „reklamacja”, „dostawa”, „faktura” nawet wtedy, gdy użytkownik napisał „Reklamacją”, „FaktuRA”, „dostawą”.
W „czystej” kolumnie pomocniczej trzymasz wersję techniczną, a w oryginalnej – tekst widoczny dla użytkownika. Kategoryzację opierasz na tej pierwszej, ale w raportach pokazujesz tę drugą.
Prosty leksykon błędów i skrótów
Jeśli wiesz, że w danych powtarzają się te same skróty lub literówki („rekl.”, „reklamajca”, „dostawta”), możesz dodać etap zamian jeszcze przed kategoryzacją. Najwygodniej w Power Query, ale w arkuszu także da się to ogarnąć.
Zbuduj dodatkową tabelkę ze „złą” i „dobrą” wersją słów, np.:
| Stare | Nowe |
|---|---|
| rekl. | reklamacja |
| reklamajca | reklamacja |
| dostawta | dostawa |
Co warto zapamiętać
- Chaotyczne kolumny typu „Uwagi” czy „Opis” potrafią zablokować całą analizę – bez ujednolicenia zapisów nie da się rzetelnie policzyć np. reklamacji, opóźnień dostaw czy powodów zwrotów.
- Kluczowym etapem jest normalizacja tekstu: czyszczenie, wyciąganie fragmentów i zamiana swobodnych opisów na spójne etykiety („Reklamacja”, „Opóźnienie dostawy”, „Pochwała”, „Pytanie produktowe”), dopiero wtedy raporty zaczynają mieć sens.
- Excel inaczej traktuje tekst i liczby, nawet jeśli na ekranie wyglądają podobnie – kody pocztowe, numery zamówień czy identyfikatory muszą pozostać tekstem, bo ich „zliczanie” czy usuwanie zer z przodu niszczy dane.
- Umiejętność rozpoznania typu danych (wyrównanie, apostrof, funkcje T/TYP, żółte trójkąciki) to filtr wstępny – zanim zacznie się porządki, trzeba wiedzieć, z czym ma się do czynienia w każdej kolumnie.
- Największy bałagan tekstowy pochodzi z eksportów systemowych, kopiowania z PDF/WWW, ręcznego wprowadzania i mieszanek językowych – każde takie źródło wnosi swoje „śmieci”: niełamliwe spacje, tabulatory, literówki, skróty.
- Dopóki tekst nie zostanie rozsądnie „pocięty” na elementy (np. osobne kolumny dla typu zgłoszenia, produktu, przyczyny), wykresy i tabele przestawne opierają się bardziej na przypadkowości niż na faktach.






