Menu

X.DOPASUJ (XMATCH) w Excelu: pozycja, ostatnie dopasowanie

=X.DOPASUJ(E2;A2:A6) zwraca pozycję E2 w A2:A6, domyślnie z dopasowaniem dokładnym. Potrafi też znaleźć następną mniejszą albo większą wartość bez sortowania, szukać od dołu i używać symboli wieloznacznych.

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

=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.

Pozycja produktu
F2
ABCDEF
1ProductCategoryPriceLook forPosition
2AppleFruit$1.20Carrot3
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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])
ArgumentWartoś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.

Najmniejsze pudełko, które pomieści przedmiot
E2
ABCDE
1BoxHolds (liters)Item (liters)18
2S5Position4
3XL50BoxL
4M12
5L25
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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.

Ostatnie zamówienie klienta
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position5
32026-03-05Ana80Last date2026-03-20
42026-03-09Ben45First position1
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.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.

Szukanie według wzorca
D2
ABCD
1ProductPatternPosition
2Green tea*coffee2
3Iced coffee?lack*4
4Coffee beans
5Black tea
6Orange juice
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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 trybPrzybliżone (1), dane muszą być posortowaneDokładne
Następna mniejsza wartość1, dane posortowane rosnąco-1, dowolna kolejność
Następna większa wartość-1, dane posortowane malejąco1, dowolna kolejność
Symbole wieloznaczneZawsze włączone przy 0Tylko przy trybie dopasowania 2
Ostatnie dopasowanieNietryb_wyszukiwania -1
WersjeWszystkieExcel 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

Zamówienia
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position
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.

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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