CoreGPT
Microsoft 36510 min czytania

XLOOKUP vs VLOOKUP: najważniejsze różnice, przykłady i wybór funkcji

XLOOKUP i VLOOKUP (po polsku X.WYSZUKAJ i WYSZUKAJ.PIONOWO) porównane obok siebie na tej samej tabeli: składnia, szukanie w lewo, dopasowanie dokładne, brakujące wartości, wstawione kolumny, starsze wersje Excela i konwersja istniejących formuł VLOOKUP.

XLOOKUP vs VLOOKUP: najważniejsze różnice, przykłady i wybór funkcji

Wybierając między XLOOKUP a VLOOKUP, użyj XLOOKUP, jeśli wszyscy, którzy otwierają plik, mają Excela dla Microsoft 365, Excela 2021 lub nowszego albo Excela dla internetu. Robi wszystko, co VLOOKUP, z mniejszą liczbą pomyłek: domyślnie szuka dokładnego dopasowania, potrafi szukać w lewo i nie psuje się po wstawieniu kolumny. VLOOKUP stosuj tylko wtedy, gdy skoroszyt musi działać w Excelu 2019 lub starszym.

Kompatybilność to główne zastrzeżenie. XLOOKUP nie istnieje w Excelu 2016 ani 2019, więc plik pełen formuł XLOOKUP pokazuje błędy #NAME? każdemu, kto nadal korzysta z tych wersji.

W polskiej wersji Excela funkcje mają polskie nazwy: VLOOKUP to WYSZUKAJ.PIONOWO, HLOOKUP to WYSZUKAJ.POZIOMO, XLOOKUP to X.WYSZUKAJ, a argumenty rozdzielasz średnikami. W tym artykule formuły podajemy w formie polskiej i angielskiej tam, gdzie to ułatwia czytanie; w angielskim Excelu użyj nazw angielskich i przecinków.

VLOOKUPXLOOKUP
Szukanie w lewo (zwracanie kolumny na lewo od kolumny wyszukiwania)NieTak
Domyślny typ dopasowaniaPrzybliżone (chyba że dodasz FAŁSZ)Dokładne
Odporność na wstawianie lub usuwanie kolumnNie, numer kolumny pozostaje stałyTak, zakresy dostosowują się
Własny komunikat „nie znaleziono”Wymaga JEŻELI.ND lub JEŻELI.BŁĄDWbudowany (if_not_found)
Zwracanie kilku kolumn narazNiełatwoTak, wyniki się rozlewają
Szukanie od ostatniego dopasowania w góręNieTak (search_mode -1)
Dopasowanie przybliżoneDane muszą być posortowane rosnącoNastępna mniejsza lub większa wartość, bez sortowania
Symbole wieloznaczne (*, ?)Tak, przy dopasowaniu dokładnymTak, z match_mode 2
Wyszukiwanie poziomeNie, do tego służy WYSZUKAJ.POZIOMOTak, ta sama funkcja
SzybkośćBrak praktycznej różnicy w typowych skoroszytachTaka sama, plus opcjonalne wyszukiwanie binarne na posortowanych danych
DostępnośćKażda wersja ExcelaMicrosoft 365, Excel 2021, Excel 2024, Excel dla internetu, aplikacje mobilne

Składnia obok siebie

Wersja polska:

=WYSZUKAJ.PIONOWO(szukana_wartość; tablica; nr_indeksu_kolumny; [przeszukiwany_zakres])
=X.WYSZUKAJ(szukana_wartość; przeszukiwana_tablica; tablica_zwracana; [jeśli_nie_znaleziono]; [tryb_dopasowania]; [tryb_wyszukiwania])

Wersja angielska:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Główna różnica dotyczy tego, jak mówisz Excelowi, gdzie jest odpowiedź. VLOOKUP przyjmuje całą tabelę i numer kolumny liczony od lewej krawędzi tej tabeli. XLOOKUP przyjmuje dwa osobne zakresy: kolumnę, w której szukasz, i kolumnę, z której zwracasz wynik.

