Rate this post

Z tego artykuły dowiesz się:

Gdy dane są w dwóch tabelach, ręczne szukanie szybko przestaje działać

Typowa sytuacja: lista identyfikatorów i osobna tabela ze szczegółami

Najczęstszy problem pojawia się wtedy, gdy jedna tabela zawiera jedynie podstawowe dane, a potrzebne informacje są zapisane w innym miejscu arkusza lub na osobnej karcie. Przykładowo w arkuszu zamówień znajdują się kody produktów, ale ich nazwy, ceny i kategorie są przechowywane w katalogu produktów. Ręczne wyszukiwanie każdego kodu, kopiowanie nazwy i wklejanie jej do właściwego wiersza jest możliwe przy kilku pozycjach. Przy kilkudziesięciu lub kilkuset rekordach szybko prowadzi jednak do strat czasu i pomyłek.

Podobnie wygląda praca z listą klientów oraz bazą kontaktów. W jednym zestawieniu może być adres e-mail klienta, a w drugim jego status, segment sprzedażowy lub numer telefonu. W praktyce dane często są aktualizowane niezależnie. Jeśli ktoś dopisze nowy produkt do katalogu albo zmieni cenę, ręcznie uzupełniona lista przestaje być wiarygodna.

Funkcja WYSZUKAJ.PIONOWO, znana też jako VLOOKUP, pozwala pobrać informacje automatycznie. Wskazuje się wartość wspólną dla dwóch tabel, na przykład kod produktu, numer zamówienia, e-mail albo identyfikator klienta. Google Sheets odszukuje tę wartość w tabeli źródłowej i zwraca dane z wybranej kolumny tego samego wiersza.

Załóżmy, że w kolumnie A arkusza „Zamówienia” znajdują się kody produktów: PR-101, PR-205 i PR-330. W arkuszu „Katalog” kolumna A zawiera te same kody, kolumna B nazwy, a kolumna C ceny. Zamiast samodzielnie szukać każdego kodu, można w komórce B2 użyć jednej formuły. Po skopiowaniu jej w dół nazwy produktów zostaną pobrane automatycznie.

Co zmienia funkcja WYSZUKAJ.PIONOWO

WYSZUKAJ.PIONOWO działa według prostego schematu: szuka wskazanej wartości w pierwszej kolumnie zaznaczonego zakresu, a następnie przechodzi w prawo do kolumny określonej przez użytkownika. Dzięki temu może zwrócić nazwę produktu, cenę, datę, kategorię, status płatności albo dowolną inną informację z tego samego wiersza. [2]

To rozwiązanie szczególnie przydaje się podczas porównywania list w Google Sheets. Można sprawdzić, czy identyfikatory z jednej listy istnieją na drugiej, pobrać dane z arkusza referencyjnego albo znaleźć brakujące pozycje. Nie trzeba przy tym sortować całej tabeli ręcznie ani filtrować kolejnych wartości.

Automatyzacja nie oznacza jednak, że formuła „domyśli się” wszystkiego. WYSZUKAJ.PIONOWO potrzebuje dobrze przygotowanych danych. Obie listy muszą mieć wspólny identyfikator, a zakres wyszukiwania powinien zaczynać się od kolumny zawierającej ten identyfikator. Jeśli kod produktu jest w trzeciej kolumnie katalogu, a nazwa produktu w drugiej, klasyczny VLOOKUP nie pobierze nazwy bez zmiany układu danych lub użycia innej funkcji.

Co sprawdzić przed wpisaniem formuły

  • Czy obie tabele mają wspólną wartość, na przykład kod, e-mail, ID lub numer dokumentu.
  • Czy wspólny identyfikator jest unikalny w tabeli źródłowej.
  • Czy w tabeli źródłowej identyfikator znajduje się w pierwszej kolumnie planowanego zakresu.
  • Czy dane mają być tylko odczytywane, czy również porównywane pod kątem braków.

Dlaczego wyszukiwanie czasem zwraca zły wynik albo błąd #N/D

Funkcja szuka tylko w pierwszej kolumnie zakresu

