Obsah
Výukový program představuje novou funkci Excelu XMATCH a ukazuje, v čem je lepší než MATCH pro řešení několika běžných úloh.
V aplikaci Excel 365 byla přidána funkce XMATCH, která nahradila funkci MATCH. Než však začnete aktualizovat své stávající vzorce, bylo by vhodné pochopit všechny výhody nové funkce a její rozdíly oproti staré funkci.
Stručně řečeno, funkce XMATCH je stejná jako MATCH, ale je flexibilnější a robustnější. Dokáže vyhledávat ve vertikálních i horizontálních polích, hledat od prvního k poslednímu nebo od posledního k prvnímu, hledat přesné, přibližné a částečné shody a používat rychlejší binární vyhledávací algoritmus.
Funkce XMATCH aplikace Excel
Funkce XMATCH v aplikaci Excel vrací relativní pozici hodnoty v poli nebo rozsahu buněk.
Má následující syntaxi:
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Kde:
Lookup_value (povinné) - hledaná hodnota.
Lookup_array (povinné) - pole nebo rozsah buněk, ve kterých se má hledat.
Match_mode (nepovinné) - určuje, který typ shody se má použít:
- 0 nebo vynecháno (výchozí) - přesná shoda
- -1 - přesná shoda nebo nejbližší nejmenší hodnota
- 1 - přesná shoda nebo další největší hodnota
- 2 - zástupný znak (*, ?)
Search_mode (nepovinné) - určuje směr a algoritmus vyhledávání:
- 1 nebo vynecháno (výchozí) - vyhledávání od prvního po poslední.
- -1 - vyhledávání v opačném pořadí od posledního k prvnímu.
- 2 - binární vyhledávání vzestupně. Požadavky lookup_array seřadit vzestupně.
- -2 - binární vyhledávání sestupně. Požadavky lookup_array seřadit sestupně.
Binární vyhledávání je rychlejší algoritmus, který efektivně pracuje s uspořádanými poli. Další informace naleznete v části Režim vyhledávání.
Která verze aplikace Excel obsahuje XMATCH?
Funkce XMATCH je k dispozici pouze v aplikaci Excel pro Microsoft 365 a Excel 2021. V aplikacích Excel 2019, Excel 2016 a starších verzích není tato funkce podporována.
Základní vzorec XMATCH v aplikaci Excel
Abychom získali obecnou představu o tom, co funkce umí, sestavíme vzorec XMATCH v jeho nejjednodušší podobě, přičemž definujeme pouze první dva povinné argumenty a nepovinné ponecháme ve výchozím nastavení.
Předpokládejme, že máte seznam oceánů seřazených podle velikosti (C2:C6) a chcete zjistit pořadí konkrétního oceánu. Chcete-li to provést, jednoduše použijte název oceánu, např. Indický , jako hodnotu vyhledávání a celý seznam jmen jako pole vyhledávání:
=XMATCH("Indický", C2:C6)
Aby byl vzorec flexibilnější, zadejte oceán zájmu do některé buňky, například F1:
=XMATCH(F1, C2:C6)
Výsledkem je vzorec XMATCH, který lze vyhledat v souboru vertikální pole . Výstupem je relativní pozice hledané hodnoty v poli, která v našem případě odpovídá hodnosti oceánu:
Podobný vzorec dokonale funguje i pro horizontální pole Vše, co musíte udělat, je nastavit lookup_array odkaz:
=XMATCH(B5, B1:F1)
Funkce XMATCH aplikace Excel - co je třeba si zapamatovat
Chcete-li efektivně používat XMATCH v pracovních listech a zabránit neočekávaným výsledkům, nezapomeňte na tyto 3 jednoduché skutečnosti:
- Pokud se v poli vyhledávání vyskytují dva nebo více výskytů hodnoty vyhledávání, je pozice hodnoty první zápas je vrácena, pokud je search_mode je nastaven na 1 nebo vynechán. search_mode nastavena na -1, funkce hledá v opačném pořadí a vrací pozici poslední zápas jak ukazuje tento příklad.
- Pokud je hodnota vyhledávání není nalezen , dojde k chybě #N/A.
- Funkce XMATCH je rozlišování velkých a malých písmen z podstaty věci a nedokáže rozlišit malá a velká písmena. Chcete-li rozlišit malá a velká písmena, použijte tento vzorec XMATCH, který rozlišuje malá a velká písmena.
Jak používat XMATCH v aplikaci Excel - příklady vzorců
Následující příklady vám pomohou lépe pochopit funkci XMATCH a její praktické využití.
Přesná a přibližná shoda
Chování funkce XMATCH při porovnávání je řízeno volitelným příkazem match_mode argument:
- 0 nebo vynecháno (výchozí) - vzorec hledá pouze přesnou shodu. Pokud není přesná shoda nalezena, je vrácena chyba #N/A.
- -1 - vzorec nejprve vyhledá přesnou shodu a poté další menší položku.
- 1 - vzorec nejprve vyhledá přesnou shodu a poté další větší položku.
A nyní se podívejme, jak různé způsoby porovnávání ovlivňují výsledek vzorce. Předpokládejme, že chcete zjistit, jak si stojí určitá oblast, řekněme 80 000 000 km2, mezi všemi oceány.
Přesná shoda
Pokud použijete 0 pro match_mode , zobrazí se chyba #N/A, protože vzorec nemůže najít hodnotu, která by se přesně rovnala hodnotě vyhledávání:
=XMATCH(80000000, C2:C6, 0)
Další nejmenší položka
Pokud použijete -1 pro match_mode , vzorec vrátí hodnotu 3, protože nejbližší shoda menší než hodnota vyhledávání je 70 560 000 a je to třetí položka v poli vyhledávání:
=XMATCH(80000000, C2:C6, -1)
Další největší položka
Pokud použijete 1 pro match_mode , vzorec vypíše hodnotu 2, protože nejbližší shoda větší než hodnota vyhledávání je 85 133 000, což je 2. položka v poli vyhledávání:
=XMATCH(80000000, C2:C6, -1)
Na obrázku níže jsou zobrazeny všechny výsledky:
Jak porovnat částečný text v aplikaci Excel pomocí zástupných znaků
Funkce XMATCH má speciální režim shody pro zástupné znaky. match_mode argument nastaven na hodnotu 2.
V režimu shody se zástupnými znaky přijímá vzorec XMATCH následující zástupné znaky:
- Otazník (?) pro přiřazení libovolného jednotlivého znaku.
- Hvězdička (*) pro přiřazení libovolné posloupnosti znaků.
Mějte na paměti, že zástupné znaky fungují pouze s textem, nikoli s čísly.
Například pro zjištění pozice první položky, která začíná slovem "south", se použije vzorec:
=XMATCH("south*", B2:B6, 2)
Nebo můžete zadat zástupný výraz do některé buňky, například F1, a zadat odkaz na buňku pro výraz. lookup_value argument:
=XMATCH(F1, B2:B6, 2)
U většiny funkcí Excelu byste použili tildu (~), abyste hvězdičku (~*) nebo otazník (~?) považovali za doslovné znaky, nikoli za zástupné znaky. U funkce XMATCH tilda není potřeba. Pokud nezadáte režim shody zástupných znaků, bude XMATCH předpokládat, že ? a * jsou regulární znaky.
Například níže uvedený vzorec vyhledá v rozsahu A2:A7 přesně znak hvězdičky:
=XMATCH("*", A2:A7)
Zpětné vyhledávání XMATCH pro nalezení poslední shody
V případě, že se v poli vyhledávání vyskytuje více hodnot, může být někdy potřeba zjistit pozici hodnoty. poslední výskyt .
Směr hledání se řídí 4. argumentem příkazu XMATCH s názvem search_mode . Vyhledávání v opačném pořadí, tj. zdola nahoru ve vertikálním poli a zprava doleva v horizontálním poli, search_mode by měla být nastavena na -1.
V tomto příkladu budeme vracet pozici posledního záznamu pro určitou hodnotu vyhledávání (viz obrázek níže). Argumenty nastavte takto:
- Lookup_value - cílového prodejce v H1
- Lookup_array - jména prodejců v C2:C10
- Match_mode je 0 nebo je vynechána (přesná shoda)
- Search_mode je -1 (od posledního k prvnímu)
Když tyto čtyři argumenty spojíme dohromady, dostaneme tento vzorec:
=XMATCH(H1, C2:C10, 0, -1)
Který vrací číslo posledního prodeje, který Laura uskutečnila:
Jak porovnat dva sloupce v aplikaci Excel pro shodu
Chcete-li porovnat dva seznamy na shodu, můžete použít funkci XMATCH spolu s IF a ISNA:
IF( ISNA( XMATCH( target_list , search_list , 0)), "No match", "Match")Například pro porovnání seznamu 2 v B2:B10 se seznamem 1 v A2:A10 má vzorec následující podobu:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Shoda v seznamu 1")
V tomto příkladu identifikujeme pouze shody, a proto se value_if_true argumentem funkce IF je prázdný řetězec ("").
Zadejte výše uvedený vzorec do nejvyšší buňky (v našem případě C2), stiskněte klávesu Enter , a vzorec se automaticky "přelije" do ostatních buněk (říká se mu přelévací rozsah):
Jak tento vzorec funguje
Jádrem vzorce je funkce XMATCH, která hledá hodnotu ze Seznamu 2 v Seznamu 1. Pokud je hodnota nalezena, je vrácena její relativní pozice, v opačném případě se zobrazí chyba #N/A. V našem případě je výsledkem funkce XMATCH následující pole:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}
Toto pole je "předáno" funkci ISNA, která jej kontroluje na přítomnost chyb #N/A. Pro každou chybu #N/A vrátí ISNA hodnotu TRUE, pro jakoukoli jinou hodnotu hodnotu FALSE. Výsledkem je následující pole logických hodnot, kde TRUE představuje neshody a FALSE shody:
{PRAVDA;PRAVDA;NEPRAVDA;PRAVDA;NEPRAVDA;PRAVDA;PRAVDA;PRAVDA;NEPRAVDA;PRAVDA}
Výše uvedené pole přechází do logického testu funkce IF. Podle toho, jak jste nastavili poslední dva argumenty, vzorec vypíše odpovídající text. V našem případě je to prázdný řetězec ("") pro neshody ( value_if_true ) a "Shoda v seznamu 1" pro shody ( value_if_false ).
Poznámka: Tento vzorec funguje pouze v aplikacích Excel 365 a Excel 2021, které podporují dynamická pole. Pokud používáte Excel 2019, Excel 2016 nebo starší verzi, podívejte se na další řešení: Jak porovnat dva sloupce v aplikaci Excel.
INDEX XMATCH v aplikaci Excel
Funkci XMATCH lze použít v kombinaci s funkcí INDEX k získání hodnoty z jiného sloupce spojeného s hodnotou vyhledávání, stejně jako vzorec INDEX MATCH. Obecný přístup je následující:
INDEX ( vrátit _ pole , XMATCH ( lookup_value , lookup_array )Logika je velmi přímočará a snadno pochopitelná:
Funkce XMATCH vypočítá relativní pozici hodnoty vyhledávání v poli vyhledávání a předá ji funkci XMATCH. row_num Na základě čísla řádku vrátí funkce INDEX hodnotu z libovolného zadaného sloupce.
Chcete-li například zjistit plochu oceánu v E1, můžete použít tento vzorec:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH k provedení dvourozměrného vyhledávání
Chcete-li vyhledávat ve sloupcích a řádcích současně, použijte INDEX spolu se dvěma funkcemi XMATCH. První funkce XMATCH získá číslo řádku a druhá získá číslo sloupce:
INDEX ( data , XMATCH ( lookup_value , vertikální _ lookup_array ), XMATCH ( vyhledávací hodnota , horizontální _ lookup_array ))Vzorec je podobný vzorci INDEX MATCH MATCH s tím rozdílem, že můžete vynechat koncovku match_mode protože ve výchozím nastavení je nastavena přesná shoda.
Například pro získání čísla prodeje pro danou položku (G1) v určitém měsíci (G2) je vzorec následující:
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Kde B2:D8 jsou datové buňky bez záhlaví řádků a sloupců, A2:A8 je seznam položek a B1:D1 jsou názvy měsíců.
Vzorec XMATCH rozlišující malá a velká písmena
Jak již bylo zmíněno, funkce XMATCH aplikace Excel nerozlišuje velká a malá písmena. Chcete-li ji donutit rozlišovat velká a malá písmena textu, použijte funkci XMATCH v kombinaci s funkcí EXACT:
MATCH(TRUE, EXACT( lookup_array , lookup_value ))Vyhledávání v obrácené pořadí od posledního k prvnímu:
MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)Následující příklad ukazuje tento obecný vzorec v akci. Předpokládejme, že máte seznam identifikátorů produktů s rozlišováním velkých a malých písmen v B2:B11. Hledáte relativní pozici položky v E1. Vzorec s rozlišováním velkých a malých písmen v E2 je jednoduchý jako tento:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Jak tento vzorec funguje:
Funkce EXACT porovnává hodnotu vyhledávání s každou položkou v poli vyhledávání. Pokud se porovnávané hodnoty přesně shodují, včetně velikosti znaků, funkce vrátí TRUE, v opačném případě FALSE. Toto pole logických hodnot (kde TRUE představuje přesnou shodu) přechází do pole EXACT. lookup_array A protože hodnota vyhledávání je TRUE, funkce XMATCH vrátí pozici první nalezené přesné shody nebo poslední přesné shody, podle toho, jak jste nakonfigurovali funkci XMATCH. search_mode argument.
XMATCH vs. MATCH v aplikaci Excel
XMATCH byl navržen jako výkonnější a všestrannější náhrada za MATCH, a proto mají tyto dvě funkce mnoho společného.
Odlišné výchozí chování
Výchozí hodnota funkce MATCH je přesná shoda nebo nejbližší nejmenší položka ( match_type nastaveno na 1 nebo vynecháno).
Funkce XMATCH je ve výchozím nastavení nastavena na přesnou shodu ( match_mode nastavena na 0 nebo vynechána).
Odlišné chování pro přibližnou shodu
Když se match_mode / match_type je nastaven na hodnotu 1:
- MATCH hledá přesnou shodu nebo nejbližší nejmenší shodu. Vyžaduje, aby vyhledávací pole bylo seřazeno vzestupně.
- XMATCH vyhledává přesnou shodu nebo další největší shodu. Nevyžaduje žádné třídění.
Když se match_mode / match_type je nastaven na -1:
- MATCH hledá přesnou shodu nebo nejbližší největší shodu. Vyžaduje seřazení vyhledávacího pole sestupně.
- XMATCH vyhledává přesnou shodu nebo nejbližší nejmenší shodu. Nevyžaduje žádné třídění.
Vyhledávání pomocí zástupných znaků
Chcete-li pomocí funkce XMATCH najít částečnou shodu, musíte nastavit příznak match_mode argument na 2.
Funkce MATCH nemá speciální volbu režimu shody se zástupnými znaky. Ve většině případů ji nakonfigurujete pro přesnou shodu ( match_type nastavena na 0), což funguje i pro vyhledávání se zástupnými znaky.
Režim vyhledávání
Stejně jako nová funkce XLOOKUP má i XMATCH speciální funkci search_mode argument, který umožňuje definovat směr hledání :
- 1 nebo vynecháno (výchozí) - vyhledávání od prvního do posledního.
- -1 - zpětné vyhledávání od posledního k prvnímu.
A vyberte si algoritmus binárního vyhledávání , která je velmi rychlá a účinná na tříděná data .
- 2 - binární vyhledávání v datech seřazených vzestupně.
- -2 - binární vyhledávání v sestupně seřazených datech.
Binární vyhledávání , také tzv. vyhledávání v polovičním intervalu nebo logaritmické vyhledávání , je speciální algoritmus, který zjišťuje pozici hledané hodnoty v poli porovnáním s prostředním prvkem pole. Binární vyhledávání je mnohem rychlejší než běžné vyhledávání, ale funguje správně pouze na setříděných seznamech. Na nesetříděných datech může vracet chybné výsledky, které mohou na první pohled vypadat docela normálně.
Syntaxe příkazu MATCH argument způsobu vyhledávání vůbec neuvádí.
XMATCH nativně zpracovává pole
Na rozdíl od svého předchůdce byla funkce XMATCH navržena pro dynamický Excel a nativně zpracovává pole, aniž byste museli stisknout kombinaci kláves Ctrl + Shift + Enter . Díky tomu je sestavování a úprava vzorců mnohem snazší, zejména při použití několika různých funkcí dohromady. Stačí porovnat následující řešení:
- Vzorec rozlišující malá a velká písmena: XMATCH
- Porovnání dvou sloupců nebo seznamů na shodu: XMATCH
Dostupnost funkcí XMATCH a MATCH
Funkce XMATCH je nová a je k dispozici pouze v aplikaci Excel pro Microsoft 365 a Excel 2021.
Funkce MATCH je k dispozici v libovolné verzi aplikace Excel 365 až Excel 2007.
To je návod, jak používat funkci XMATCH v aplikaci Excel. Děkuji vám za přečtení a doufám, že se uvidíme na našem blogu příští týden!
Cvičebnice ke stažení
Příklady vzorců Excel XMATCH (.xlsx soubor)