To samo wyszukiwanie zapisane na oba sposoby

Oto mała lista produktów w A1:D6 z identyfikatorem produktu wpisanym w G2 (dane przykładowe pozostawiliśmy w oryginalnej postaci, tak jak na zrzutach ekranu):

ABCD
1Product IDProductCategoryPrice
2P-101Wireless MouseAccessories$24.99
3P-102USB-C HubAccessories$39.50
4P-103Laptop StandOffice$45.00
5P-104Webcam HDVideo$59.00
6P-105Desk LampOffice$32.75

Aby znaleźć cenę produktu P-104:

=WYSZUKAJ.PIONOWO(G2; A2:D6; 4; FAŁSZ)
=X.WYSZUKAJ(G2; A2:A6; D2:D6)

(W angielskim Excelu: =VLOOKUP(G2, A2:D6, 4, FALSE) i =XLOOKUP(G2, A2:A6, D2:D6).)

Obie zwracają $59.00. VLOOKUP przeszukuje pierwszą kolumnę zakresu A2:D6 i zwraca czwartą kolumnę; FAŁSZ wymusza dopasowanie dokładne. XLOOKUP przeszukuje A2:A6 i zwraca pasującą komórkę z D2:D6, a dopasowanie dokładne jest ustawieniem domyślnym.

Arkusz Excela z tabelą produktów w A1:D6, identyfikatorem P-104 w G2 oraz formułą VLOOKUP w G4 i formułą =XLOOKUP(G2,A2:A6,D2:D6) w G5, obie zwracają $59.00, z wyróżnionym wierszem Webcam HD

Jeśli będziesz kopiować formułę w dół kolumny, zablokuj tabelę odwołaniami bezwzględnymi, na przykład =X.WYSZUKAJ(G2; $A$2:$A$6; $D$2:$D$6). Naciśnij F4 w Windows lub Cmd+T na Macu, gdy kursor jest w odwołaniu, aby dodać znaki $.

Dwie klasyczne pułapki VLOOKUP

1. Zapomniany argument FAŁSZ (lub 0)

Ostatni argument VLOOKUP jest opcjonalny, a gdy go pominiesz, Excel używa dopasowania przybliżonego. Przy dopasowaniu przybliżonym VLOOKUP zakłada, że pierwsza kolumna jest posortowana, i bez żadnego ostrzeżenia zwraca najbliższą wartość mniejszą lub równą szukanej.

Wypróbuj =WYSZUKAJ.PIONOWO("P-110"; A2:D6; 4) na powyższej tabeli. P-110 nie istnieje, ale zamiast #N/D dostajesz $32.75, czyli cenę P-105, bo „P-105” jest najbliższą mniejszą wartością. Na nieposortowanych danych wyniki mogą być jeszcze bardziej przypadkowe.

Zawsze kończ VLOOKUP z dopasowaniem dokładnym argumentem FAŁSZ lub 0. XLOOKUP unika tego problemu, bo używa dopasowania dokładnego, dopóki nie zażądasz inaczej.

2. Numer kolumny wpisany na sztywno

Cyfra 4 w formule VLOOKUP to po prostu liczba. Jeśli ktoś wstawi kolumnę Supplier (dostawca) między Product a Category, tabela zmieni się w A:E, Price przeniesie się do kolumny E, a formuła nadal zwróci czwartą kolumnę, którą jest teraz Category. Zobaczysz „Video” zamiast $59.00.

XLOOKUP wskazuje samą kolumnę z ceną (D2:D6), więc Excel automatycznie zaktualizuje ją do E2:E6 i odpowiedź pozostanie poprawna.

Co potrafi XLOOKUP, a czego nie potrafi VLOOKUP

Szukanie w lewo

