Obsah
Výukový program vysvětluje, jak v aplikaci Excel nastavit funkci VLOOKUP tak, aby rozlišovala velká a malá písmena, ukazuje několik dalších vzorců, které rozlišují velká a malá písmena textu, a poukazuje na silné stránky a omezení jednotlivých funkcí.
Asi každý uživatel Excelu ví, jaká funkce provádí v Excelu vertikální vyhledávání. Správně, je to VLOOKUP. Málokdo však ví, že VLOOKUP v Excelu nerozlišuje malá a velká písmena, což znamená, že malá a velká písmena považuje za stejné znaky.
Zde je rychlý příklad, který demonstruje neschopnost VLOOKUP rozlišovat velikost písmen textu. Předpokládejme, že v buňce A2 máte "bill" a v A4 "Bill". Níže uvedený vzorec zachytí "bill", protože je v poli vyhledávání na prvním místě, a vrátí odpovídající hodnotu z B2.
=VLOOKUP("Bill", A2:B4, 2, FALSE)
Dále v tomto článku vám ukážu způsob, jak ve funkci VLOOKUP rozlišovat velká a malá písmena. Prozkoumáme také několik dalších funkcí, které mohou v Excelu rozlišovat velká a malá písmena.
Vzorec VLOOKUP rozlišující malá a velká písmena
Jak bylo uvedeno výše, běžný vzorec VLOOKUP nerozpoznává velikost písmen. Existuje však způsob, jak v aplikaci Excel VLOOKUP rozlišovat velikost písmen, jak je ukázáno v následujícím příkladu.
Předpokládejme, že máte ID položek ve sloupci A a chceme vytáhnout cenu a komentář položky ze sloupců B a C. Problém je v tom, že ID obsahují jak malá, tak velká písmena. Například hodnoty v A4 (001Tvci3u) a A5 (001Tvci3U) se liší pouze posledním znakem, tedy "u", respektive "U".
Při vyhledávání "001Tvci3 U ", standardní vzorec VLOOKUP vypíše 90 USD, které jsou přiřazeny k "001Tvci3". u ", protože se nachází před "001Tvci3 U " ve vyhledávacím poli. Ale to není to, co chcete, že?
=VLOOKUP(F2, A2:C7, 2, FALSE)
Chcete-li v aplikaci Excel provést vyhledávání s rozlišením velkých a malých písmen, zkombinujte funkce VLOOKUP, CHOOSE a EXACT:
VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value , lookup_array ), return_array ), 2, 0)Tento obecný vzorec dokonale funguje ve všech situacích. Můžete si dokonce vyhledat zprava doleva , což běžný vzorec VLOOKUP neumí. Kudos Pouriya za návrh tohoto jednoduchého a elegantního řešení!
V našem případě jsou skutečné vzorce následující.
Stažení ceny v F3:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
Pro načtení komentáře F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
Poznámka: Ve všech verzích Excelu kromě Excelu 365 funguje tento vzorec pouze jako pole, takže nezapomeňte stisknout klávesy Ctrl + Shift + Enter, abyste jej správně dokončili. V Excelu 365 funguje díky podpoře dynamických polí také jako běžný vzorec.
Jak tento vzorec funguje:
Základní částí, která provádí tento trik, je vzorec CHOOSE s vnořeným EXACT:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
Zde funkce EXACT porovná hodnotu v F2 s každou hodnotou v A2:A7 a vrátí TRUE, pokud se přesně shodují včetně velikosti písmen, jinak FALSE:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}
Pro index_num argumentu funkce CHOOSE použijeme konstantu pole {1,2}. Výsledkem je, že funkce spojí logické hodnoty z výše uvedeného pole a hodnoty z C2:C7 do dvourozměrného pole takto:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
Funkce VLOOKUP ji převezme a vyhledá hledanou hodnotu (která je TRUE) v 1. sloupci dvourozměrného pole (reprezentovaného logickými hodnotami) a vrátí shodu z 2. sloupce, což je cena, kterou hledáme:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
Vzorec XLOOKUP rozlišující malá a velká písmena
Předplatitelé služby Microsoft 365 mohou v Excelu provádět vyhledávání podle velikosti písmen pomocí ještě jednoduššího vzorce. Jak jistě tušíte, mluvím o výkonnějším nástupci funkce VLOOKUP - funkci XLOOKUP.
Protože XLOOKUP pracuje s vyhledávacími a návratovými poli odděleně, nepotřebujeme trik s dvourozměrným polem z předchozího příkladu. Jednoduše použijte EXACT pro pole lookup_array argument:
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , "Nenalezeno")Poslední argument ("Nenalezen") je nepovinný. Určuje pouze, jaká hodnota se má vrátit, pokud není nalezena žádná shoda. Pokud jej vynecháte, bude v případě, že vzorec nic nenalezne, vrácena standardní chyba #N/A.
Pro naši ukázkovou tabulku se použijí tyto vzorce XLOOKUP s rozlišováním velkých a malých písmen.
Chcete-li získat cenu ve F3:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Nenalezeno")
Výpis komentáře F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Nenalezeno")
Jak tento vzorec funguje:
Stejně jako v předchozím příkladu vrátí EXACT pole hodnot TRUE a FALSE, kde TRUE představuje shodu rozlišující malá a velká písmena. XLOOKUP vyhledá ve výše uvedeném poli hodnotu TRUE a vrátí shodu z pole . return_array . Upozorňujeme, že pokud jsou ve sloupci vyhledávání dvě nebo více přesně stejných hodnot (včetně velikosti písmen), vzorec vrátí první nalezenou shodu.
Omezení XLOOKUP : k dispozici pouze v aplikacích Excel 365 a Excel 2021.
SUMPRODUCT - vyhledávání s rozlišováním malých a velkých písmen pro vrácení odpovídajících čísel
Jak jste pochopili z nadpisu, SUMPRODUCT je další funkcí aplikace Excel, která umí vyhledávat s ohledem na velikost písmen, ale může vrátit číselné hodnoty Pokud to není váš případ, přejděte na příklad INDEX MATCH, který nabízí řešení pro všechny typy dat.
Jak asi víte, funkce SUMPRODUCT aplikace Excel násobí složky v zadaných polích a vrací součet součinů. Protože chceme vyhledávat s ohledem na velikost písmen, použijeme funkci EXACT pro získání prvního pole:
=SOUČIN((EXACT(A2:A7,F2) * (B2:B7)))
Funkce SUMPRODUCT bohužel nemůže vrátit textové shody, protože textové hodnoty nelze násobit. V takovém případě se zobrazí chyba #VALUE! jako v buňce F4 na obrázku níže:
Jak tento vzorec funguje:
Stejně jako v příkladu VLOOKUP funkce EXACT porovná hodnotu v F2 se všemi hodnotami v A2:A7 a vrátí TRUE v případě shody rozlišující malá a velká písmena, jinak FALSE:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
Ve většině vzorců Excel vyhodnocuje TRUE jako 1 a FALSE jako 0. Když tedy SUMPRODUCT vynásobí prvky dvou polí na stejných pozicích, všechny neshody (FALSE) se stanou nulami:
SUMPRODUCT({0;0;0;54;0;0})
Výsledkem vzorce je číslo ze sloupce B, které odpovídá přesné shodě s rozlišováním malých a velkých písmen ve sloupci A.
Omezení SUMPRODUCT : může vracet pouze číselné hodnoty.
INDEX MATCH - vyhledávání s rozlišováním malých a velkých písmen pro všechny datové typy
Konečně se blížíme k vytvoření vyhledávacího vzorce bez omezení, který rozlišuje malá a velká písmena a funguje ve všech verzích aplikace Excel a na všech datových sadách.
Tento příklad je na konci nejen proto, že to nejlepší si necháváme na konec, ale také proto, že znalosti získané v předchozích příkladech vám mohou pomoci lépe pochopit vzorec MATCH INDEX, který rozlišuje velká a malá písmena.
Kombinace funkcí INDEX a MATCH se v Excelu často používá jako flexibilnější a univerzálnější alternativa k VLOOKUP. Následující článek dobře (snad :) vysvětluje, jak tyto dvě funkce společně fungují - Použití INDEX MATCH místo VLOOKUP.
Zde vám jen připomenu klíčové body:
- Funkce MATCH vyhledá hodnotu vyhledávání v zadaném poli vyhledávání a vrátí její relativní pozici.
- Relativní pozice vyhledávací hodnoty přechází přímo do pole row_num argumentu funkce INDEX, který jí dává pokyn k vrácení hodnoty z tohoto řádku.
Aby vzorec rozpoznal i velikost písmen textu, stačí ke klasické kombinaci INDEX MATCH přidat ještě jednu funkci. Je zřejmé, že opět potřebujete funkci EXACT:
INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))Skutečný vzorec ve F3 je:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Ve F4 používáme tento:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Nezapomeňte, že ve všech verzích jiných než Excel 365 funguje pouze jako vzorec pole, takže jej nezapomeňte zadat stisknutím kláves Ctrl + Shift + Enter dohromady. Pokud je to provedeno správně, vzorec se uzavře do kudrnatých závorek, jak je znázorněno na obrázku níže:
Jak tento vzorec funguje:
Stejně jako ve všech předchozích příkladech vrací EXACT hodnotu TRUE pro každou hodnotu v A2:A7, která se přesně shoduje s hodnotou v F2. lookup_value MATCH, vrátí relativní pozici přesné shody s rozlišováním malých a velkých písmen, což je přesně to, co INDEX potřebuje, aby vrátil shodu z B2:B7.
Pokročilý vzorec pro vyhledávání s rozlišováním velkých a malých písmen
Výše uvedený vzorec INDEX MATCH vypadá dokonale, že? Ale ve skutečnosti není. Ukážu vám proč.
Předpokládejme, že buňka ve sloupci pro návrat odpovídající hodnotě vyhledávání je prázdná. Co vzorec vrátí? Nic. A nyní se podívejme, co vlastně vrací:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Jejda, vzorec vrací nulu! Možná, že to není důležité, pokud pracujete pouze s textovými hodnotami. Pokud však váš pracovní list obsahuje čísla a některá z nich jsou skutečné nuly, je to problém.
Po pravdě řečeno, všechny ostatní vyhledávací vzorce, o kterých jsme mluvili dříve, se chovají stejně. Ale teď chcete bezvadný vzorec, že?
Aby byl vzorec INDEX MATCH, který rozlišuje malá a velká písmena, naprosto dokonalý, obalíte jej funkcí IF, která kontroluje, zda je buňka s návratem prázdná, a v takovém případě nevrací nic:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
Ve výše uvedeném vzorci:
- "C" je návratový sloupec.
- "1" je číslo, které změní relativní poloha buňky vrácené funkcí MATCH do pole skutečná adresa buňky .
Například vyhledávací pole v naší funkci MATCH je A2:A7, což znamená, že relativní pozice buňky A2 je "1", protože je to první buňka v poli. Ve skutečnosti však vyhledávací pole začíná v řádku 2. Abychom vyrovnali rozdíl, přidáme 1, takže funkce INDIRECT vrátí hodnotu ze správné buňky.
Níže uvedené snímky obrazovky ukazují vylepšený vzorec INDEX MATCH rozlišující malá a velká písmena v akci.
Pokud je návratová buňka prázdná, vzorec nevypíše nic (prázdný řetězec):
Pokud návratová buňka obsahuje nulu, vzorec vrátí 0:
Pokud chcete raději zobrazit nějakou zprávu, když je návratová buňka prázdná, nahraďte prázdný řetězec ("") v posledním argumentu IF nějakým textem:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
Jednoduchý způsob provedení VLOOKUP s rozlišováním velkých a malých písmen
Uživatelé naší sady Ultimate Suite pro Excel mají k dispozici speciální nástroj, který usnadňuje vyhledávání ve velkých a složitých tabulkách a zbavuje je stresu. Nejlepší je, že funkce Sloučit dvě tabulky rozlišuje velká a malá písmena, a níže uvedený příklad ji ukazuje v akci.
Předpokládejme, že chcete vytáhnout Qty. ze složky Vyhledávání do tabulky Hlavní stránka tabulky na základě jedinečných ID položek:
Spusťte průvodce sloučením tabulek a proveďte tyto kroky:
- Vyberte hlavní tabulku, do které se mají nová data načíst.
- Vyberte vyhledávací tabulku, ve které chcete hledat nová data.
- Vyberte jeden nebo více klíčových sloupců (v našem případě ID položky). A nezapomeňte zaškrtnout políčko Porovnávání s rozlišováním velkých a malých písmen box.
O chvíli později se dočkáte kýženého výsledku :)
Takto vypadá vyhledávání v Excelu s přihlédnutím k velikosti písmen textu. 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 VLOOKUP s rozlišováním velkých a malých písmen (.xlsx soubor)