To najważniejsze ograniczenie funkcji WYSZUKAJ.PIONOWO. Google Sheets wyszukuje wartość tylko w pierwszej kolumnie wskazanego zakresu. Jeśli formuła używa zakresu Katalog!A:C, wyszukiwanie odbywa się wyłącznie w kolumnie A. Można zwrócić dane z kolumny B lub C, ale nie można odszukać wartości w C i pobrać informacji z A. [3]

Przykład błędnego układu: w kolumnie A katalogu znajduje się nazwa produktu, w B cena, a w C kod produktu. Jeśli w arkuszu zamówień masz kod i chcesz pobrać nazwę, formuła WYSZUKAJ.PIONOWO nie znajdzie kodu, ponieważ kod nie znajduje się na początku zakresu. Samo zaznaczenie większego obszaru nie rozwiąże problemu.

Najprostsze rozwiązanie dla początkujących polega na uporządkowaniu tabeli źródłowej tak, aby kolumna z kodami lub identyfikatorami była pierwsza. W katalogu produktów kolejność może wyglądać następująco: kod, nazwa, cena, stan magazynowy, kategoria. Taki układ współpracuje z VLOOKUP bez dodatkowych kombinacji.

Pozornie identyczne wartości mogą mieć inny format

Komórka zawierająca 00125 może wyglądać tak samo jak inna komórka z wartością 00125, ale arkusz nie zawsze traktuje je identycznie. W jednej tabeli kod może być tekstem, a w drugiej liczbą. Dla użytkownika różnica jest niemal niewidoczna, lecz funkcja wyszukiwania może uznać, że wartości nie są takie same.

Szczególnie problematyczne są numery z zerem na początku, takie jak kody pocztowe, identyfikatory pracowników, numery SKU albo kody towarów. Gdy arkusz zapisze kod 00125 jako liczbę, może zamienić go na 125. Wtedy dokładne dopasowanie nie zadziała, ponieważ tekst „00125” nie jest równy liczbie 125.

W takich sytuacjach ustaw format kolumny jako tekstowy, zanim zaczniesz wprowadzać dane. Możesz zaznaczyć kolumnę, wybrać z menu format liczb i ustawić zwykły tekst. Jeżeli dane zostały już wklejone, czasami konieczne jest ponowne ich zaimportowanie lub użycie dodatkowych funkcji konwertujących. Najważniejsze jest zachowanie identycznego formatu po obu stronach porównania.

Ukryte spacje i niedokładnie przygotowane dane

Błąd #N/D często nie wynika z błędnej formuły, lecz z jakości danych. Wartość „ABC-20” i „ABC-20 ” wyglądają niemal identycznie, lecz druga zawiera spację na końcu. Dla WYSZUKAJ.PIONOWO są to dwa różne teksty. Takie spacje pojawiają się często po skopiowaniu danych z e-maila, systemu magazynowego, PDF-a albo strony internetowej.

Jeśli podejrzewasz ukryte spacje, kliknij komórkę i sprawdź pasek formuły. Możesz także użyć funkcji USUŃ.ZBĘDNE.ODSTĘPY, która usuwa nadmiarowe odstępy z tekstu. Dla pojedynczej komórki A2 formuła może wyglądać tak:

=USUŃ.ZBĘDNE.ODSTĘPY(A2)

Innym źródłem problemu są duplikaty w tabeli źródłowej. WYSZUKAJ.PIONOWO zwróci pierwsze dopasowanie, które napotka w zakresie. Jeżeli kod produktu występuje dwa razy, a przy każdym widnieje inna cena, wynik może być technicznie poprawny, lecz biznesowo błędny. Dlatego tabela źródłowa powinna mieć jeden rekord dla jednego unikalnego identyfikatora.

Niepoprawny indeks kolumny i znaczenie błędu #N/D

Trzeci argument funkcji określa numer kolumny, z której ma zostać pobrany wynik. Numer liczy się nie według liter arkusza, lecz od pierwszej kolumny zaznaczonego zakresu. Jeśli zakres to Katalog!A:C, kolumna A ma indeks 1, B ma indeks 2, a C ma indeks 3. [1]

Gdy wpiszesz indeks 4 dla zakresu obejmującego tylko trzy kolumny, Google Sheets nie ma skąd pobrać wyniku. Z kolei wpisanie indeksu 2 zamiast 3 może dać wynik z niewłaściwej kolumny. Taki błąd bywa groźniejszy niż #N/D, ponieważ formuła działa, ale zwraca dane, których nie oczekujesz.