VLOOKUP może zwracać tylko kolumny na prawo od kolumny wyszukiwania. XLOOKUP nie dba o kierunek. Aby znaleźć identyfikator produktu dla nazwy produktu w G2:

=X.WYSZUKAJ(G2; B2:B6; A2:A6)

Gdy w G2 jest „Desk Lamp”, formuła zwraca P-105, mimo że kolumna A leży na lewo od kolumny B.

Arkusz Excela, w którym G2 zawiera Desk Lamp, a formuła =XLOOKUP(G2,B2:B6,A2:A6) w G4 zwraca P-105 z kolumny A, położonej na lewo od kolumny Product, ze strzałką od Desk Lamp do P-105

Przyjazny komunikat, gdy nic nie znaleziono

=X.WYSZUKAJ(G2; A2:A6; D2:D6; "Nie znaleziono")

Odpowiednik z VLOOKUP wymaga opakowania: =JEŻELI.ND(WYSZUKAJ.PIONOWO(G2; A2:D6; 4; FAŁSZ); "Nie znaleziono").

Zwracanie kilku kolumn jedną formułą

=X.WYSZUKAJ(G2; A2:A6; B2:D6)

Dla P-104 formuła rozleje Webcam HD, Video i $59.00 do trzech sąsiednich komórek. Zostaw te komórki puste, bo inaczej pojawi się błąd #SPILL!.

Znajdowanie ostatniego dopasowania zamiast pierwszego

W dzienniku, w którym ten sam klient pojawia się wiele razy, ustaw search_mode na -1, aby szukać od dołu do góry i otrzymać najnowszy wpis:

=X.WYSZUKAJ(G2; A2:A500; C2:C500; "Nie znaleziono"; 0; -1)

Dopasowanie przybliżone bez sortowania

W przypadku progów cenowych lub stawek prowizji dopasowanie przybliżone w VLOOKUP działa tylko wtedy, gdy pierwsza kolumna jest posortowana rosnąco. Wartości match_mode -1 (dopasowanie dokładne lub następny mniejszy element) i 1 (dopasowanie dokładne lub następny większy element) w XLOOKUP nie wymagają posortowanych danych. Przy minimalnych kwotach zamówienia w J2:J5 i rabatach w K2:K5:

=WYSZUKAJ.PIONOWO(B2; J2:K5; 2; PRAWDA)
=X.WYSZUKAJ(B2; J2:J5; K2:K5; ; -1)

Symbole wieloznaczne

Obie funkcje obsługują * i ?, ale XLOOKUP wymaga match_mode 2, aby traktować je jako symbole wieloznaczne:

=WYSZUKAJ.PIONOWO("Desk*"; B2:D6; 3; FAŁSZ)
=X.WYSZUKAJ("Desk*"; B2:B6; D2:D6; ; 2)

Obie zwracają $32.75 dla Desk Lamp.

INDEX/MATCH: klasyczna alternatywa

Przed XLOOKUP standardowym sposobem na ograniczenia VLOOKUP było połączenie INDEKS z PODAJ.POZYCJĘ (INDEX/MATCH). Szuka w lewo, jest odporne na wstawione kolumny i działa w każdej wersji Excela, więc to najlepszy wybór dla plików, które muszą otwierać się w Excelu 2019 lub starszym:

=INDEKS(D2:D6; PODAJ.POZYCJĘ(G2; A2:A6; 0))
=INDEKS(A2:A6; PODAJ.POZYCJĘ(G2; B2:B6; 0))

Pierwsza zwraca cenę dla identyfikatora z G2; druga to przykład szukania w lewo. Zero w PODAJ.POZYCJĘ oznacza dopasowanie dokładne i tak jak FAŁSZ w VLOOKUP łatwo o nim zapomnieć. XLOOKUP to po prostu krótsza, bezpieczniejsza wersja tego samego pomysłu.

Jak zamienić formuły VLOOKUP na XLOOKUP

