Obsah
Tento návod ukazuje, ako použiť vzorec VLOOKUP v programe Excel na porovnanie dvoch stĺpcov s cieľom vrátiť spoločné hodnoty (zhody) alebo nájsť chýbajúce údaje (rozdiely).
Keď máte údaje v dvoch rôznych zoznamoch, často ich môžete potrebovať porovnať, aby ste zistili, aké informácie v jednom zo zoznamov chýbajú alebo aké údaje sú prítomné v oboch zoznamoch. Porovnávanie možno vykonať rôznymi spôsobmi - to, ktorú metódu použijete, závisí od toho, čo presne od neho chcete.
Ako porovnať dva stĺpce v programe Excel pomocou funkcie VLOOKUP
Ak máte dva stĺpce údajov a chcete zistiť, ktoré dátové body z jedného zoznamu existujú v druhom zozname, môžete použiť funkciu VLOOKUP na porovnanie zoznamov na spoločné hodnoty.
Ak chcete vytvoriť vzorec VLOOKUP v jeho základnej podobe, musíte urobiť toto:
- Pre lookup_value (1. argument), použite najvyššiu bunku zo zoznamu 1.
- Pre table_array (2. argument), zadajte celý zoznam 2.
- Pre col_index_num (3. argument), použite 1, pretože v poli je len jeden stĺpec.
- Pre range_lookup (4. argument), nastavte FALSE - presná zhoda.
Predpokladajme, že máte mená účastníkov v stĺpci A (zoznam 1) a mená tých, ktorí prešli kvalifikačnými kolami, v stĺpci B (zoznam 2). Chcete porovnať tieto dva zoznamy a určiť, ktorí účastníci zo skupiny A sa dostali do hlavného kola. Na tento účel použite nasledujúci vzorec.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Vzorec prejde do bunky E2 a potom ho potiahnete nadol cez toľko buniek, koľko je položiek v zozname 1.
Upozorňujeme, že table_array je uzamknutá pomocou absolútnych odkazov ($C$2:$C$9), takže zostane konštantná, keď vzorec skopírujete do nasledujúcich buniek.
Ako vidíte, mená kvalifikovaných športovcov sa zobrazia v stĺpci E. V prípade ostatných účastníkov sa zobrazí chyba #N/A, ktorá znamená, že ich mená nie sú v zozname 2 k dispozícii.
Prevlek #N/A chyby
Vyššie uvedený vzorec VLOOKUP dokonale plní svoj hlavný cieľ - vracia spoločné hodnoty a identifikuje chýbajúce dátové body. Poskytuje však množstvo chýb #N/A, ktoré môžu neskúsených používateľov zmiasť a spôsobiť, že si budú myslieť, že so vzorcom nie je niečo v poriadku.
Nahradenie chýb pomocou prázdne bunky , použite VLOOKUP v kombinácii s funkciou IFNA alebo IFERROR týmto spôsobom:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Náš vylepšený vzorec vráti prázdny reťazec ("") namiesto #N/A. vlastný text ako napríklad "Nie je v zozname 2", "Nie je prítomný" alebo "Nie je k dispozícii". Napríklad:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "Not in List 2")
Toto je základný vzorec VLOOKUP na porovnanie dvoch stĺpcov v programe Excel. V závislosti od konkrétnej úlohy ho môžete upraviť podľa ďalších príkladov.
Porovnanie dvoch stĺpcov v rôznych hárkoch programu Excel pomocou funkcie VLOOKUP
V reálnom živote sa stĺpce, ktoré potrebujete porovnať, nenachádzajú vždy na tom istom hárku. V malom súbore údajov môžete skúsiť zistiť rozdiely ručne zobrazením dvoch hárkov vedľa seba.
Ak chcete vyhľadávať v inom hárku alebo zošite so vzorcami, musíte použiť externý odkaz. Najlepším postupom je začať písať vzorec v hlavnom hárku, potom sa prepnúť na iný hárok a vybrať zoznam pomocou myši - do vzorca sa automaticky pridá príslušný odkaz na rozsah.
Za predpokladu, že zoznam 1 je v stĺpci A na List1 a zoznam 2 je v stĺpci A na List2 , môžete porovnať dva stĺpce a nájsť zhodu pomocou tohto vzorca:
=IFNA(VLOOKUP(A2, Sheet2!$A$2:$A$9, 1, FALSE), "")
Viac informácií nájdete na:
- VLOOKUP z iného listu
- VLOOKUP z iného zošita
Porovnať dva stĺpce a vrátiť spoločné hodnoty (zhody)
V predchádzajúcich príkladoch sme sa zaoberali vzorcom VLOOKUP v jeho najjednoduchšej podobe:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Výsledkom tohto vzorca je zoznam hodnôt, ktoré existujú v oboch stĺpcoch, a prázdne bunky na mieste hodnôt, ktoré nie sú k dispozícii v druhom stĺpci.
Ak chcete získať zoznam bežných hodnôt bez medzier, stačí do výsledného stĺpca pridať automatický filter a odfiltrovať prázdne miesta.
V aplikáciách Excel pre Microsoft 365 a Excel 2021, ktoré podporujú dynamické polia, môžete na dynamické vyselektovanie prázdnych polí využiť funkciu FILTER. Na tento účel využite vzorec IFNA VLOOKUP ako kritérium pre FILTER:
=FILTER(A2:A14, IFNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE), "")")
Upozorňujeme, že v tomto prípade dodávame celý zoznam 1 (A2:A14) do lookup_value Funkcia porovnáva každú z hodnôt vyhľadávania so zoznamom 2 (C2:C9) a vracia pole zhody a chýb #N/A, ktoré predstavujú chýbajúce hodnoty. Funkcia IFNA nahrádza chyby prázdnymi reťazcami a výsledky poskytuje funkcii FILTER, ktorá odfiltruje prázdne znaky ("") a ako konečný výsledok vypíše pole zhody.
Prípadne môžete použiť funkciu ISNA na kontrolu výsledku VLOOKUP a odfiltrovať položky s vyhodnotením FALSE, t. j. iné hodnoty ako chyby #N/A:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))=FALSE)
Rovnaký výsledok možno dosiahnuť pomocou funkcie XLOOKUP, ktorá vzorec ešte viac zjednodušuje. Vďaka schopnosti funkcie XLOOKUP interne spracovať chyby #N/A (voliteľné if_not_found argument), môžeme sa zaobísť bez obalu IFNA alebo ISNA:
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")")
Porovnanie dvoch stĺpcov a zistenie chýbajúcich hodnôt (rozdielov)
Ak chcete porovnať 2 stĺpce v programe Excel a nájsť rozdiely, môžete postupovať takto:
- Napíšte základný vzorec na hľadanie prvej hodnoty zo zoznamu 1 (A2) v zozname 2 ($C$2:$C$9):
VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
- Vloženie vyššie uvedeného vzorca do funkcie ISNA na kontrolu výstupu VLOOKUP na prítomnosť chýb #N/A. V prípade chyby ISNA poskytne TRUE, inak FALSE:
ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE))
- Na logický test funkcie IF použite vzorec ISNA VLOOKUP. Ak sa test vyhodnotí ako TRUE (chyba #N/A), vráťte v tom istom riadku hodnotu zo zoznamu 1. Ak sa test vyhodnotí ako FALSE (nájde sa zhoda v zozname 2), vráťte prázdny reťazec.
Úplný vzorec má tento tvar:
=IF(ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE)), A2, "")
Ak sa chcete zbaviť prázdnych miest, použite filter programu Excel, ako je uvedené v príklade vyššie.
V aplikáciách Excel 365 a Excel 2021 môžete zoznam výsledkov filtrovať dynamicky. Na tento účel jednoducho umiestnite vzorec ISNA VLOOKUP do zahŕňajú . argument funkcie FILTER:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))
Iný spôsob je použiť XLOOKUP pre kritériá - funkcia vráti prázdne reťazce ("") pre chýbajúce dátové body a vy filtrujete hodnoty v zozname 1, pre ktoré XLOOKUP vrátil prázdne reťazce (=""):
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")="")
Vzorec VLOOKUP na identifikáciu zhody a rozdielu medzi dvoma stĺpcami
Ak chcete do prvého zoznamu pridať textové značky, ktoré označujú, ktoré hodnoty sú dostupné v druhom zozname a ktoré nie, použite vzorec VLOOKUP spolu s funkciami IF a ISNA/ISERROR.
Napríklad na identifikáciu názvov, ktoré sú v stĺpcoch A aj D, a názvov, ktoré sú len v stĺpci A, sa použije vzorec:
=IF(ISNA(VLOOKUP(A2, $D$2:$D$9, 1, FALSE)), "Nekvalifikovaný", "Kvalifikovaný")
Tu funkcia ISNA zachytáva chyby #N/A vygenerované funkciou VLOOKUP a odovzdáva tento medzivýsledok funkcii IF, aby vrátila zadaný text v prípade chýb a iný text v prípade úspešných vyhľadávaní.
V tomto príklade sme použili štítky "Not qualified"/"Qualified", ktoré sú vhodné pre náš súbor údajov. Môžete ich nahradiť štítkami "Not in List 2"/"In List 2", "Not available"/"Available" alebo akýmikoľvek inými štítkami, ktoré považujete za vhodné.
Tento vzorec je najlepšie vložiť do stĺpca susediaceho so zoznamom 1 a skopírovať ho do toľkých buniek, koľko je položiek v zozname.
Ďalším spôsobom, ako identifikovať zhody a rozdiely v 2 stĺpcoch, je použitie funkcie MATCH:
=IF(ISNA(MATCH(A2, $D$2:$D$9, 0)), "Not in List 2", "In List 2")
Porovnanie 2 stĺpcov a vrátenie hodnoty z tretieho stĺpca
Pri práci s tabuľkami obsahujúcimi súvisiace údaje môžete niekedy potrebovať porovnať dva stĺpce v dvoch rôznych tabuľkách a vrátiť zodpovedajúcu hodnotu z iného stĺpca. V skutočnosti je to primárne použitie funkcie VLOOKUP, teda účel, na ktorý bola navrhnutá.
Ak chcete napríklad porovnať názvy v stĺpcoch A a D v dvoch tabuľkách nižšie a vrátiť čas zo stĺpca E, vzorec je:
=VLOOKUP(A3, $D$3:$E$10, 2, FALSE)
Ak chcete skryť chyby #N/A, použite osvedčené riešenie - funkciu IFNA:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "")
Namiesto prázdnych miest môžete pre chýbajúce dátové body vrátiť akýkoľvek text - stačí ho zadať do posledného argumentu. Napríklad:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "Nie je k dispozícii")
Okrem funkcie VLOOKUP je možné túto úlohu splniť pomocou niekoľkých ďalších vyhľadávacích funkcií.
Osobne by som sa spoliehal na flexibilnejší vzorec INDEX MATCH:
=IFNA(INDEX($E$3:$E$10, MATCH(A3, $D$3:$D$10, 0)), "")
Alebo použite moderného nástupcu funkcie VLOOKUP - funkciu XLOOKUP, ktorá je k dispozícii v aplikáciách Excel 365 a Excel 2021:
=XLOOKUP(A3, $D$3:$D$10, $E$3:$E$10, "")
Ak chcete získať mená kvalifikovaných účastníkov zo skupiny A a ich výsledky, jednoducho odfiltrujte prázdne bunky v stĺpci B:
=FILTER(A3:B15, B3:B15"")
Nástroje na porovnávanie
Ak často porovnávate súbory alebo údaje v programe Excel, tieto inteligentné nástroje zahrnuté v našom balíku Ultimate Suite vám môžu výrazne ušetriť čas!
Porovnanie tabuliek - rýchly spôsob, ako nájsť duplicity (zhody) a jedinečné hodnoty (rozdiely) v akýchkoľvek dvoch súboroch údajov, ako sú stĺpce, zoznamy alebo tabuľky.
Porovnanie dvoch hárkov - nájdite a zvýraznite rozdiely medzi dvoma pracovnými hárkami.
Porovnanie viacerých hárkov - nájdite a zvýraznite rozdiely vo viacerých hárkoch naraz.
Cvičebnica na stiahnutie
VLOOKUP v programe Excel na porovnanie stĺpcov - príklady (.xlsx súbor)