Obsah
Tento výukový kurz vysvětluje, jak používat funkci MATCH v aplikaci Excel, a to na příkladech vzorců. Ukazuje také, jak vylepšit vyhledávací vzorce vytvořením dynamického vzorce pomocí VLOOKUP a MATCH.
V aplikaci Microsoft Excel existuje mnoho různých vyhledávacích/referenčních funkcí, které vám pomohou najít určitou hodnotu v rozsahu buněk, a MATCH je jednou z nich. V podstatě identifikuje relativní polohu položky v rozsahu buněk. Funkce MATCH však dokáže mnohem více než jen svou čistou podstatu.
Funkce Excel MATCH - syntaxe a použití
Funkce MATCH v aplikaci Excel vyhledá zadanou hodnotu v rozsahu buněk a vrátí relativní pozici této hodnoty.
Syntaxe funkce MATCH je následující:
MATCH(lookup_value, lookup_array, [match_type])Lookup_value (povinné) - hodnota, kterou chcete najít. Může to být číselná, textová nebo logická hodnota a také odkaz na buňku.
Lookup_array (povinné) - rozsah buněk, ve kterých se má vyhledávat.
Match_type (nepovinné) - určuje typ shody. Může nabývat jedné z těchto hodnot: 1, 0, -1. Argument match_type nastavený na hodnotu 0 vrací pouze přesnou shodu, zatímco ostatní dva typy umožňují přibližnou shodu.
- 1 nebo vynecháno (výchozí) - vyhledá největší hodnota v poli vyhledávání, které je menší nebo rovno hodnotě vyhledávání. Vyžaduje seřazení pole vyhledávání vzestupně, od nejmenšího po největší nebo od A po Z.
- 0 - najděte první hodnotu v poli, která je přesně stejný k hodnotě vyhledávání. Třídění se nevyžaduje.
- -1 - najděte nejmenší hodnota v poli, které je větší nebo rovno hodnotě vyhledávání. Pole vyhledávání by mělo být seřazeno sestupně, od největšího po nejmenší nebo od Z po A.
Abychom lépe pochopili funkci MATCH, vytvoříme jednoduchý vzorec založený na těchto datech: jména studentů ve sloupci A a jejich výsledky zkoušek ve sloupci B, seřazené od největšího po nejmenší. Abychom zjistili, kde se konkrétní student (např, Laura ) používá mimo jiné tento jednoduchý vzorec:
=MATCH("Laura", A2:A8, 0)
Volitelně můžete hodnotu vyhledávání vložit do některé buňky (v tomto příkladu do buňky E1) a odkazovat na ni ve vzorci Excel Shoda:
=MATCH(E1, A2:A8, 0)
Jak vidíte na obrázku výše, jména studentů jsou zadána v libovolném pořadí, a proto jsme nastavili hodnotu match_type argumentu na 0 (přesná shoda), protože pouze tento typ shody nevyžaduje třídění hodnot v poli vyhledávání. Technicky vzato vzorec Shoda vrací relativní pozici Laury v rozsahu. Protože jsou však skóre seřazena od největšího po nejmenší, říká nám také, že Laura má páté nejlepší skóre ze všech studentů.
Tip: V aplikacích Excel 365 a Excel 2021 můžete použít funkci XMATCH, která je modernějším a výkonnějším nástupcem funkce MATCH.
4 věci, které byste měli vědět o funkci MATCH
Jak jste se právě přesvědčili, použití funkce MATCH v aplikaci Excel je snadné. Stejně jako v případě téměř každé jiné funkce však existuje několik specifik, která byste měli znát:
- Funkce MATCH vrací relativní poloha hodnoty vyhledávání v poli, nikoliv samotné hodnoty.
- MATCH je rozlišování velkých a malých písmen , což znamená, že při práci s textovými hodnotami nerozlišuje mezi malými a velkými písmeny.
- Pokud pole vyhledávání obsahuje několik výskytů hodnoty vyhledávání, je vrácena pozice první hodnoty.
- Pokud není hodnota vyhledávání nalezena v poli vyhledávání, je vrácena chyba #N/A.
Jak používat MATCH v aplikaci Excel - příklady vzorců
Nyní, když už znáte základní použití funkce Excel MATCH, probereme několik dalších příkladů vzorců, které jdou nad rámec základů.
Částečná shoda se zástupnými znaky
Stejně jako mnoho jiných funkcí rozumí MATCH následujícím zástupným znakům:
- Otazník (?) - nahrazuje jakýkoli jednotlivý znak
- Hvězdička (*) - nahrazuje libovolnou sekvenci znaků.
Poznámka: Zástupné znaky lze použít pouze ve vzorcích Match s match_type nastavena na 0.
Vzorec Shoda se zástupnými znaky se hodí v situacích, kdy nechcete porovnávat celý textový řetězec, ale pouze některé znaky nebo jeho část. Pro ilustraci uveďme následující příklad.
Předpokládejme, že máte k dispozici seznam regionálních prodejců a jejich prodejní částky za uplynulý měsíc. Chcete zjistit relativní pozici určitého prodejce v seznamu (seřazeného podle prodejních částek sestupně), ale nemůžete si přesně vzpomenout na jeho jméno, i když si pamatujete několik prvních znaků.
Za předpokladu, že názvy prodejců jsou v rozsahu A2:A11 a hledáte název, který začíná slovem "car", je vzorec následující:
=MATCH("car*", A2:A11,0)
Aby byl náš vzorec Match univerzálnější, můžete zadat hodnotu vyhledávání do některé buňky (v tomto příkladu E1) a spojit tuto buňku se zástupným znakem takto:
=MATCH(E1& "*", A2:A11,0)
Jak ukazuje obrázek níže, vzorec vrátí hodnotu 2, což je pozice "Carter":
Chcete-li nahradit pouze jeden znak v hodnotě vyhledávání, použijte operátor "?", například takto:
=MATCH("ba?er", A2:A11,0)
Výše uvedený vzorec bude odpovídat názvu " Baker " a znovu spustit jeho relativní polohu, která je 5.
Vzorec MATCH rozlišující malá a velká písmena
Jak bylo uvedeno na začátku tohoto návodu, funkce MATCH nerozlišuje velká a malá písmena. Chcete-li vytvořit vzorec Match s rozlišením malých a velkých písmen, použijte funkci MATCH v kombinaci s funkcí EXACT, která porovnává buňky přesně, včetně velikosti znaků.
Zde je obecný vzorec pro porovnávání dat s rozlišováním malých a velkých písmen:
MATCH(TRUE, EXACT( vyhledávací pole , vyhledávací hodnota ), 0)Vzorec pracuje s následující logikou:
- Funkce EXACT porovná hodnotu vyhledávání s každým prvkem pole vyhledávání. Pokud se porovnávané buňky přesně shodují, funkce vrátí hodnotu TRUE, v opačném případě FALSE.
- A pak funkce MATCH porovnává TRUE (což je její lookup_value ) s každou hodnotou v poli vráceném příkazem EXACT a vrátí pozici první shody.
Mějte na paměti, že se jedná o vzorec pole, který pro správné dokončení vyžaduje stisknutí kláves Ctrl + Shift + Enter.
Za předpokladu, že hodnota vyhledávání je v buňce E1 a pole vyhledávání je A2:A9, vzorec je následující:
=MATCH(TRUE, EXACT(A2:A9,E1),0)
Následující snímek obrazovky ukazuje vzorec Shoda v aplikaci Excel, který rozlišuje velká a malá písmena:
Porovnání 2 sloupců na shody a rozdíly (ISNA MATCH)
Kontrola dvou seznamů na shodu a rozdíl je jednou z nejčastějších úloh v aplikaci Excel a lze ji provádět různými způsoby. Jedním z nich je vzorec ISNA/MATCH:
IF(ISNA(MATCH( 1. hodnota v Seznamu1 , Seznam2 , 0)), "Není v seznamu 1", "")Pro jakoukoli hodnotu seznamu 2, která se nenachází v seznamu 1, vzorec vrátí " Není v seznamu 1 ". A tady je návod:
- Funkce MATCH hledá hodnotu ze Seznamu 1 v Seznamu 2. Pokud je hodnota nalezena, vrátí její relativní pozici, v opačném případě chybu #N/A.
- Funkce ISNA v Excelu dělá pouze jednu věc - kontroluje chyby #N/A (což znamená "není k dispozici"). Pokud je daná hodnota chybou #N/A, funkce vrátí TRUE, v opačném případě FALSE. V našem případě TRUE znamená, že hodnota ze Seznamu 1 není nalezena v Seznamu 2 (tj. MATCH vrací chybu #N/A).
- Protože pro uživatele může být velmi matoucí, když se u hodnot, které se v seznamu 1 nevyskytují, zobrazí TRUE, obtočíte funkci IF kolem ISNA a zobrazíte " Není v seznamu 1 " nebo jakýkoli jiný text.
Například pro porovnání hodnot ve sloupci B s hodnotami ve sloupci A má vzorec následující tvar (kde B2 je nejvyšší buňka):
=IF(ISNA(MATCH(B2,A:A,0)), "Není v seznamu 1", "")
Jak si jistě pamatujete, funkce MATCH v Excelu sama o sobě nerozlišuje velká a malá písmena. Chcete-li ji přimět, aby rozlišovala malá a velká písmena znaků, vložte funkci EXACT do příkazu lookup_array a nezapomeňte stisknout klávesy Ctrl + Shift + Enter, abyste tuto akci dokončili. vzorec pole :
=IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Není v seznamu 1", "")
Následující snímek obrazovky ukazuje oba vzorce v akci:
Další způsoby porovnání dvou seznamů v aplikaci Excel naleznete v následujícím návodu: Jak porovnat 2 sloupce v aplikaci Excel.
Excel VLOOKUP a MATCH
Tento příklad předpokládá, že již máte základní znalosti funkce Excel VLOOKUP. A pokud ano, je pravděpodobné, že jste narazili na její četná omezení (jejichž podrobný přehled najdete v článku Proč nefunguje Excel VLOOKUP) a hledáte robustnější alternativu.
Jednou z nejnepříjemnějších nevýhod VLOOKUP je, že po vložení nebo odstranění sloupce v rámci vyhledávací tabulky přestane fungovat. K tomu dochází proto, že VLOOKUP vytáhne odpovídající hodnotu na základě zadaného čísla návratového sloupce (číslo indexu). indexové číslo je ve vzorci "pevně zakódována", Excel ji nedokáže upravit, pokud je do tabulky přidán nový sloupec (sloupce) nebo je z ní odstraněn.
Funkce Excel MATCH pracuje s relativní poloha vyhledávací hodnoty, což ji předurčuje k tomu, aby se dokonale hodila pro col_index_num Jinými slovy, namísto zadání návratového sloupce jako statického čísla použijete MATCH pro získání aktuální pozice tohoto sloupce.
Pro snazší pochopení použijeme opět tabulku s výsledky zkoušek studentů (podobnou té, kterou jsme použili na začátku tohoto tutoriálu), ale tentokrát budeme získávat skutečné skóre, nikoli jeho relativní pozici.
Za předpokladu, že hodnota vyhledávání je v buňce F1, pole tabulky je $A$1:$C$2 (pokud plánujete vzorec kopírovat do dalších buněk, je vhodné jej uzamknout pomocí absolutních odkazů na buňky), vzorec vypadá následovně:
=VLOOKUP(F1, $A$1:$C$8, 3, FALSE)
Třetí argument ( col_index_num ) je nastavena na hodnotu 3, protože Matematické skóre který chceme vytáhnout, je 3. sloupec tabulky. Jak vidíte na obrázku níže, tento běžný vzorec Vlookup funguje dobře:
Ale pouze do doby, než vložíte nebo odstraníte sloupec (sloupce):
Proč chyba #REF!? Protože col_index_num nastavená na hodnotu 3 říká Excelu, aby získal hodnotu ze třetího sloupce, zatímco nyní jsou v poli tabulky pouze 2 sloupce.
Abyste tomu zabránili, můžete vzorec Vlookup zdynamizovat pomocí následující funkce Shoda:
MATCH(E2,A1:C1,0)
Kde:
- E2 je vyhledávací hodnota, která je přesně stejný na název návratového sloupce, tj. sloupce, ze kterého chcete vytáhnout hodnotu ( Matematické skóre v tomto příkladu).
- A1:C1 je vyhledávací pole obsahující záhlaví tabulky.
A nyní zahrňte tuto funkci Match do col_index_num argumentu vzorce Vlookup, například takto:
=VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)
A ujistěte se, že funguje bezvadně bez ohledu na to, kolik sloupců přidáte nebo odstraníte:
Na výše uvedeném snímku obrazovky jsem uzamkl všechny odkazy na buňky, aby vzorec správně fungoval i v případě, že jej uživatelé přesunou na jiné místo v pracovním listu. Jak vidíte na níže uvedeném snímku obrazovky, vzorec funguje bez problémů i po odstranění sloupce; Excel je navíc dostatečně inteligentní, aby v tomto případě správně upravil absolutní odkazy:
Excel HLOOKUP a MATCH
Podobným způsobem můžete použít funkci Excel MATCH k vylepšení vzorců HLOOKUP. Obecný princip je v podstatě stejný jako v případě Vlookup: pomocí funkce Match zjistíte relativní pozici návratového sloupce a toto číslo dodáte funkci HLOOKUP. row_index_num argumentu vzorce Hlookup.
Předpokládejme, že vyhledávací hodnota je v buňce B5, pole tabulky je B1:H3, název návratového řádku (vyhledávací hodnota pro MATCH) je v buňce A6 a záhlaví řádků jsou A1:A3, celý vzorec je následující:
=HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)
Jak jste právě viděli, kombinace Hlookup/Vlookup & Match je jistě vylepšením oproti běžným vzorcům Hlookup a Vlookup. Funkce MATCH však neodstraňuje všechna jejich omezení. Zejména vzorec Vlookup Match stále nemůže hledat vlevo a Hlookup Match nedokáže hledat v žádném jiném řádku než v tom nejvyšším.
Chcete-li překonat výše uvedená (a několik dalších) omezení, zvažte použití kombinace INDEX MATCH, která poskytuje skutečně výkonný a všestranný způsob vyhledávání v Excelu, v mnoha ohledech lepší než VLOOKUP a HLOOKUP. Podrobný návod a příklady vzorců najdete v článku INDEX & amp; MATCH v Excelu - lepší alternativa k VLOOKUP.
Takto se v Excelu používají vzorce MATCH. Doufám, že příklady probírané v tomto tutoriálu budou pro vaši práci užitečné. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!
Cvičebnice ke stažení
Příklady vzorců Excel MATCH (.xlsx soubor)