Błąd #N/D oznacza zwykle „brak dostępnego dopasowania”. Nie zawsze trzeba go traktować jako awarię. Jeżeli w liście zamówień pojawił się nowy kod produktu, którego nie dodano jeszcze do katalogu, #N/D przekazuje ważną informację: dane źródłowe są niepełne. Dopiero gdy wynik ma być prezentowany użytkownikowi końcowemu, można zastąpić błąd czytelnym komunikatem, na przykład „brak w katalogu”.

Co sprawdzić, gdy pojawia się #N/D

  1. Wyszukaj ręcznie wskazany kod w pierwszej kolumnie tabeli źródłowej.
  2. Porównaj format danych: tekst z tekstem albo liczba z liczbą.
  3. Usuń zbędne spacje przed i po wartości.
  4. Sprawdź, czy zakres rozpoczyna się od kolumny z szukanym identyfikatorem.
  5. Upewnij się, że w formule użyto właściwego numeru kolumny.

WYSZUKAJ.PIONOWO krok po kroku — pierwsza działająca formuła

Składnia funkcji w polskiej i angielskiej wersji arkusza

W polskiej wersji Google Sheets podstawowa składnia funkcji wygląda tak:

=WYSZUKAJ.PIONOWO(szukana_wartość; zakres; indeks; [czy_posortowane])

W części arkuszy, zależnie od ustawień języka i regionu, możesz spotkać angielską nazwę:

=VLOOKUP(search_key, range, index, [is_sorted])

Nie zmienia się zasada działania. Różnić mogą się nazwy funkcji, argumenty logiczne oraz separator argumentów. W polskich ustawieniach często używa się średników i wartości FAŁSZ oraz PRAWDA. W ustawieniach angielskich zwykle będą to przecinki oraz FALSE i TRUE.

ArgumentZnaczeniePrzykład
szukana_wartośćWartość, którą chcesz odnaleźć.A2
zakresTabela, w której funkcja ma wyszukać dane.Katalog!A:C
indeksNumer kolumny zwracającej wynik, liczony od lewej strony zakresu.2
czy_posortowaneInformacja, czy szukanie ma być przybliżone.FAŁSZ

Czwarty argument jest opcjonalny technicznie, ale przy zwykłym łączeniu danych nie powinno się go pomijać. W przypadku kodów, adresów e-mail, numerów faktur czy identyfikatorów klientów wpisuj FAŁSZ. To wymusza dokładne dopasowanie.

Przykład: pobieranie nazwy produktu po kodzie

Załóżmy, że arkusz „Zamówienia” zawiera następujące dane:

ABC
Kod produktuNazwa produktuIlość
PR-1012
PR-2051
PR-3304

Na osobnej karcie „Katalog” znajdują się dane źródłowe:

ABC
Kod produktuNazwa produktuCena netto
PR-101Kubek termiczny49,90
PR-205Notes A518,00
PR-330Torba bawełniana24,90

Krok 1: kliknij komórkę B2 w arkuszu „Zamówienia”. To tam ma pojawić się nazwa produktu.

Krok 2: wpisz w komórce B2 poniższą formułę:

=WYSZUKAJ.PIONOWO(A2;Katalog!A:C;2;FAŁSZ)

Po zatwierdzeniu klawiszem Enter w B2 powinna pojawić się wartość Kubek termiczny.

Formuła pobiera kod z komórki A2, sprawdza go w arkuszu „Katalog”, a następnie zwraca zawartość drugiej kolumny wskazanego zakresu. W tym układzie drugą kolumną jest nazwa produktu.

Jeżeli Twój arkusz używa angielskich nazw funkcji i przecinków, zastosuj odpowiednik:

=VLOOKUP(A2,Katalog!A:C,2,FALSE)

Krok 3: sprawdź wynik, zanim skopiujesz formułę dalej. Jeśli w B2 zamiast nazwy pojawia się błąd, popraw go teraz. Najczęściej problemem jest literówka w nazwie arkusza, nieprawidłowy zakres albo inny format kodu w obu tabelach.

Krok 4: skopiuj formułę z B2 do komórek B3 i B4. Możesz przeciągnąć mały kwadrat widoczny w prawym dolnym rogu zaznaczonej komórki albo skopiować B2 i wkleić zawartość do niższych wierszy.

