Microsoft Excel od dziesięcioleci stanowi fundament pracy biurowej na całym świecie. Wraz z upływem lat arkusz kalkulacyjny ewoluował, a najbardziej spektakularnym przełomem ostatniej dekady było wprowadzenie funkcji XLOOKUP – następcy legendarnych WYSZUKAJ.PIONOWO i WYSZUKAJ.POZIOMO. Mimo że XLOOKUP zadebiutował w 2019 roku, dopiero w 2026 roku można mówić o jego pełnym upowszechnieniu w środowisku korporacyjnym. Dziś to już nie ciekawostka dla entuzjastów Excela, lecz podstawowe narzędzie każdego analityka. Ten przewodnik przeprowadzi Cię przez wszystkie aspekty funkcji – od składni, przez zaawansowane przypadki użycia, aż po pułapki, których należy unikać.
Dlaczego XLOOKUP zastępuje WYSZUKAJ.PIONOWO
Przez ponad trzydzieści lat użytkownicy Excela polegali na funkcji WYSZUKAJ.PIONOWO, akceptując jej ograniczenia jako nieunikniony koszt pracy z arkuszem. XLOOKUP eliminuje praktycznie wszystkie te bolączki. Najważniejsza różnica polega na oddzieleniu tablicy wyszukiwania od tablicy wyników – nie musisz już liczyć kolumn ani pamiętać, że formuła przestanie działać po wstawieniu nowej kolumny. XLOOKUP domyślnie szuka od góry do dołu, ale jednym argumentem możesz odwrócić kierunek. Nie zwraca błędów #N/D! przy braku wyniku, chyba że jawnie tego chcesz – możesz podać własną wartość domyślną. Wreszcie, XLOOKUP obsługuje wyszukiwanie poziome i pionowe w jednej składni, co czyni WYSZUKAJ.POZIOMO całkowicie zbędnym. W 2026 roku ponad osiemdziesiąt procent użytkowników Microsoft 365 deklaruje, że przestało używać starszych funkcji wyszukiwania na rzecz XLOOKUP.
Składnia funkcji XLOOKUP
Pełna składnia XLOOKUP obejmuje sześć argumentów, z których trzy pierwsze są obowiązkowe, a pozostałe opcjonalne. Formuła przyjmuje postać:
=XLOOKUP(wartość_szukana; tablica_szukana; tablica_zwracana; [jeśli_brak]; [tryb_dopasowania]; [tryb_wyszukiwania])
Wartość_szukana to konkretna liczba, tekst, data lub odwołanie do komórki, którą chcesz znaleźć. Tablica_szukana określa zakres, w którym Excel ma szukać tej wartości – może to być pojedyncza kolumna dla wyszukiwania pionowego lub pojedynczy wiersz dla poziomego. Tablica_zwracana wskazuje zakres, z którego pochodzi wynik. Kluczowe jest to, że obie tablice muszą mieć identyczny rozmiar – jeżeli przeszukujesz kolumnę A2:A100, tablica wyników powinna obejmować dokładnie tyle samo wierszy, na przykład B2:B100. Naruszenie tej zasady skutkuje błędem #VALUE!.
Argument jeśli_brak to eleganckie rozwiązanie problemu brakujących dopasowań. Zamiast opakowywać formułę w JEŻELI.BŁĄD, wpisujesz komunikat bezpośrednio w XLOOKUP. Może to być tekst "Nie znaleziono", wartość zero lub pusta komórka. Tryb_dopasowania przyjmuje wartości 0 (dokładne dopasowanie, domyślne), -1 (dokładne lub następna mniejsza), 1 (dokładne lub następna większa) oraz 2 (dopasowanie z użyciem znaków wieloznacznych: gwiazdki i znaku zapytania). Tryb_wyszukiwania kontroluje kierunek przeszukiwania: 1 oznacza od pierwszego elementu (domyślnie), -1 od ostatniego, 2 i -2 to odpowiednio wyszukiwanie binarne rosnące i malejące, przydatne przy ogromnych zbiorach posortowanych danych.
Wyszukiwanie pionowe i poziome
Jedną z największych zalet XLOOKUP jest unifikacja składni niezależnie od orientacji danych. W wyszukiwaniu pionowym tablicą szukaną jest kolumna, a tablicą zwracaną inna kolumna z tego samego wiersza. Przykładowo, aby znaleźć cenę produktu na podstawie jego kodu w arkuszu katalogowym, stosujesz:
=XLOOKUP(A2; Katalog!B:B; Katalog!D:D; "Brak ceny")
W wyszukiwaniu poziomym sytuacja wygląda analogicznie – zamiast kolumn używasz wierszy. Jeśli pierwszy wiersz arkusza zawiera identyfikatory miesięcy, a czwarty wiersz odpowiadające im wartości sprzedaży, formuła przyjmuje postać:
=XLOOKUP("2026-03"; 1:1; 4:4; 0)
Co istotne, XLOOKUP radzi sobie również z dwuwymiarowymi macierzami wyników. Jeżeli tablica zwracana obejmuje kilka kolumn, funkcja rozleje wyniki dynamicznie na sąsiednie komórki – zachowanie to wymaga środowiska Microsoft 365 z obsługą tablic dynamicznych. Dzięki temu jednym wywołaniem pobierzesz cały rekord: nazwę produktu, cenę, stan magazynowy i kategorię.
Obsługa błędów i wartości domyślne
Tradycyjne podejście do obsługi błędów w Excelu polegało na zagnieżdżaniu formuł w funkcji JEŻELI.BŁĄD lub JEŻELI.ND. XLOOKUP czyni ten schemat niepotrzebnym, oferując wbudowany mechanizm wartości domyślnych. Czwarty argument jeśli_brak przyjmuje statyczny tekst, liczbę, odwołanie do komórki, a nawet inną formułę. W praktyce analitycy często stosują konstrukcję:
=XLOOKUP(B2; Lista!A:A; Lista!C:C; XLOOKUP(B2; Archiwum!A:A; Archiwum!C:C; "Nie znaleziono w żadnym źródle"))
Powyższy przykład realizuje kaskadowe wyszukiwanie: najpierw sprawdza bieżącą listę, a gdy nie znajdzie dopasowania, przeszukuje archiwum. Dopiero po wyczerpaniu obu źródeł zwraca komunikat o błędzie. Mechanizm ten eliminuje potrzebę stosowania rozbudowanych zagnieżdżonych warunków i znacząco poprawia czytelność arkuszy.
Warto przy tym pamiętać, że XLOOKUP nie obsługuje pułapki związanej z wartościami zerowymi – jeżeli tablica zwracana zawiera zero w miejscu poprawnego dopasowania, funkcja zwróci to zero, co może być mylnie interpretowane jako brak wyniku. W takich sytuacjach lepiej zastosować dodatkowe zabezpieczenie: =JEŻELI(XLOOKUP(...)=0; "Brak danych"; XLOOKUP(...)).
Dopasowanie przybliżone i znaki wieloznaczne
Dopasowanie przybliżone znajduje zastosowanie wszędzie tam, gdzie dane nie są idealnie ustrukturyzowane. Tryb -1 (dokładne lub następna mniejsza wartość) sprawdza się przy tabelach podatkowych i przedziałach rabatowych, gdzie szukana kwota może nie występować bezpośrednio w tabeli. Tryb 1 (dokładne lub następna większa) stosuje się w logistyce przy wyznaczaniu minimalnej partii zamówienia.
Szczególnie potężnym narzędziem jest tryb dopasowania 2, aktywujący wyszukiwanie z użyciem znaków wieloznacznych. Gwiazdka zastępuje dowolny ciąg znaków, znak zapytania pojedynczy znak. Funkcja:
=XLOOKUP("PROD-*"; A:A; B:B; ; 2)
znajdzie pierwszy rekord, którego identyfikator zaczyna się od "PROD-", niezależnie od przyrostka. W połączeniu z argumentem trybu wyszukiwania -1 (od końca) możesz wyciągnąć ostatnie wystąpienie pasujące do wzorca. Jest to niezwykle przydatne przy analizie logów transakcyjnych, gdzie interesuje Cię ostatnia operacja danego typu.
Zwracanie wielu wartości jednocześnie
Dynamiczne tablice w Microsoft 365 otwierają przed XLOOKUP możliwości niedostępne dla poprzednich funkcji wyszukiwania. Kiedy jako tablicę zwracaną wskażesz zakres obejmujący kilka kolumn, Excel automatycznie rozleje wyniki na sąsiednie komórki w prawo. Formuła:
=XLOOKUP(F2; Pracownicy[ID]; Pracownicy[[Imię]:[Stanowisko]])
zwróci w jednym wierszu imię, nazwisko, dział i stanowisko pracownika o podanym identyfikatorze. Nie musisz pisać czterech osobnych formuł ani przeciągać wypełnienia – mechanizm spill range wykrywa, ile kolumn obejmuje tablica zwracana, i rezerwuje odpowiedni obszar.
Ta sama technika działa w połączeniu z funkcją XLOOKUP użytą wielokrotnie w jednej formule tablicowej. Jeśli w komórce podasz tablicę wartości szukanych, XLOOKUP zwróci odpowiednią liczbę wyników. Na przykład:
=XLOOKUP({"Styczeń"; "Luty"; "Marzec"}; Nagłówki; Dane)
przeszuka nagłówki i zwróci dane dla trzech miesięcy jednocześnie. W 2026 roku analitycy finansowi powszechnie wykorzystują to podejście do budowania dynamicznych dashboardów sprzedażowych, gdzie użytkownik wybiera kilka produktów z listy rozwijanej, a arkusz natychmiast prezentuje zestawienie.
Wydajność przy dużych zbiorach danych
Choć XLOOKUP jest wygodniejszy w użyciu od swoich poprzedników, nie jest pozbawiony kosztu obliczeniowego. Przy przeszukiwaniu zakresów liczących kilkaset tysięcy wierszy domyślne wyszukiwanie liniowe może powodować zauważalne spowolnienie arkusza. Rozwiązaniem jest wykorzystanie trybu wyszukiwania binarnego – argument 2 (lub -2 dla danych posortowanych malejąco). Wyszukiwanie binarne działa wyłącznie na posortowanych zakresach i redukuje złożoność z O(n) do O(log n). Przy stu tysiącach rekordów oznacza to około siedemnastu porównań zamiast średnio pięćdziesięciu tysięcy.
Praktyczna rekomendacja dla arkuszy zawierających ponad pięćdziesiąt tysięcy formuł XLOOKUP brzmi: przechowuj dane źródłowe w posortowanych tabelach, używaj odwołań strukturalnych zamiast pełnych kolumn (na przykład Tabela1[Kolumna] zamiast A:A) i rozważ tryb binarny wszędzie tam, gdzie kolejność danych na to pozwala. W środowiskach z Excel dla sieci Web te optymalizacje nabierają szczególnego znaczenia, ponieważ przeglądarkowy silnik obliczeniowy jest wrażliwszy na obciążenie niż natywny klient Windows.
Integracja z tabelami przestawnymi i Power Query
XLOOKUP nie funkcjonuje w próżni – jego prawdziwa siła ujawnia się w połączeniu z innymi narzędziami ekosystemu Excela. Tabele przestawne generują zagregowane raporty, ale często potrzebujesz wzbogacić je o dane szczegółowe z innych źródeł. XLOOKUP umieszczony obok tabeli przestawnej, operujący na nazwanych zakresach, pozwala dołączyć informacje pomocnicze bez modyfikowania modelu danych.
Z kolei w Power Query XLOOKUP znajduje zastosowanie w etapie transformacji jako formuła kolumny niestandardowej, choć puryści preferują w tym miejscu operację scalania zapytań. Bardziej wyrafinowanym wzorcem jest użycie XLOOKUP jako mechanizmu walidacji po załadowaniu danych z Power Query do arkusza – formuła sprawdza, czy wszystkie klucze obce mają odpowiedniki w tabelach słownikowych, sygnalizując potencjalne problemy z integralnością referencyjną już na etapie raportowania.
W 2026 roku na rynku pojawiły się także zaawansowane nakładki oparte na sztucznej inteligencji, które potrafią automatycznie sugerować optymalne formuły XLOOKUP na podstawie analizy struktury arkusza i relacji między zakresami, co dodatkowo obniża próg wejścia dla nowych użytkowników.
Porównanie z funkcjami INDEX i PODAJ.POZYCJĘ
Przed erą XLOOKUP złotym standardem elastycznego wyszukiwania było połączenie funkcji INDEX i PODAJ.POZYCJĘ. Ta kombinacja oferowała wyszukiwanie w lewo, niezależność od fizycznej kolejności kolumn i lepszą wydajność od WYSZUKAJ.PIONOWO. Czy XLOOKUP całkowicie wypiera INDEX+PODAJ.POZYCJĘ? W większości scenariuszy tak, jednak nie wszędzie.
INDEX+PODAJ.POZYCJĘ nadal znajduje zastosowanie w arkuszach, które muszą działać w starszych wersjach Excela (przed 2019) lub w środowiskach bez subskrypcji Microsoft 365 – na przykład w niektórych instalacjach terminalowych używanych przez administrację publiczną według stanu na 2026 rok. Ponadto konstrukcja z PODAJ.POZYCJĘ pozwala na użycie zaawansowanych trybów dopasowania niedostępnych w XLOOKUP, takich jak wyszukiwanie w posortowanych zakresach z pominięciem wartości niepasujących. Mimo tych niszowych przypadków, dla dziewięćdziesięciu pięciu procent codziennych zadań XLOOKUP jest rozwiązaniem prostszym, czytelniejszym i mniej podatnym na błędy.
Częste pytania
Czy XLOOKUP jest dostępny w Excelu 2019?
Nie. XLOOKUP wymaga subskrypcji Microsoft 365, Excela dla sieci Web, Excela 2021 lub nowszego. Użytkownicy starszych wersji Excela muszą polegać na kombinacji INDEX i PODAJ.POZYCJĘ.
Co zrobić, gdy XLOOKUP zwraca #VALUE! mimo poprawnych danych?
Błąd #VALUE! najczęściej wynika z niezgodności rozmiarów tablicy szukanej i zwracanej. Sprawdź, czy obie tablice mają identyczną liczbę wierszy (przy wyszukiwaniu pionowym) lub kolumn (przy poziomym). Drugą częstą przyczyną jest odwołanie do całej kolumny w połączeniu z tablicą wyników ograniczoną do mniejszego zakresu.
Jak znaleźć ostatnie wystąpienie szukanej wartości?
Użyj szóstego argumentu z wartością -1: =XLOOKUP(szukana; tablica_szukana; tablica_zwracana; ; 0; -1). Funkcja przeszuka zakres od dołu do góry i zwróci ostatnie dopasowanie.
Czy XLOOKUP rozróżnia wielkość liter?
Domyślnie nie. XLOOKUP traktuje tekst jako nieczuły na wielkość liter, podobnie jak WYSZUKAJ.PIONOWO. Aby wymusić rozróżnianie wielkości liter, połącz XLOOKUP z funkcją ZNAJDŹ lub wykorzystaj formułę tablicową z PORÓWNAJ w trybie binarnym.
Jak wyszukiwać w wielu kolumnach jednocześnie?
Połącz XLOOKUP z operatorem konkatenacji: =XLOOKUP(A2&B2; Kolumna1&Kolumna2; KolumnaWyników). Pamiętaj, aby zatwierdzić formułę przez Ctrl+Shift+Enter w starszych wersjach lub użyć jawnej funkcji POŁĄCZ.TEKSTY jako kryterium w wersjach z obsługą tablic dynamicznych.
Czy XLOOKUP działa szybciej niż WYSZUKAJ.PIONOWO?
Przy takim samym trybie wyszukiwania liniowego wydajność jest porównywalna. XLOOKUP oferuje jednak tryb binarny, który przy posortowanych danych jest wielokrotnie szybszy – to przewaga nieosiągalna dla WYSZUKAJ.PIONOWO.
Jak wykorzystać XLOOKUP do wyszukiwania dwukierunkowego w tabeli?
Zastosuj zagnieżdżony XLOOKUP: =XLOOKUP(wiersz_kryterium; kolumna_wierszy; XLOOKUP(kolumna_kryterium; wiersz_nagłówkowy; tabela_danych)). Wewnętrzny XLOOKUP zwraca całą kolumnę, którą zewnętrzny przeszukuje w pionie.
Czy mogę używać XLOOKUP z odwołaniami do zamkniętych skoroszytów?
Tak, funkcja obsługuje odwołania zewnętrzne. Należy jednak pamiętać, że podobnie jak w przypadku innych funkcji, odwołania do zamkniętych skoroszytów spowalniają obliczenia i wymagają, aby plik źródłowy znajdował się w tej samej lokalizacji co w momencie tworzenia formuły.
Jak zastąpić WYSZUKAJ.PIONOWO z argumentem numer_kolumny w XLOOKUP?
Po prostu wskaż kolumnę wynikową bezpośrednio jako trzeci argument. Na przykład =WYSZUKAJ.PIONOWO(A2; Tabela; 4; FAŁSZ) przekształca się w =XLOOKUP(A2; Tabela[Kolumna1]; Tabela[Kolumna4]; "Brak"). Koniec z liczeniem kolumn i ryzykiem przesunięcia indeksu po modyfikacji tabeli.
Gdzie znaleźć gotowe szablony Excela z predefiniowanymi formułami XLOOKUP?
Profesjonalne szablony analityczne, raporty sprzedażowe i dashboardy ze zoptymalizowanymi formułami XLOOKUP wraz z pełną dokumentacją i wsparciem technicznym dostępne są na kluczesoft.pl w sekcji szablonów Excel dla firm i analityków – to najszybsza droga do wdrożenia zaawansowanych funkcji bez ręcznego tworzenia formuł od podstaw.
