Obsah
Tento návod ukazuje, jak použít vzorec VLOOKUP v aplikaci Excel k porovnání dvou sloupců a získání společných hodnot (shody) nebo zjištění chybějících údajů (rozdíly).
Pokud máte data ve dvou různých seznamech, můžete je často potřebovat porovnat, abyste zjistili, jaké informace v jednom ze seznamů chybí nebo jaké údaje jsou přítomny v obou seznamech. Porovnání lze provést mnoha různými způsoby - který způsob použijete, závisí na tom, co přesně od něj chcete.
Jak porovnat dva sloupce v aplikaci Excel pomocí funkce VLOOKUP
Pokud máte dva sloupce dat a chcete zjistit, které datové body z jednoho seznamu se vyskytují v druhém seznamu, můžete použít funkci VLOOKUP a porovnat seznamy na společné hodnoty.
Pro sestavení vzorce VLOOKUP v jeho základní podobě je třeba provést následující kroky:
- Pro lookup_value (1. argument), použijte nejvyšší buňku ze seznamu 1.
- Pro table_array (2. argument), zadejte celý seznam 2.
- Pro col_index_num (3. argument), použijte 1, protože v poli je pouze jeden sloupec.
- Pro range_lookup (4. argument), nastavte FALSE - přesná shoda.
Předpokládejme, že máte jména účastníků ve sloupci A (seznam 1) a jména těch, kteří prošli kvalifikačními koly, ve sloupci B (seznam 2). Chcete porovnat tyto dva seznamy a určit, kteří účastníci ze skupiny A se dostali do hlavní soutěže. K tomu použijte následující vzorec.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Vzorec přejde do buňky E2 a pak jej přetáhnete dolů přes tolik buněk, kolik je položek v seznamu 1.
Všimněte si, že table_array je uzamčen pomocí absolutních odkazů ($C$2:$C$9), takže zůstane konstantní, když vzorec zkopírujete do následujících buněk.
Jak vidíte, jména kvalifikovaných sportovců se zobrazí ve sloupci E. U zbývajících účastníků se zobrazí chyba #N/A, která znamená, že jejich jména nejsou v seznamu 2 k dispozici.
Převlek #N/A chyby
Výše popsaný vzorec VLOOKUP dokonale splňuje svůj hlavní cíl - vrací společné hodnoty a identifikuje chybějící datové body. Přináší však řadu chyb #N/A, které mohou nezkušené uživatele zmást a vyvolat v nich dojem, že se vzorcem není něco v pořádku.
Nahrazení chyb pomocí prázdné buňky , použijte VLOOKUP v kombinaci s funkcí IFNA nebo IFERROR tímto způsobem:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Náš vylepšený vzorec vrací místo #N/A prázdný řetězec (""). vlastní text například "Není v seznamu 2", "Není přítomen" nebo "Není k dispozici". Například:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "Není v seznamu 2")
To je základní vzorec VLOOKUP pro porovnání dvou sloupců v aplikaci Excel. V závislosti na konkrétní úloze jej lze upravit podle dalších příkladů.
Porovnání dvou sloupců v různých listech aplikace Excel pomocí funkce VLOOKUP
V reálném životě se sloupce, které potřebujete porovnat, nenacházejí vždy na stejném listu. V malém souboru dat můžete zkusit zjistit rozdíly ručně tak, že si prohlédnete dva listy vedle sebe.
Chcete-li hledat v jiném listu nebo sešitě se vzorci, musíte použít externí odkaz. Nejlepším postupem je začít psát vzorec na hlavním listu, pak se přepnout na jiný list a vybrat seznam pomocí myši - do vzorce se automaticky přidá příslušný odkaz na rozsah.
Za předpokladu, že seznam 1 je ve sloupci A na stránce List1 a seznam 2 je ve sloupci A na List2 , můžete porovnat dva sloupce a najít shody pomocí tohoto vzorce:
=IFNA(VLOOKUP(A2, Sheet2!$A$2:$A$9, 1, FALSE), "")
Další informace naleznete na adrese:
- VLOOKUP z jiného listu
- VLOOKUP z jiného sešitu
Porovnání dvou sloupců a vrácení společných hodnot (shod)
V předchozích příkladech jsme probrali vzorec VLOOKUP v jeho nejjednodušší podobě:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Výsledkem tohoto vzorce je seznam hodnot, které existují v obou sloupcích, a prázdné buňky na místě hodnot, které nejsou k dispozici ve druhém sloupci.
Chcete-li získat seznam běžných hodnot bez mezer, stačí do výsledného sloupce přidat automatický filtr a odfiltrovat prázdná místa.
V aplikacích Excel pro Microsoft 365 a Excel 2021, které podporují dynamická pole, můžete k dynamickému vyřazení prázdných polí využít funkci FILTR. Jako kritérium pro FILTR přitom použijte vzorec IFNA VLOOKUP:
=FILTR(A2:A14, IFNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE), "")"))
Věnujte prosím pozornost tomu, že v tomto případě dodáváme celý seznam 1 (A2:A14) do. lookup_value Funkce porovná každou z hodnot vyhledávání se seznamem 2 (C2:C9) a vrátí pole shod a chyb #N/A, které představují chybějící hodnoty. Funkce IFNA nahradí chyby prázdnými řetězci a výsledky předá funkci FILTER, která odfiltruje prázdné znaky ("") a jako konečný výsledek vypíše pole shod.
Případně můžete použít funkci ISNA pro kontrolu výsledku VLOOKUP a vyfiltrovat položky s vyhodnocením FALSE, tj. jiné hodnoty než chyby #N/A:
=FILTR(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))=FALSE)
Stejného výsledku lze dosáhnout pomocí funkce XLOOKUP, která vzorec ještě více zjednodušuje. Díky schopnosti funkce XLOOKUP interně zpracovávat chyby #N/A (volitelná možnost if_not_found argument), obejdeme se bez obalu IFNA nebo ISNA:
=FILTR(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")")
Porovnání dvou sloupců a zjištění chybějících hodnot (rozdílů)
Chcete-li v aplikaci Excel porovnat 2 sloupce a zjistit rozdíly, můžete postupovat tímto způsobem:
- Napište základní vzorec pro hledání první hodnoty ze seznamu 1 (A2) v seznamu 2 ($C$2:$C$9):
VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
- Výše uvedený vzorec vložte do funkce ISNA, abyste zkontrolovali výstup VLOOKUP na chyby #N/A. V případě chyby dává ISNA hodnotu TRUE, jinak FALSE:
ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE))
- Pro logický test funkce IF použijte vzorec ISNA VLOOKUP. Pokud je test vyhodnocen jako TRUE (chyba #N/A), vraťte ve stejném řádku hodnotu ze Seznamu 1. Pokud je test vyhodnocen jako FALSE (nalezena shoda v Seznamu 2), vraťte prázdný řetězec.
Úplný vzorec má tento tvar:
=IF(ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE)), A2, "")
Chcete-li se zbavit prázdných míst, použijte filtr aplikace Excel, jak je ukázáno ve výše uvedeném příkladu.
V aplikacích Excel 365 a Excel 2021 můžete nechat seznam výsledků filtrovat dynamicky. Za tímto účelem jednoduše umístěte vzorec ISNA VLOOKUP do pole. zahrnout argumentu funkce FILTER:
=FILTR(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE)))
Jiným způsobem je použití funkce XLOOKUP pro kritéria - funkce vrací prázdné řetězce ("") pro chybějící datové body a vy filtrujete hodnoty v seznamu 1, pro které funkce XLOOKUP vrátila prázdné řetězce (=""):
=FILTR(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")="")
Vzorec VLOOKUP pro identifikaci shod a rozdílů mezi dvěma sloupci
Pokud chcete do prvního seznamu přidat textové popisky, které udávají, které hodnoty jsou v druhém seznamu k dispozici a které nikoli, použijte vzorec VLOOKUP spolu s funkcemi IF a ISNA/ISERROR.
Například pro identifikaci jmen, která jsou ve sloupcích A i D, a jmen, která jsou pouze ve sloupci A, se použije vzorec:
=IF(ISNA(VLOOKUP(A2, $D$2:$D$9, 1, FALSE)), "Nekvalifikovaný", "Kvalifikovaný")
Zde funkce ISNA zachytí chyby #N/A generované funkcí VLOOKUP a předá tento mezivýsledek funkci IF, která vrátí zadaný text pro chyby a jiný text pro úspěšná vyhledávání.
V tomto příkladu jsme použili štítky "Nekvalifikovaný"/"Kvalifikovaný", které jsou vhodné pro náš vzorový soubor dat. Můžete je nahradit štítky "Není v seznamu 2"/"V seznamu 2", "Není k dispozici"/"K dispozici" nebo jakýmikoli jinými štítky, které považujete za vhodné.
Tento vzorec je nejvhodnější vložit do sloupce sousedícího se seznamem 1 a zkopírovat jej do tolika buněk, kolik je položek v seznamu.
Dalším způsobem, jak identifikovat shody a rozdíly ve 2 sloupcích, je použití funkce MATCH:
=IF(ISNA(MATCH(A2, $D$2:$D$9, 0)), "Není v seznamu 2", "V seznamu 2")
Porovnání 2 sloupců a vrácení hodnoty ze třetího sloupce
Při práci s tabulkami obsahujícími související data můžete někdy potřebovat porovnat dva sloupce ve dvou různých tabulkách a vrátit odpovídající hodnotu z jiného sloupce. To je vlastně primární použití funkce VLOOKUP, tedy účel, pro který byla navržena.
Například pro porovnání jmen ve sloupcích A a D ve dvou tabulkách níže a vrácení času ze sloupce E je vzorec následující:
=VLOOKUP(A3, $D$3:$E$10, 2, FALSE)
Chcete-li skrýt chyby #N/A, použijte osvědčené řešení - funkci IFNA:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "")
Místo prázdných míst můžete pro chybějící datové body vrátit libovolný text - stačí jej zadat do posledního argumentu. Například:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "Není k dispozici")
Kromě funkce VLOOKUP lze úlohu splnit pomocí několika dalších vyhledávacích funkcí.
Osobně bych se spoléhal na flexibilnější vzorec INDEX MATCH:
=IFNA(INDEX($E$3:$E$10, MATCH(A3, $D$3:$D$10, 0)), "")
Nebo použijte moderního nástupce funkce VLOOKUP - funkci XLOOKUP, která je k dispozici v aplikacích Excel 365 a Excel 2021:
=XLOOKUP(A3, $D$3:$D$10, $E$3:$E$10, "")
Chcete-li získat jména kvalifikovaných účastníků ze skupiny A a jejich výsledky, jednoduše odfiltrujte prázdné buňky ve sloupci B:
=FILTR(A3:B15, B3:B15"")
Srovnávací nástroje
Pokud často porovnáváte soubory nebo data v aplikaci Excel, tyto chytré nástroje obsažené v naší sadě Ultimate Suite vám mohou výrazně ušetřit čas!
Porovnání tabulek - rychlý způsob vyhledávání duplicit (shod) a jedinečných hodnot (rozdílů) v libovolných dvou datových sadách, jako jsou sloupce, seznamy nebo tabulky.
Porovnání dvou listů - vyhledání a zvýraznění rozdílů mezi dvěma listy.
Porovnání více listů - vyhledejte a zvýrazněte rozdíly ve více listech najednou.
Cvičebnice ke stažení
VLOOKUP v Excelu pro porovnání sloupců - příklady (.xlsx soubor)