W poprzednim rozdziale wrzucałeś do czatu ładny plik CSV i zadawałeś mu pytania. Wygodne. Problem w tym, że w codziennej pracy często o taki plik można się tylko pomodlić, a dane mamy w megabajtach tekstu. Czterdzieści maili z cenami od dostawców, PDF z cennikiem na osiemnaście stron, zdjęcie protokołu zrobione telefonem na budowie i wątek na Teamsie, w którym trzy osoby podawały terminy w trzech różnych formatach.
I ktoś to musi przepisać do Excela. Padło na Ciebie.
To jest robota, w której chatbot jest naprawdę dobry, bo nie polega na myśleniu, tylko na cierpliwości. A cierpliwość maszyna ma nieskończoną dopóki ma prąd i tokeny.

Tu ryzyko wygląda inaczej niż w poprzednim rozdziale
Przy analizie danych bałem się o liczenie. Model potrafił oszacować sumę zamiast ją policzyć, więc kazałem mu pisać kod.
Przy przepisywaniu nie ma czego liczyć. Jest za to coś gorszego: model widzi niekompletne źródło i grzecznie uzupełnia luki. Faktura ma wyblakłą kwotę w trzecim wierszu, więc wstawia liczbę, która pasuje do reszty. Mail nie podaje terminu, więc dopisuje "14 dni", bo tak zwykle bywa.
Nie robi tego złośliwie. Robi to, bo poproszono go o tabelę, a tabela z dziurą wygląda na niedokończoną robotę.
Dlatego jedno zdanie w prompcie może pomóc:
Jeśli czegoś nie ma wprost w źródle, wpisz BRAK.
Nie domyślaj się, nie uzupełniaj, nie wyliczaj.
Kolumny ustalasz Ty, nie maszyna
Zastosujesz leniwy prompt w stylu "zrób z tego tabelę". Dostaniesz tabelę. Kolumny takie, jakie chatbot uznał za sensowne, przy trzeciej ofercie trochę inne, a nazwy pól w połowie po angielsku.
Napisz, czego chcesz. Konkretnie, z nazwami kolumn.
Załączam 6 maili z ofertami od dostawców.
Zrób z nich jedną tabelę. Kolumny dokładnie takie:
dostawca | produkt | cena_netto_pln | ilosc | termin_dni | gwarancja_msc | kontakt
Zasady:
- jeden wiersz = jedna pozycja ofertowa, nie jeden mail
- ceny jako liczba, bez "zł", bez spacji w tysiącach
- termin jako liczba dni (14, nie "dwa tygodnie")
- czego nie ma w mailu, oznacz jako BRAK
- na końcu wypisz, ile pozycji znalazłeś w każdym mailu
Format: CSV, separator średnik, kodowanie UTF-8.
Cztery poziomy trudności
Nie każde źródło jest tak samo trudne do analizy. Warto wiedzieć, kiedy trzeba sprawdzać uważniej.
Wklejony tekst. Mail, wątek z komunikatora, notatka. Najprościej jak się da, bo litery są literami. Wklejasz i działa.
PDF z tekstem. Cennik, umowa, raport wygenerowany z systemu. Też dobrze, z jednym wyjątkiem: tabele rozbite na kilka stron. Nagłówek zostaje na stronie 4, dane lecą dalej na 5 i 6, a chatbot potrafi uznać, że na piątej stronie zaczyna się nowa tabela. Możesz zapytać o liczbę wierszy.
Skan PDF. Kartka przepuszczona przez skaner. Tu program nie czyta tekstu, tylko rozpoznaje kształty liter na obrazku. Zwykle daje radę. Wykłada się na słabym druku, na pieczątce leżącej na cyfrach i na odręcznych dopiskach.
Zdjęcie z telefonu. Faktura pstryknięta w szatni klubu nocnego, protokół z budowy, odręczna tabelka z flipcharta. Działa lepiej, niż powinno i właśnie dlatego jest najgroźniejsze. Odczyt wygląda tak samo pewnie przy dobrym zdjęciu i przy takim, gdzie połowa kwoty jest nieczytelna.
Im gorsza jakość źródła, tym więcej pozycji sprawdzasz ręcznie.
Jakość zdjęcia ma znaczenie. Płaska kartka, światło z góry, telefon równolegle do papieru, bez cienia własnej głowy na środku dokumentu. Trzydzieści sekund więcej przy robieniu fotki oszczędza kwadrans dłubania w wynikach.
Po co wypisywać liczbę pozycji
W prompcie wyżej jest linijka o wypisaniu liczby pozycji z każdego maila.
Przy piętnastu dokumentach nie zauważysz, że z jednego wyleciała cała sekcja. Tabela ma 63 wiersze, wygląda solidnie, wszystko się zgadza. To, czego nie ma, nie rzuca się w oczy, bo nie ma go również w polu widzenia.
Podliczenie po źródłach ustawia to inaczej. Widzisz "mail od Kowalskiego: 2 pozycje" i wiesz od razu, że w tamtym mailu było ich siedem.
Ta sama sztuczka przy PDF-ie:
Ile wierszy ma tabela na każdej stronie?
Podaj rozbicie: strona - liczba wierszy - suma kolumny "wartość".
Normalizacja, czyli koniec z pięcioma formatami daty
Dane z wielu źródeł przychodzą w wielu konwencjach. Jeden dostawca pisze 12.03.2026, drugi 12 marca, trzeci przyszły czwartek. Jeden podaje cenę netto, drugi brutto i nie mówi o tym wprost.
To jest dokładnie ta praca, w której maszyna jest szybsza od Ciebie, pod warunkiem że powiesz jej, do jakiej postaci ma wszystko sprowadzić.
Ujednolić dane:
- daty w formacie RRRR-MM-DD
- kwoty jako liczba z przecinkiem dziesiętnym, bez waluty w komórce
- jeśli oferta podaje brutto, przelicz na netto przy 23% VAT
i oznacz w kolumnie "przeliczone" wartością TAK
- nazwy firm w jednej formie (Sp. z o.o., bez wariantów zapisu)
Kolumna "przeliczone" to nawyk, który polecam. Później, gdy ktoś zapyta, skąd wzięła się ta konkretna kwota, masz odpowiedź w tabeli zamiast w pamięci.
Z datami względnymi uważaj podwójnie. "Do końca miesiąca" w mailu z 3 lutego znaczy co innego niż w mailu z 28 lutego, a chatbot nie wie, kiedy ten mail przyszedł, jeśli mu tego nie podasz.
Sprawdzenie, które zajmuje dwie minuty
Trzy ruchy, zawsze te same.
Policz pozycje. Tabela ma tyle wierszy, ile powinna mieć według rozbicia po źródłach.
Wybierz trzy wiersze losowo, najchętniej z różnych dokumentów i porównaj z oryginałem znak po znaku. Nie z pamięci. Otwórz źródło i patrz.
Poszukaj podejrzanych wartości:
Pokaż wiersze, w których:
- cena jest podejrzanie niska lub wysoka na tle reszty
- brakuje którejkolwiek kolumny
- ta sama pozycja występuje więcej niż raz
Ten sam prompt w przyszłym miesiącu
Jeśli robisz to raz, machnij ręką i idź dalej. Jeśli co miesiąc przepisujesz faktury od tych samych dziesięciu dostawców, zapisz prompt.
Nie w głowie. W pliku, w projekcie w Claude albo ChatGPT. Ma być gotowy do wklejenia bez myślenia.
Oszczędność czasu i problemów tkwi w powtarzalności. Tabela z marca ma te same kolumny co tabela z lutego, więc da się je skleić w jedną. Trzy miesiące pracy na wyczucie i masz trzy pliki, których żadna formuła nie połączy bez dodatkowego dłubania.
Przy dokładaniu nowej porcji do istniejącego zestawienia dopisz jedno zdanie:
Załączam moją dotychczasową tabelę i 8 nowych faktur.
Nowe pozycje dopisz w tym samym układzie kolumn.
Nic w starych wierszach nie zmieniaj.
Zwróć tylko nowe wiersze, dokleję je sobie sam.
W ostatniej linijce chodzi o to, że chatbot proszony o zwrot całej tabeli potrafi po drodze poprawić coś w starych danych. Skrócić nazwę, ujednolicić zapis, wywalić wiersz, który uznał za duplikat. Bez złej woli i bez wzmianki.
Zanim wrzucisz fakturę
Faktury, protokoły i skany umów to hurtownie danych, o których zwykle nie myślisz w tym kontekście. NIP, adres, numer konta, nazwisko osoby kontaktowej, czasem warunki, których nie powinien znać nikt poza dwiema stronami.
Do tabeli z cenami żadna z tych rzeczy nie jest potrzebna. Zamaluj albo zasłoń, zanim zrobisz zdjęcie.
Kiedy przepisać ręcznie
Cztery pozycje z jednego maila przepiszesz szybciej, niż napiszesz prompt. Serio.
Ta metoda zaczyna się opłacać przy kilkunastu pozycjach albo przy kilku źródłach naraz.
Sytuacja w której możę nie warto używać AI? Dokument, w którym pomyłka o jeden znak kosztuje realne pieniądze albo wizerunek. Numery kont, kwoty w aneksie, dane do przelewu. Nie dlatego, że maszyna się myli częściej niż człowiek. Dlatego, że myli się bez ostrzeżenia, a człowiek przepisujący numer konta przynajmniej wie, że robi coś, przy czym trzeba uważać.
Spróbuj sam
Znajdź w skrzynce trzy maile na ten sam temat. Oferty, terminy, zgłoszenia, cokolwiek, gdzie powtarza się ta sama struktura informacji.
Napisz prompt z konkretną listą kolumn, regułą BRAK i prośbą o rozbicie liczby pozycji na źródła. Potem sprawdź dwa wiersze w oryginale.
Jak wejdzie gładko, podnieś poprzeczkę: zrób zdjęcie paragonu ze sklepu i poproś o tabelę pozycji z cenami. Sprawdź sumę z tą wydrukowaną na dole.