Menu

X.WYSZUKAJ (XLOOKUP) w Excelu: formuła i przykłady

=X.WYSZUKAJ(F2;A2:A6;C2:C6) szuka F2 w A2:A6 i zwraca wartość z tego samego wiersza C2:C6. Tekst „nie znaleziono”, kilka kolumn naraz, wyszukiwanie w lewo, ostatnie dopasowanie, dopasowanie przybliżone i wieloznaczne.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

=X.WYSZUKAJ(F2;A2:A6;C2:C6) (po angielsku XLOOKUP) szuka wartości z F2 w A2:A6 i zwraca wartość z tego samego wiersza C2:C6. Domyślnie szuka dopasowania dokładnego, przeszukiwana kolumna może być w dowolnym miejscu, a funkcja wymaga Excela 2021 albo Microsoft 365 (w Excelu 2019 i starszym użyj INDEKS i PODAJ.POZYCJĘ). Wpisz inny produkt w F2. Tabela pokazuje angielską wersję formuły, =XLOOKUP(F2,A2:A6,C2:C6), ale możesz w niej wpisywać formuły także po polsku, ze średnikami.

Cena produktu
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Bread$2.40
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(F2;A2:A6;C2:C6)

Kliknij G2: zakres przeszukiwany i zakres zwracany są obrysowane osobno. Zmień C2:C6 na B2:B6, a G2 zwróci kategorię. Nie ma numeru kolumny do liczenia, więc wstawienie kolumny między A a C nie psuje formuły: Excel przesuwa oba zakresy.

Składnia funkcji X.WYSZUKAJ

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
ArgumentCo robiDomyślnie
lookup_value (szukana_wartość)Wartość do znalezienia.wymagany
lookup_array (szukana_tablica)Przeszukiwana kolumna (albo wiersz).wymagany
return_array (zwracana_tablica)Kolumna, wiersz albo blok, z którego zwracany jest wynik. Ta sama wysokość co lookup_array.wymagany
if_not_found (jeżeli_nie_znaleziono)Co pokazać, gdy nic nie pasuje.#N/D!
match_mode (tryb_dopasowania)0 dokładne, -1 dokładne albo następne mniejsze, 1 dokładne albo następne większe, 2 symbole wieloznaczne.0
search_mode (tryb_wyszukiwania)1 od pierwszego do ostatniego, -1 od ostatniego do pierwszego, 2 i -2 wyszukiwanie binarne w posortowanych danych.1

Wymagane są tylko trzy pierwsze. Aby pominąć opcjonalny argument i ustawić dalszy, zostaw go pustego między średnikami: =X.WYSZUKAJ(F2;A2:A6;C2:C6;;0;-1) ustawia tryb_wyszukiwania, a jeżeli_nie_znaleziono zostawia domyślne.

Kilka kolumn naraz

Podaj X.WYSZUKAJ zwracany zakres szeroki na kilka kolumn, a wróci cały wiersz. Wynik rozleje się do komórek obok formuły.

Wszystkie pola jednego produktu
B8
ABCD
1ProductCategoryPriceStock
2AppleFruit$1.2040
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
7Look forCarrot
8ResultVegetable$0.8060
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(B7;A2:A6;B2:D6)

Jedna formuła w B8 wypełnia B8:D8 wartościami Vegetable, $0.80 i 60. Wpisz coś w C8, a B8 pokaże #ROZLANIE! (po angielsku #SPILL!; tabele pokazują angielskie nazwy błędów), bo wynik nie ma miejsca; usuń to, a wynik wróci. Aby zwrócić kolumny w innej kolejności, obejmij zwracany zakres funkcją WYBIERZ.KOLUMNY (CHOOSECOLS): =X.WYSZUKAJ(B7;A2:A6;WYBIERZ.KOLUMNY(B2:D6;3;1)) daje najpierw Stock, a potem Category.

X.WYSZUKAJ w lewo i komunikat, gdy nic nie pasuje

Przeszukiwana kolumna nie musi być pierwsza. Tutaj X.WYSZUKAJ przeszukuje ceny w kolumnie C i zwraca nazwę produktu z kolumny A, czego WYSZUKAJ.PIONOWO nie potrafi. Czwarty argument mówi, co pokazać, gdy żaden produkt nie ma tej ceny.

Który produkt tyle kosztuje?
G2
ABCDEFG
1ProductCategoryPriceStockPriceProduct
2AppleFruit$1.2040$2.40Bread
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(F2;C2:C6;A2:A6;"No product")