Google Sheets automatycznie zmieni odwołanie do szukanej wartości. W B3 formuła będzie sprawdzać A3, a w B4 — A4. Oczekiwany efekt wygląda tak:

ABC
Kod produktuNazwa produktuIlość
PR-101Kubek termiczny2
PR-205Notes A51
PR-330Torba bawełniana4

W podobny sposób możesz pobrać cenę netto. Wystarczy wstawić formułę do kolejnej kolumny, na przykład D2, i zmienić indeks z 2 na 3:

=WYSZUKAJ.PIONOWO(A2;Katalog!A:C;3;FAŁSZ)

Jedna zmiana numeru kolumny wystarcza, aby zamiast nazwy pobrać cenę. Warto jednak zawsze sprawdzić, czy wynik trafia do właściwej kolumny — zwłaszcza gdy pracujesz na większym katalogu.

Dokładne czy przybliżone dopasowanie — wybór, który decyduje o wyniku

Ostatni argument formuły może wydawać się mało ważny, ale potrafi całkowicie zmienić rezultat. To on określa, czy arkusz ma znaleźć wartość identyczną, czy może zwrócić najbliższy pasujący wynik.

FAŁSZ: bezpieczny wybór dla kodów, e-maili i numerów

Przy danych identyfikacyjnych używaj FAŁSZ. Dotyczy to między innymi kodów produktów, numerów zamówień, adresów e-mail, identyfikatorów klientów, NIP-ów oraz numerów dokumentów.

Dokładne dopasowanie oznacza, że kod musi zgadzać się znak po znaku. Jeśli w katalogu nie ma danej wartości, otrzymasz #N/D zamiast przypadkowo dobranej informacji. To właśnie jest pożądane: lepiej zauważyć brak produktu niż przypisać zamówieniu niewłaściwą nazwę lub cenę.

W codziennej pracy najczęściej stosuj więc formę:

=WYSZUKAJ.PIONOWO(A2;Katalog!A:C;2;FAŁSZ)

PRAWDA: przydatne tylko wtedy, gdy dane tworzą progi

Przybliżone dopasowanie, czyli PRAWDA, ma sens w innych sytuacjach. Przykładem może być tabela progów rabatowych, stawek prowizji albo ocen szkolnych.

Załóżmy, że chcesz przypisać rabat zależnie od wartości zamówienia:

Minimalna wartość zamówieniaRabat
00%
5005%
100010%
200015%

Dla zamówienia o wartości 1250 zł formuła z przybliżonym dopasowaniem może zwrócić 10%, ponieważ 1000 to najwyższy próg, który nie przekracza wartości 1250.

W takim przypadku tabela progów musi być posortowana rosnąco według pierwszej kolumny. Bez sortowania wynik może być nieprzewidywalny i trudno będzie zauważyć pomyłkę.

Nie używaj PRAWDA dla kodów produktów. Jeśli szukany kod nie istnieje, arkusz może zwrócić dane powiązane z inną, wcześniejszą wartością. Wynik nie zawsze pokaże błąd, więc łatwo przeoczyć problem.

Prosta zasada wyboru

  • Wybierz FAŁSZ, gdy szukasz konkretnego identyfikatora.
  • Wybierz PRAWDA, gdy pracujesz z liczbowymi progami i tabela jest posortowana rosnąco.
  • Jeśli nie masz pewności, wybierz FAŁSZ — dla początkujących jest to bezpieczniejsza opcja.

Jak zastosować formułę do całej kolumny i porównać dwie listy

Przy kilku wierszach ręczne przeciągnięcie formuły jest wystarczające. Gdy lista ma kilkaset lub kilka tysięcy pozycji, wygodniej jest pozwolić arkuszowi uzupełniać wyniki automatycznie.

Kopiowanie formuły w dół

Jeżeli dane są już wpisane w kolumnie A, kliknij komórkę z gotową formułą, na przykład B2. Następnie użyj uchwytu w prawym dolnym rogu komórki i przeciągnij go w dół do ostatniego wiersza danych.

Możesz też dwukrotnie kliknąć uchwyt wypełniania. Google Sheets zwykle skopiuje formułę do końca sąsiedniej listy w kolumnie A. Po tej operacji warto przewinąć arkusz i sprawdzić kilka wyników: pierwszy, środkowy i ostatni.