Nie ma wbudowanego konwertera, ale tłumaczenie jest mechaniczne:

  1. Znajdź swoje formuły VLOOKUP: naciśnij Ctrl+F (Cmd+F na Macu), wpisz WYSZUKAJ.PIONOWO, kliknij Opcje, jeśli dodatkowe ustawienia są ukryte, ustaw Szukaj w na Formuły i kliknij Znajdź wszystko.
  2. Pierwszy argument (szukaną wartość) zostaw bez zmian.
  3. Zastąp tabelę jej pierwszą kolumną jako przeszukiwaną tablicą (lookup_array).
  4. Zastąp numer kolumny odpowiednią kolumną jako tablicą zwracaną (return_array). Kolumna 5 tabeli zaczynającej się w kolumnie A to kolumna E.
  5. Usuń FAŁSZ. Jeśli oryginał kończył się argumentem PRAWDA albo nie miał ostatniego argumentu, dodaj match_mode -1, aby zachować zachowanie „następna mniejsza”.

Na przykład:

=WYSZUKAJ.PIONOWO(A2; Products!$A$2:$F$500; 5; FAŁSZ)
=X.WYSZUKAJ(A2; Products!$A$2:$A$500; Products!$E$2:$E$500)

Przetestuj kilka wyników względem starej formuły, zanim przekonwertujesz cały arkusz. VLOOKUP z dopasowaniem przybliżonym na nieposortowanych danych mógł przez cały czas zwracać błędne wartości, więc odpowiedzi XLOOKUP mogą zasadnie się różnić.

Co się dzieje, gdy plik z XLOOKUP otworzy się w Excelu 2016 lub 2019

Skoroszyt się otwiera, ale te wersje nie znają funkcji. Na pasku formuły pojawia się ona jako =_xlfn.XLOOKUP(...). Komórki mogą z początku nadal pokazywać ostatnio zapisane wyniki, ale gdy tylko formuła się przeliczy, zwraca #NAME? (w polskim Excelu #NAZWA?).

Jeśli udostępniasz pliki osobom ze starszymi wersjami:

  • użyj zamiast tego INDEX/MATCH lub VLOOKUP albo
  • wyślij kopię z wynikami wklejonymi jako wartości (Kopiuj → Wklej specjalnie → Wartości).

To samo dotyczy innych nowszych funkcji, takich jak FILTRUJ, UNIKATOWE i X.PODAJ.POZYCJĘ.

XLOOKUP w Arkuszach Google

Arkusze Google (Google Sheets) też mają XLOOKUP, z taką samą kolejnością argumentów: =XLOOKUP(search_key, lookup_range, result_range, [missing_value], [match_mode], [search_mode]). Formuły z tego artykułu działają tam w postaci angielskiej bez zmian, więc XLOOKUP to bezpieczny wybór dla plików wędrujących między Excelem a Sheets.

Dlaczego wyszukiwanie zwraca #N/D lub błędną wartość

  • Zbędne spacje. „P-104 ” ze spacją na końcu nie pasuje do „P-104”. Oczyść dane funkcją USUŃ.ZBĘDNE.ODSTĘPY.
  • Liczby zapisane jako tekst. Identyfikator wpisany jako tekst nie pasuje do tego samego identyfikatora zapisanego jako liczba. Poszukaj zielonego trójkąta w rogu komórki i zamień kolumnę na jeden typ.
  • Brak FAŁSZ w VLOOKUP. Dostajesz wiarygodną, ale błędną odpowiedź zamiast #N/D.
  • Zakresy, które przesunęły się po skopiowaniu formuły. Użyj odwołań bezwzględnych $ dla tabeli wyszukiwania.
  • #ADR! z VLOOKUP. Numer kolumny jest większy niż liczba kolumn w tabeli (angielskie #REF!).
  • #ARG! z XLOOKUP. Zakres wyszukiwania i zakres zwracany mają różne rozmiary, na przykład A2:A6 i D2:D60 (angielskie #VALUE!).
  • #NAZWA? Nazwa funkcji jest błędnie wpisana albo plik jest otwarty w wersji bez XLOOKUP (angielskie #NAME?).