$2.40 zwraca Bread. Zmień F2 na 3, a G2 pokaże "No product" zamiast #N/D! (#N/A). "" jako czwarty argument daje komórkę, która wygląda na pustą. jeżeli_nie_znaleziono obejmuje tylko „nie znaleziono”: zwracany zakres o złej wysokości nadal da #ARG! (#VALUE!), i dobrze, bo ten błąd chcesz zobaczyć.

Ostatnie dopasowanie

X.WYSZUKAJ zwraca pierwsze dopasowanie od góry. Ustaw tryb_wyszukiwania, szósty argument, na -1, a funkcja będzie szukać od dołu, więc zwróci ostatnie dopasowanie: najnowsze zamówienie, najświeższą cenę, ostatni status.

Pierwsze i ostatnie zamówienie klienta
G2
ABCDEFG
1DateCustomerAmountCustomerFirstLast
22026-03-02Ben120Ben12060
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(E2;B2:B7;C2:C7;;0;-1)

Pierwsze zamówienie Bena to 120, a ostatnie 60. Zmień E2 na Ana: 80 i 95. To działa dzięki temu, że wiersze są w kolejności dat. Jeśli nie są, wyszukaj najpóźniejszą datę klienta: =X.WYSZUKAJ(1;(B2:B7=E2)*(A2:A7=MAKS.WARUNKÓW(A2:A7;B2:B7;E2));C2:C7).

Dopasowanie przybliżone: następne mniejsze albo następne większe

tryb_dopasowania -1 zwraca dopasowanie dokładne albo, gdy go nie ma, następną mniejszą wartość. To reguła dla przedziałów: poziomu prowizji, progu podatkowego, oceny. W przeciwieństwie do WYSZUKAJ.PIONOWO z PRAWDA tabela nie musi być posortowana. Przedziały poniżej są celowo w przypadkowej kolejności.

Stawka prowizji według sprzedaży
F2
ABCDEF
1Sales fromRateRepSalesRate
250005%Ana7500%
300%Ben4,2003%
4100008%Cara5,0005%
510003%Dev12,5008%
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(E2;$A$2:$A$5;$B$2:$B$5;;-1)

4,200 Bena leży między 1000 a 5000, więc dostaje 3% z przedziału od 1000. 5,000 Cary to dopasowanie dokładne, 5%. tryb_dopasowania 1 działa odwrotnie, dokładne albo następne większe, co odpowiada na pytania „najmniejsze pudełko, które się zmieści” albo „najbliższy termin dostawy”: =XLOOKUP(18,{5;12;25;50},{"S";"M";"L";"XL"},,1) (postać angielska) zwraca L.

X.WYSZUKAJ z symbolami wieloznacznymi

tryb_dopasowania 2 zamienia * (dowolne znaki) i ? (jeden znak) w symbole wieloznaczne. Bez niego X.WYSZUKAJ szuka samych tych znaków, odwrotnie niż WYSZUKAJ.PIONOWO (którego dopasowanie dokładne przyjmuje symbole wieloznaczne), i to zwykle jest powód, dla którego X.WYSZUKAJ z symbolem wieloznacznym zwraca #N/D! albo tekst z jeżeli_nie_znaleziono:

=XLOOKUP("*coffee*",A2:A6,C2:C6,"None")      None: no product is named *coffee*
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None",2)    2.9, the price of Iced coffee

W polskim Excelu druga formuła to =X.WYSZUKAJ("*coffee*";A2:A6;C2:C6;"None";2).

Pierwszy produkt, którego nazwa zawiera tekst
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ("*"&E2&"*";A2:A6;C2:C6;"None";2)

"coffee" najpierw znajduje Iced coffee, $2.90. Dodaj -1 jako szósty argument, a znajdzie Coffee beans, $8.50. Jak każde wyszukiwanie w Excelu, dopasowanie nie rozróżnia wielkości liter. Aby znaleźć prawdziwą gwiazdkę albo znak zapytania w trybie 2, postaw przed nim tyldę: "~*".

X.WYSZUKAJ w dwóch kierunkach

X.WYSZUKAJ, która zwraca cały wiersz, może być zwracanym zakresem drugiej X.WYSZUKAJ. Wewnętrzna wybiera wiersz według regionu, a zewnętrzna wybiera z tego wiersza kolumnę miesiąca.

Sprzedaż według regionu i miesiąca
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionSouth
7MonthFeb
8Sales3,600
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =X.WYSZUKAJ(B7;B1:D1;X.WYSZUKAJ(B6;A2:A5;B2:D5))

