WYSZUKAJ.PIONOWO (ang. VLOOKUP) to jedna z najpopularniejszych i najbardziej użytecznych funkcji w Microsoft Excel. Pozwala błyskawicznie odnaleźć wartość w tabeli na podstawie klucza wyszukiwania, eliminując ręczne przeszukiwanie dziesiątek czy tysięcy wierszy danych. W tym artykule znajdziesz wszystko, co musisz wiedzieć — od składni, przez praktyczne przykłady, po typowe błędy i nowoczesne alternatywy.
WYSZUKAJ.PIONOWO (VLOOKUP) to funkcja Excela, która wyszukuje podaną wartość w pierwszej kolumnie zakresu danych i zwraca wartość z innej kolumny tego samego wiersza. Działa jak „indeks” — podajesz klucz, a funkcja zwraca pasujący wynik z wybranej kolumny tabeli.
Podstawowa składnia funkcji wygląda następująco:
=WYSZUKAJ.PIONOWO(szukana_wartość; tabela_tablica; nr_indeksu_kolumny; przeszukiwany_zakres)
| Argument | Opis | Przykład |
|---|---|---|
| szukana_wartość | Wartość, której szukasz. Może być liczbą, tekstem, odwołaniem do komórki lub wynikiem formuły. | A2, "Kowalski", 101 |
| tabela_tablica | Zakres danych (tabela), w której szukasz. Pierwsza kolumna tego zakresu jest przeszukiwana. | B2:E100, Produkty!A:D |
| nr_indeksu_kolumny | Numer kolumny w zakresie (licząc od 1), z której ma zostać zwrócona wartość. | 2, 3, 4 |
| przeszukiwany_zakres | FAŁSZ = dokładne dopasowanie (zalecane); PRAWDA = przybliżone (wymaga posortowanej listy). |
FAŁSZ lub 0 |
FAŁSZ (lub 0) jako czwartego argumentu, o ile nie pracujesz z posortowaną tabelą i celowo nie chcesz przybliżonego dopasowania. Pominięcie tego argumentu domyślnie przyjmuje PRAWDA, co może dawać błędne wyniki.
Działanie funkcji można opisać w trzech krokach:
- Szukanie klucza — Excel przegląda pierwszą kolumnę podanego zakresu od góry do dołu, szukając wartości równej szukana_wartość.
- Lokalizacja wiersza — gdy dopasowanie zostanie znalezione, Excel zapamiętuje numer tego wiersza w tabeli.
- Zwrócenie wyniku — z tego samego wiersza Excel odczytuje wartość z kolumny wskazanej przez nr_indeksu_kolumny.
Wyobraź sobie książkę telefoniczną. Szukasz nazwiska „Nowak” w kolumnie z nazwiskami (pierwsza kolumna tabeli). Gdy je znajdziesz, patrzysz w prawo na numer telefonu (kolumna nr 2). WYSZUKAJ.PIONOWO robi dokładnie to samo — automatycznie i błyskawicznie.
Masz tabelę produktów (kolumna A: kod, kolumna B: nazwa, kolumna C: cena). Chcesz pobrać cenę produktu o kodzie wpisanym w komórce E2.
=WYSZUKAJ.PIONOWO(E2; A2:C100; 3; FAŁSZ) ' E2 → szukana_wartość (kod produktu, np. "P-045") ' A2:C100 → tabela z danymi (kody, nazwy, ceny) ' 3 → zwróć wartość z 3. kolumny (ceny) ' FAŁSZ → szukaj dokładnego dopasowania ✅ Wynik: Excel zwraca cenę produktu odpowiadającego kodowi z E2.
Tabela kadrowa zawiera: kolumna A — ID pracownika, kolumna B — imię i nazwisko, kolumna C — dział, kolumna D — stanowisko. Chcesz pobrać stanowisko pracownika o ID wpisanym w H1.
=WYSZUKAJ.PIONOWO(H1; A2:D200; 4; FAŁSZ) ' H1 → ID pracownika (np. 1042) ' A2:D200 → cała tabela kadrowa ' 4 → zwróć 4. kolumnę (stanowisko) ' FAŁSZ → dokładne dopasowanie ✅ Wynik: "Specjalista ds. marketingu"
W formularzu faktury wpisujesz kod towaru w kolumnie A. Wzory w kolumnach B i C automatycznie uzupełniają nazwę i cenę.
' Kolumna B (Nazwa produktu): =WYSZUKAJ.PIONOWO(A2; Cennik!$A:$C; 2; FAŁSZ) ' Kolumna C (Cena jednostkowa): =WYSZUKAJ.PIONOWO(A2; Cennik!$A:$C; 3; FAŁSZ) ✅ Po wpisaniu kodu towaru Excel automatycznie uzupełnia nazwę i cenę z arkusza "Cennik".
| Błąd | Przyczyna | Rozwiązanie |
|---|---|---|
#N/D |
Szukana wartość nie istnieje w pierwszej kolumnie tabeli | Sprawdź pisownię; użyj JEŻELI.BŁĄD do obsługi braku wyników |
#ODWOŁANIE! |
Nr indeksu kolumny większy niż liczba kolumn w zakresie | Zmniejsz nr kolumny lub rozszerz zakres tabeli |
#WARTOŚĆ! |
Nieprawidłowy typ danych (np. tekst zamiast liczby) | Upewnij się, że typy danych szukanej wartości i kolumny kluczowej są zgodne |
Błędny wynik (nie #N/D) |
Czwarty argument pominięty lub PRAWDA przy nieposortowanej tabeli |
Zawsze podawaj FAŁSZ jako czwarty argument |
| Przesunięty zakres przy kopiowaniu | Tabela nie jest zablokowana bezwzględnym odwołaniem | Użyj $A$2:$D$100 (znaki dolara blokują zakres) |
Aby zamiast błędu wyświetlić własny komunikat lub pustkę, opakuj formułę funkcją JEŻELI.BŁĄD:
=JEŻELI.BŁĄD(WYSZUKAJ.PIONOWO(E2; A2:C100; 3; FAŁSZ); "Brak produktu")
✅ Gdy produkt nie istnieje, wyświetli się "Brak produktu" zamiast #N/D.
Mimo ogromnej popularności, WYSZUKAJ.PIONOWO ma kilka istotnych ograniczeń, o których warto wiedzieć:
Klucz wyszukiwania musi zawsze znajdować się w pierwszej (lewej) kolumnie podanej tabeli. Nie można wyszukiwać po kolumnie znajdującej się po prawej stronie kolumny wynikowej.
Kolumna wynikowa musi znajdować się na prawo od kolumny z kluczem. WYSZUKAJ.PIONOWO nie potrafi zwracać wartości z kolumny znajdującej się po lewej stronie klucza.
Jeśli w tabeli istnieje kilka wierszy z taką samą wartością klucza, funkcja zwróci wyłącznie wartość z pierwszego znalezionego wiersza.
Trzeci argument to liczba wpisana ręcznie. Gdy dodasz lub usuniesz kolumnę w tabeli, wzór może zwracać błędne dane, bo numery kolumn się przesuną.
Opisane powyżej ograniczenia eliminują nowsze funkcje dostępne w Excelu 365 i Excel 2019+.
Funkcja XWYSZUKAJ dostępna w Excel 365 rozwiązuje większość ograniczeń WYSZUKAJ.PIONOWO:
=XWYSZUKAJ(szukana_wartość; zakres_szukania; zakres_zwracany; [jeśli_nie_znaleziono]) ' Przykład: Szukaj kodu produktu w A2:A100, zwróć cenę z C2:C100 =XWYSZUKAJ(E2; A2:A100; C2:C100; "Brak") ✅ Może szukać w lewo, obsługuje błędy wbudowanie, nie wymaga podawania numeru kolumny.
Kombinacja INDEKS i PODAJ.POZYCJĘ działa we wszystkich wersjach Excela i nie ma ograniczenia „tylko w prawo”:
=INDEKS(zakres_wynikowy; PODAJ.POZYCJĘ(szukana_wartość; zakres_kluczowy; 0)) ' Przykład: Zwróć cenę (kolumna C) na podstawie kodu (kolumna A) =INDEKS(C2:C100; PODAJ.POZYCJĘ(E2; A2:A100; 0)) ✅ Może zwracać wartości z dowolnej kolumny — zarówno w lewo, jak i w prawo.
| Cecha | WYSZUKAJ.PIONOWO | INDEKS + PODAJ.POZYCJĘ | XWYSZUKAJ |
|---|---|---|---|
| Szukanie w lewo | ❌ Nie | ✅ Tak | ✅ Tak |
| Odporność na dodawanie kolumn | ❌ Nie | ✅ Tak | ✅ Tak |
| Obsługa braku wyniku | Wymaga JEŻELI.BŁĄD | Wymaga JEŻELI.BŁĄD | ✅ Wbudowana |
| Prostota składni | ✅ Prosta | ⚠ Złożona | ✅ Prosta |
| Dostępność | Wszystkie wersje | Wszystkie wersje | Excel 365 / 2019+ |
Gdy kopiujesz formułę w dół lub w bok, zakres tabeli może się przesunąć. Używaj bezwzględnych odwołań, dodając znaki dolara:
❌ Źle: =WYSZUKAJ.PIONOWO(A2; B2:D100; 2; FAŁSZ) ✅ Dobrze: =WYSZUKAJ.PIONOWO(A2; $B$2:$D$100; 2; FAŁSZ)
Zamiast adresu $A$2:$D$100 możesz nadać zakresowi nazwę (np. Cennik) lub użyć Tabeli Excela. Formuła staje się wtedy czytelniejsza i automatycznie rozszerza się gdy dodajesz wiersze:
=WYSZUKAJ.PIONOWO(E2; Cennik; 3; FAŁSZ) =WYSZUKAJ.PIONOWO(E2; TabelaCennik[#Wszystko]; 3; FAŁSZ)
Częstą przyczyną błędu #N/D są niewidoczne spacje na początku lub końcu tekstu (np. zaimportowane z CSV) albo niezgodność typów — liczba zapisana jako tekst wygląda identycznie, ale Excel traktuje ją inaczej. Użyj USUŃ.ZBĘDNE.ODSTĘPY() lub WARTOŚĆ(), by ujednolicić dane.
Czwarty argument PRAWDA jest użyteczny np. do przypisywania przedziałów (ocen, rabatów, stawek podatkowych), ale wymaga, by pierwsza kolumna tabeli była posortowana rosnąco. Bez sortowania wyniki będą losowe i nieprzewidywalne.
' Tabela rabatów (posortowana!): 0→0%, 1000→5%, 5000→10%, 10000→15% =WYSZUKAJ.PIONOWO(G2; $K$2:$L$5; 2; PRAWDA) ✅ Dla wartości zamówienia 3 500 zł zwróci rabat 5%.
Funkcja ma szerokie zastosowanie w praktyce biznesowej i codziennej pracy z danymi:
- Faktury i zamówienia — automatyczne pobieranie cen i nazw produktów na podstawie kodu towaru
- Kadry i HR — wyszukiwanie danych pracownika (działu, stanowiska, wynagrodzenia) po numerze ID
- Raporty sprzedażowe — łączenie danych z różnych arkuszy (np. zamówień z cennikiem)
- Inwentaryzacja — sprawdzanie stanów magazynowych na podstawie kodu produktu
- Oceny i klasyfikacja — automatyczne przypisywanie ocen, kategorii lub rabatów na podstawie wartości
- Weryfikacja danych — sprawdzanie, czy dana wartość (np. NIP, kod pocztowy) istnieje w bazie referencyjnej
- Dashboardy i raporty — dynamiczne wyciąganie danych do kart KPI na podstawie wybranego filtra
VLOOKUP) przeszukuje dane w kolumnach (pionowo) — szuka wartości w pierwszej kolumnie zakresu. WYSZUKAJ.POZIOMO (HLOOKUP) przeszukuje dane w wierszach (poziomo) — szuka w pierwszym wierszu zakresu. W praktyce zdecydowaną większość tabel stanowią dane ułożone kolumnami, dlatego WYSZUKAJ.PIONOWO jest używany znacznie częściej.#N/D oznacza, że szukana wartość nie została znaleziona. Sprawdź: (1) czy szukana wartość naprawdę istnieje w pierwszej kolumnie tabeli, (2) czy nie ma zbędnych spacji (użyj USUŃ.ZBĘDNE.ODSTĘPY), (3) czy typy danych są zgodne (tekst vs. liczba). Aby ukryć błąd, użyj =JEŻELI.BŁĄD(WYSZUKAJ.PIONOWO(...);"Brak").SZUKAJ.TEKST lub ZNAJDŹ.INDEKS + PODAJ.POZYCJĘ lub (w Excel 365) funkcji XWYSZUKAJ, które nie mają tego ograniczenia.Arkusz2!$A$2:$D$100 lub Cennik!$A:$D. Działa to również między różnymi skoroszytami (plikami) Excela — wtedy odwołanie zawiera nazwę pliku w nawiasach kwadratowych.PRAWDA) jest użyteczny gdy chcesz przypisać kategorię lub wartość na podstawie przedziału — np. rabaty zależne od wartości zamówienia, progi podatkowe, stopnie ocen. Warunek konieczny: pierwsza kolumna tabeli musi być posortowana rosnąco. Bez sortowania wyniki będą błędne i nieprzewidywalne.- Składnia:
=WYSZUKAJ.PIONOWO(szukana_wartość; tabela; nr_kolumny; FAŁSZ) - Zawsze używaj
FAŁSZjako czwartego argumentu (dokładne dopasowanie), chyba że świadomie korzystasz z trybu przybliżonego z posortowaną tabelą. - Blokuj zakres tabeli znakami dolara (
$A$2:$D$100), aby formuła działała poprawnie po skopiowaniu. - Obsługuj błąd
#N/Dza pomocąJEŻELI.BŁĄD(WYSZUKAJ.PIONOWO(...); "Brak"). - Klucz wyszukiwania musi znajdować się w pierwszej kolumnie zakresu — kolumna wynikowa musi być po prawej stronie.
- Do wyszukiwania „w lewo” lub gdy dodajesz kolumny do tabeli, używaj
INDEKS + PODAJ.POZYCJĘlubXWYSZUKAJ(Excel 365). - WYSZUKAJ.PIONOWO jest idealne do faktur, raportów, kartotek pracowniczych, cenników i łączenia danych z różnych arkuszy.