Automatyczne uzupełnianie nowych wierszy za pomocą ARRAYFORMULA

Jeśli do arkusza regularnie dopisujesz nowe zamówienia, użyj formuły tablicowej. Wstaw ją tylko raz, w B2:

=ARRAYFORMULA(JEŻELI(A2:A=””;””;WYSZUKAJ.PIONOWO(A2:A;Katalog!A:C;2;FAŁSZ)))

Formuła sprawdza całą kolumnę A od wiersza 2. Jeżeli komórka z kodem jest pusta, pozostawia pusty wynik. Jeżeli zawiera kod, pobiera odpowiednią nazwę z katalogu.

W arkuszu z angielskimi nazwami funkcji odpowiednik może wyglądać tak:

=ARRAYFORMULA(IF(A2:A=””,””,VLOOKUP(A2:A,Katalog!A:C,2,FALSE)))

Przed użyciem ARRAYFORMULA upewnij się, że poniżej B2 nie ma ręcznie wpisanych danych. Formuła potrzebuje wolnego miejsca, aby rozwinąć wyniki w kolejnych wierszach. Jeśli napotka przeszkodę, wyświetli błąd informujący, że nie może rozszerzyć wyniku tablicowego.

Porównanie dwóch list: które kody nie występują w katalogu?

Ta sama technika pozwala szybko wykryć pozycje z listy zamówień, których nie ma w katalogu. Zamiast zwracać nazwę produktu, możesz wyświetlić prosty komunikat.

W komórce B2 wpisz:

=JEŻELI(CZY.BRAK(WYSZUKAJ.PIONOWO(A2;Katalog!A:A;1;FAŁSZ));”brak w katalogu”;”znaleziono”)

Po skopiowaniu formuły w dół otrzymasz czytelny status dla każdego kodu. Dzięki temu nie musisz ręcznie wyszukiwać braków ani porównywać dwóch długich kolumn wzrokiem.

Jeżeli zamiast statusu chcesz zachować nazwę produktu, ale zamienić #N/D na komunikat, zastosuj JEŻELI.BŁĄD:

=JEŻELI.BŁĄD(WYSZUKAJ.PIONOWO(A2;Katalog!A:C;2;FAŁSZ);”brak w katalogu”)

To rozwiązanie jest wygodne w gotowym zestawieniu, lecz nie powinno ukrywać problemu bez sprawdzenia jego przyczyny. Komunikat „brak w katalogu” może oznaczać rzeczywisty brak rekordu, ale może też sygnalizować literówkę w kodzie.

Czego unikać przy pracy na całych kolumnach

  • Nie wpisuj ręcznie różnych formuł w pojedynczych wierszach tej samej kolumny, jeśli planujesz użyć ARRAYFORMULA.
  • Nie zamieniaj automatycznie błędów na puste komórki, gdy brak dopasowania ma znaczenie operacyjne.
  • Nie używaj przybliżonego dopasowania podczas porównywania list identyfikatorów.
  • Nie zakładaj, że pierwszy poprawny wynik potwierdza poprawność całej kolumny — sprawdź losowo kilka rekordów.

Najpraktyczniejszy wariant dla list kodów produktów to dokładne dopasowanie z FAŁSZ, stały zakres katalogu i automatyczne kopiowanie formuły w dół. Jeśli dane będą stale dopisywane, zamień ręczne kopiowanie na ARRAYFORMULA. Dzięki temu każda nowa pozycja zostanie sprawdzona od razu, a braki w katalogu staną się widoczne bez dodatkowej pracy.

Gdy zakres katalogu ma konkretne wiersze, zablokuj go znakami $

W przykładach używany był zakres Katalog!A:C, czyli całe trzy kolumny. To wygodne rozwiązanie, ponieważ katalog może rosnąć, a formuła nadal obejmie nowe produkty.

Czasem jednak chcesz wskazać tylko konkretny fragment danych, na przykład od wiersza 2 do 500. Wtedy podczas kopiowania formuły warto zablokować zakres znakami $:

=WYSZUKAJ.PIONOWO(A2;Katalog!$A$2:$C$500;2;FAŁSZ)

