=X.DOPASUJ(E2;A2:A6) (po angielsku XMATCH) zwraca pozycję E2 w A2:A6: 1 dla pierwszej komórki, 2 dla drugiej. W przeciwieństwie do PODAJ.POZYCJĘ szuka dopasowania dokładnego, chyba że wskażesz inaczej. X.DOPASUJ wymaga Excela 2021 albo Microsoft 365; w starszych wersjach użyj PODAJ.POZYCJĘ(E2;A2:A6;0). Tabele pokazują formuły po angielsku, =XMATCH(E2,A2:A6), ale możesz w nich wpisywać formuły także po polsku, ze średnikami.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Look for | Position | |
| 2 | Apple | Fruit | $1.20 | Carrot | 3 | |
| 3 | Pear | Fruit | $1.50 | |||
| 4 | Carrot | Vegetable | $0.80 | |||
| 5 | Bread | Bakery | $2.40 | |||
| 6 | Milk | Dairy | $1.10 |
=X.DOPASUJ(E2;A2:A6)Carrot to trzeci element, więc F2 pokazuje 3. Wpisz Kiwi, a funkcja zwróci #N/D! (po angielsku #N/A; tabele pokazują angielskie nazwy błędów). Jak każde wyszukiwanie w Excelu nie rozróżnia wielkości liter.
Składnia funkcji X.DOPASUJ
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
| Argument | Wartości |
|---|---|
match_mode (tryb_dopasowania) | 0 dokładne (domyślnie), -1 dokładne albo następne mniejsze, 1 dokładne albo następne większe, 2 symbole wieloznaczne |
search_mode (tryb_wyszukiwania) | 1 od pierwszego elementu (domyślnie), -1 od ostatniego elementu, 2 wyszukiwanie binarne rosnąco, -2 wyszukiwanie binarne malejąco |
Tryby binarne są szybsze na bardzo dużych posortowanych listach i zwracają złe pozycje na nieposortowanych. Pozostałe tryby działają na danych w dowolnej kolejności.
Następna mniejsza albo większa, bez sortowania
tryb_dopasowania 1 znajduje najmniejszą wartość większą lub równą szukanej. To odpowiada na pytanie „najmniejsze pudełko, które się zmieści”, nawet gdy rozmiary są wypisane bez żadnej kolejności. Z PODAJ.POZYCJĘ lista musiałaby być posortowana od największej do najmniejszej.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Box | Holds (liters) | Item (liters) | 18 | |
| 2 | S | 5 | Position | 4 | |
| 3 | XL | 50 | Box | L | |
| 4 | M | 12 | |||
| 5 | L | 25 |
=X.DOPASUJ(E1;B2:B5;1)Rozmiary, które mieszczą 18 litrów, to 25 i 50, a mniejszy z nich to 25, czwarty element, pudełko L. W polskim Excelu formuła z E2 to =X.DOPASUJ(E1;B2:B5;1). Zmień E1 na 12, aby dostać dopasowanie dokładne (M), albo na 40, aby dostać XL. tryb_dopasowania -1 działa odwrotnie: największa wartość mniejsza lub równa szukanej, czyli reguła progów podatkowych i przedziałów prowizji. X.WYSZUKAJ ma te same dwa tryby i zwraca wartość bezpośrednio.
Szukanie od ostatniego elementu
tryb_wyszukiwania -1 zaczyna od dołu, więc X.DOPASUJ zwraca pozycję ostatniego dopasowania. Pozycje nadal liczy się od góry zakresu.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | 5 | |
| 3 | 2026-03-05 | Ana | 80 | Last date | 2026-03-20 | |
| 4 | 2026-03-09 | Ben | 45 | First position | 1 | |
| 5 | 2026-03-12 | Cara | 200 | |||
| 6 | 2026-03-20 | Ben | 60 | |||
| 7 | 2026-03-24 | Ana | 95 |
=X.DOPASUJ(F1;B2:B7;0;-1)Ben występuje na pozycjach 1, 3 i 5. Wyszukiwanie od góry zwraca 1, a od dołu 5, czyli jego zamówienie z 2026-03-20. Przed X.DOPASUJ ostatnia pozycja wymagała sztuczki tablicowej: =PODAJ.POZYCJĘ(2;1/(B2:B7=F1)).
Symbole wieloznaczne wymagają trybu dopasowania 2
Przy trybie dopasowania 2 * zastępuje dowolne znaki, a ? dokładnie jeden. W pozostałych trybach to zwykłe znaki, podczas gdy PODAJ.POZYCJĘ traktuje je jako symbole wieloznaczne zawsze przy typie 0.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Pattern | Position | |
| 2 | Green tea | *coffee | 2 | |
| 3 | Iced coffee | ?lack* | 4 | |
| 4 | Coffee beans | |||
| 5 | Black tea | |||
| 6 | Orange juice |
=X.DOPASUJ(C2;A2:A6;2)*coffee (wszystko, co kończy się na „coffee”) pasuje do Iced coffee na pozycji 2, a ?lack* pasuje do Black tea na pozycji 4. Coffee beans nie pasuje do *coffee, bo wzorzec nie ma * na końcu. Bez trybu dopasowania 2 ten sam wzorzec jest szukany jako dosłowny tekst, więc w Excelu zwraca #N/D!:
=XMATCH("*coffee", A2:A6) #N/A: no cell is literally "*coffee"
=XMATCH("*coffee", A2:A6, 2) 2
W polskim Excelu: =X.DOPASUJ("*coffee";A2:A6;2).
X.DOPASUJ a PODAJ.POZYCJĘ
| PODAJ.POZYCJĘ | X.DOPASUJ | |
|---|---|---|
| Domyślnie, gdy pominiesz tryb | Przybliżone (1), dane muszą być posortowane | Dokładne |
| Następna mniejsza wartość | 1, dane posortowane rosnąco | -1, dowolna kolejność |
| Następna większa wartość | -1, dane posortowane malejąco | 1, dowolna kolejność |
| Symbole wieloznaczne | Zawsze włączone przy 0 | Tylko przy trybie dopasowania 2 |
| Ostatnie dopasowanie | Nie | tryb_wyszukiwania -1 |
| Wersje | Wszystkie | Excel 2021 i Microsoft 365 |
Znaki są odwrócone: -1 w PODAJ.POZYCJĘ znajduje następną większą wartość, a -1 w X.DOPASUJ następną mniejszą. Gdy zamieniasz PODAJ.POZYCJĘ(E2;A2:A6;0) na X.DOPASUJ, usuń 0; gdy zamieniasz przybliżone PODAJ.POZYCJĘ, odwróć znak, a kolejność sortowania przestaje mieć znaczenie. Starszą funkcję omawia strona PODAJ.POZYCJĘ.
Ćwiczenie: pozycja ostatniego zamówienia
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | Ben | |
| 2 | 2026-03-02 | Ben | 120 | Last position | ||
| 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 |
Twoja kolej: W F2 zwróć pozycję ostatniego zamówienia klienta z F1.
Najczęściej zadawane pytania
Czym różni się PODAJ.POZYCJĘ od X.DOPASUJ?
X.DOPASUJ domyślnie szuka dopasowania dokładnego (PODAJ.POZYCJĘ domyślnie przybliżonego), znajduje następną mniejszą albo większą wartość bez sortowania danych, potrafi szukać od ostatniego elementu w górę i traktuje * i ? jako symbole wieloznaczne tylko wtedy, gdy poprosisz o to trybem dopasowania 2. Wymaga Excela 2021 albo Microsoft 365.
Jak znaleźć ostatnie wystąpienie funkcją X.DOPASUJ?
Ustaw tryb_wyszukiwania, czwarty argument, na -1: =X.DOPASUJ("Ben";B2:B7;0;-1) zwraca pozycję ostatniego Bena w B2:B7. Pozycje nadal liczy się od góry zakresu.
Co zwraca X.DOPASUJ, gdy nic nie pasuje?
#N/D!, tak jak PODAJ.POZYCJĘ. Obejmij ją funkcją JEŻELI.ND, aby pokazać coś innego: =JEŻELI.ND(X.DOPASUJ(E2;A2:A6);"Not in list").
Czy X.DOPASUJ może zastąpić PODAJ.POZYCJĘ w funkcji INDEKS?
Tak. =INDEKS(C2:C6;X.DOPASUJ(E2;A2:A6)) działa jak INDEKS z PODAJ.POZYCJĘ(E2;A2:A6;0), bez zera, o którym można zapomnieć. Użyj PODAJ.POZYCJĘ, gdy plik musi się otwierać w Excelu 2019 lub starszym.