Najczęściej zadawane pytania

Czy XLOOKUP jest lepszy niż VLOOKUP? Tak, w prawie każdym zastosowaniu. Ma domyślne dopasowanie dokładne, szuka w dowolnym kierunku, nie psuje się po przesunięciu kolumn i radzi sobie z brakującymi wartościami bez opakowania. Jedyną realną zaletą VLOOKUP jest to, że działa w każdej wersji Excela.

Czy XLOOKUP jest szybszy niż VLOOKUP? W codziennych skoroszytach nie zauważysz różnicy. Na bardzo dużych posortowanych listach tryby wyszukiwania binarnego XLOOKUP (search_mode 2 lub -2) mogą przyspieszyć działanie, ale zwracają błędne wyniki, jeśli dane nie są posortowane.

Dlaczego XLOOKUP pokazuje #NAZWA? na moim komputerze? Twoja wersja Excela nie zawiera XLOOKUP. Jest w Microsoft 365, Excelu 2021 i nowszych oraz w Excelu dla internetu, ale nie w Excelu 2019 ani 2016. Użyj zamiast tego INDEX/MATCH.

Czy XLOOKUP zastępuje też HLOOKUP? Tak. Jeśli zakresy wyszukiwania i zwracany są wierszami zamiast kolumnami, XLOOKUP przeszukuje poziomo z tą samą składnią.

Czy XLOOKUP może zwrócić wszystkie dopasowania, a nie tylko pierwsze? Nie, zwraca jedno dopasowanie (lub jeden wiersz kolumn). Aby uzyskać każdy pasujący wiersz, użyj FILTRUJ, na przykład =FILTRUJ(A2:D6; C2:C6="Office").

Czy nadal warto uczyć się VLOOKUP? Warto go rozpoznawać, bo znajdziesz go w starszych skoroszytach i szablonach. W nowych formułach ucz się XLOOKUP i pamiętaj o INDEX/MATCH dla plików, które muszą otwierać się w starszym Excelu.

Niech AI napisze wyszukiwanie za Ciebie

Formuły wyszukujące to miejsce, w którym drobne szczegóły, takie jak brakujące FAŁSZ albo przesunięty zakres, powodują najwięcej cichych błędów. CoreGPT for Excel pozwala opisać, czego potrzebujesz, na przykład „znajdź cenę dla identyfikatora produktu w G2” lub „oznacz każdy wiersz jako powyżej lub poniżej celu”, i wpisuje formułę do arkusza wraz z krótkim wyjaśnieniem. Można zacząć za darmo, a narzędzie działa w Excelu dla Windows, Maca i internetu.

Wypróbuj: CoreGPT for Excel

Powiązane artykuły:

Czytaj dalej

Microsoft 365

Jak zablokować okienka w Excelu (wiersze, kolumny lub oba naraz)

Zablokuj górny wiersz, pierwszą kolumnę albo kilka wierszy i kolumn naraz, aby nagłówki były widoczne podczas przewijania, w Excelu dla Windows, Maca, internetu i urządzeń mobilnych, a także dowiedz się, co zrobić, gdy opcja Zablokuj okienka jest wyszarzona.

Czytaj dalej
Microsoft 365

Jak scalić komórki w Excelu (i połączyć tekst bez utraty danych)

Scalaj komórki w Excelu za pomocą przycisku Scal i wyśrodkuj oraz jego pozostałych opcji, łącz tekst z kilku komórek bez utraty czegokolwiek i używaj opcji Wyrównaj do środka zaznaczenia, gdy chcesz uzyskać wygląd scalonej komórki, a nadal sortować i filtrować.

Czytaj dalej