Odwołanie A2 pozostaje zmienne, więc w kolejnym wierszu zmieni się na A3, A4 i dalej. Natomiast zakres katalogu pozostanie zawsze taki sam: od A2 do C500 w arkuszu „Katalog”.

Bez znaków $ zakres może przesuwać się przy kopiowaniu formuły, szczególnie gdy przenosisz ją również w bok do kolejnych kolumn. To łatwy do przeoczenia błąd: formuła nadal działa, ale zaczyna przeszukiwać niewłaściwe dane.

Krótki test przed wysłaniem lub udostępnieniem arkusza

Po uzupełnieniu całej kolumny wykonaj prosty test na kilku rekordach:

  1. Wybierz jeden kod z początku listy, jeden ze środka i jeden z końca.
  2. Znajdź każdy z nich ręcznie w arkuszu „Katalog”.
  3. Porównaj nazwę lub cenę z wynikiem zwróconym w arkuszu „Zamówienia”.
  4. Sprawdź, czy komórki z komunikatem „brak w katalogu” rzeczywiście wymagają uzupełnienia albo poprawy kodu.

Jeśli korzystasz z formuły tablicowej, pamiętaj też, aby nie wpisywać niczego ręcznie w kolumnie wyników poniżej jej pierwszej komórki. Wszystkie nazwy produktów powinny być generowane przez jedną formułę, a katalog powinien pozostać jedynym miejscem, w którym zmieniasz dane źródłowe.

Najczęściej zadawane pytania (FAQ)

Czy WYSZUKAJ.PIONOWO działa w polskiej wersji Google Sheets?

Tak. W polskiej wersji arkusza używa się nazwy WYSZUKAJ.PIONOWO, a argumenty zwykle oddziela średnikami. W zależności od ustawień może być dostępna także angielska nazwa VLOOKUP.

Dlaczego funkcja zwraca błąd #N/D?

Najczęściej oznacza to brak dokładnego dopasowania. Sprawdź, czy wartość znajduje się w pierwszej kolumnie zakresu, ma taki sam format oraz nie zawiera zbędnych spacji.

Co oznacza argument FAŁSZ w formule?

FAŁSZ wymusza dokładne dopasowanie. Warto go stosować przy kodach produktów, numerach faktur, adresach e-mail i innych identyfikatorach.

Czy można wyszukiwać wartość w dowolnej kolumnie tabeli?

Nie. WYSZUKAJ.PIONOWO szuka tylko w pierwszej kolumnie wskazanego zakresu, a wynik może pobierać z kolumn znajdujących się po jej prawej stronie.

Co się stanie, gdy identyfikator występuje w tabeli źródłowej kilka razy?

Funkcja zwróci pierwsze dopasowanie znalezione w zakresie. Dlatego tabela źródłowa powinna zawierać jeden rekord dla każdego unikalnego identyfikatora.

Najważniejsze wnioski

  • WYSZUKAJ.PIONOWO automatycznie pobiera dane z tabeli źródłowej na podstawie wspólnego identyfikatora.
  • Wartość wyszukiwana musi znajdować się w pierwszej kolumnie wskazanego zakresu.
  • Przy kodach, numerach i innych identyfikatorach używaj dokładnego dopasowania, czyli argumentu FAŁSZ.
  • Błędy #N/D często wynikają z różnego formatu danych, ukrytych spacji albo braku wartości w tabeli źródłowej.
  • Duplikaty identyfikatorów mogą spowodować zwrócenie pierwszego, niekoniecznie właściwego dopasowania.

Źródła

Poprzedni artykułJak prowadzić CRM w Google Sheets bez płatnego systemu
Mateusz Dąbrowski
Mateusz Dąbrowski łączy doświadczenie analityka danych z praktyką automatyzacji procesów w Google Sheets. Tworzy zaawansowane formuły, skrypty i integracje z zewnętrznymi aplikacjami, pomagając firmom ograniczać ręczne kopiowanie danych. Zanim opublikuje poradnik, testuje różne warianty rozwiązania, mierzy czas wykonania i odporność na błędy użytkowników. W artykułach pokazuje nie tylko gotowe szablony, ale też logikę ich działania, aby czytelnicy mogli samodzielnie je modyfikować. Ceni przejrzysty kod, dokumentację i praktyczne przykłady z codziennej pracy.