X.WYSZUKAJ(B6;A2:A5;B2:D5) zwraca wiersz South: 3100, 3600 i 3300. Zewnętrzna X.WYSZUKAJ znajduje Feb w B1:D1 i bierze z tego wiersza odpowiadającą wartość: 3,600. W polskim Excelu cała formuła to =X.WYSZUKAJ(B7;B1:D1;X.WYSZUKAJ(B6;A2:A5;B2:D5)). Wybierz inny region i miesiąc w B6 i B7. Wersja tego samego wyszukiwania z INDEKS i PODAJ.POZYCJĘ jest na stronie INDEKS i PODAJ.POZYCJĘ.

X.WYSZUKAJ w starszym Excelu i w Arkuszach Google

X.WYSZUKAJ istnieje w Excelu 2021, Excelu 2024, Microsoft 365, Excelu dla sieci Web i aplikacjach mobilnych. Jeśli otworzysz plik, który jej używa, w Excelu 2019 lub starszym, formuły pokażą #NAZWA? (#NAME?), gdy tylko się przeliczą. Gdy plik ma działać wszędzie, zapisz wyszukiwanie przez INDEKS i PODAJ.POZYCJĘ, które rozumie każda wersja:

=XLOOKUP(F2, A2:A6, C2:C6, "Not found")
=IFNA(INDEX(C2:C6, MATCH(F2, A2:A6, 0)), "Not found")

W polskim Excelu: =X.WYSZUKAJ(F2;A2:A6;C2:C6;"Not found") i =JEŻELI.ND(INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0));"Not found"). Arkusze Google mają XLOOKUP od 2022 roku, z tymi samymi argumentami. Zestawienie różnic znajdziesz na stronie WYSZUKAJ.PIONOWO a X.WYSZUKAJ. Aby dopasować dwie kolumny naraz (produkt i rozmiar, imię i datę), schemat =X.WYSZUKAJ(1;(B2:B6=E2)*(C2:C6=F2);D2:D6) wyjaśnia strona wyszukiwanie z wieloma kryteriami.

Ćwiczenie: cena albo „Not found”

Cennik
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Kiwi
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: W G2 zwróć cenę produktu z F2 albo tekst Not found, gdy produktu nie ma na liście.

Ćwiczenie: rabat według wartości zamówienia

Progi rabatowe
E2
ABCDE
1Order fromDiscountOrderDiscount
2$00%$320
3$1005%
4$25010%
5$50015%
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: Każdy rabat obowiązuje od swojej wartości zamówienia w górę. W E2 użyj X.WYSZUKAJ, aby zwrócić rabat dla wartości zamówienia z D2.

Najczęściej zadawane pytania

Jak używać funkcji X.WYSZUKAJ w Excelu?

Podaj trzy argumenty: co znaleźć, którą kolumnę przeszukać i którą kolumnę zwrócić. =X.WYSZUKAJ("Pear";A2:A6;C2:C6) znajduje Pear w A2:A6 i zwraca wartość z tego samego wiersza C2:C6. W angielskim Excelu: =XLOOKUP("Pear",A2:A6,C2:C6). Funkcja szuka dopasowania dokładnego, chyba że wskażesz inaczej.

Które wersje Excela mają X.WYSZUKAJ?

Excel 2021, Excel 2024, Microsoft 365 i Excel dla sieci Web. W Excelu 2019 i starszym formuła pokazuje #NAZWA?; tam użyj =INDEKS(C2:C6;PODAJ.POZYCJĘ(F2;A2:A6;0)). Arkusze Google też mają XLOOKUP.

Jak sprawić, by X.WYSZUKAJ zwracała pustą komórkę albo tekst zamiast #N/D!?

Użyj czwartego argumentu, jeżeli_nie_znaleziono: =X.WYSZUKAJ(F2;A2:A6;C2:C6;"Not found") albo "", aby komórka wyglądała na pustą. Zastępuje on tylko przypadek „nie znaleziono”; inne błędy nadal są widoczne.

Jak znaleźć ostatnie dopasowanie funkcją X.WYSZUKAJ?

Ustaw szósty argument, tryb_wyszukiwania, na -1, aby wyszukiwanie szło od dołu: =X.WYSZUKAJ("Ben";B2:B7;C2:C7;;0;-1) zwraca ostatnią kwotę Bena zamiast pierwszej.

Czy X.WYSZUKAJ może zwrócić więcej niż jedną kolumnę?

Tak. Podaj zwracany zakres szeroki na kilka kolumn, na przykład =X.WYSZUKAJ(F2;A2:A6;B2:D6), a wynik rozleje się do komórek obok. Komórki, do których się rozlewa, muszą być puste, inaczej Excel pokaże #ROZLANIE!.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