=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Bread | $2.40 | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=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])
| Argument | Co robi | Domyś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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Category | Price | Stock |
| 2 | Apple | Fruit | $1.20 | 40 |
| 3 | Pear | Fruit | $1.50 | 25 |
| 4 | Carrot | Vegetable | $0.80 | 60 |
| 5 | Bread | Bakery | $2.40 | 15 |
| 6 | Milk | Dairy | $1.10 | 30 |
| 7 | Look for | Carrot | ||
| 8 | Result | Vegetable | $0.80 | 60 |
=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Price | Product | |
| 2 | Apple | Fruit | $1.20 | 40 | $2.40 | Bread | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | First | Last | |
| 2 | 2026-03-02 | Ben | 120 | Ben | 120 | 60 | |
| 3 | 2026-03-05 | Ana | 80 | ||||
| 4 | 2026-03-09 | Ben | 45 | ||||
| 5 | 2026-03-12 | Cara | 200 | ||||
| 6 | 2026-03-20 | Ben | 60 | ||||
| 7 | 2026-03-24 | Ana | 95 |
=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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Sales from | Rate | Rep | Sales | Rate | |
| 2 | 5000 | 5% | Ana | 750 | 0% | |
| 3 | 0 | 0% | Ben | 4,200 | 3% | |
| 4 | 10000 | 8% | Cara | 5,000 | 5% | |
| 5 | 1000 | 3% | Dev | 12,500 | 8% |
=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).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Contains | Price | |
| 2 | Green tea | Drinks | $3.20 | coffee | $2.90 | |
| 3 | Iced coffee | Drinks | $2.90 | |||
| 4 | Coffee beans | Pantry | $8.50 | |||
| 5 | Black tea | Drinks | $2.70 | |||
| 6 | Orange juice | Drinks | $3.40 |
=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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | South | ||
| 7 | Month | Feb | ||
| 8 | Sales | 3,600 |
=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”
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Kiwi | ||
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
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
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Order from | Discount | Order | Discount | |
| 2 | $0 | 0% | $320 | ||
| 3 | $100 | 5% | |||
| 4 | $250 | 10% | |||
| 5 | $500 | 15% |
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!.