Obsah
Výukový program ukazuje, jak v aplikaci Excel porovnávat textové řetězce bez ohledu na velikost písmen a přesnou shodu. Naučíte se řadu vzorců pro porovnání dvou buněk podle jejich hodnot, délky řetězce nebo počtu výskytů určitého znaku a také jak porovnávat více buněk.
Při používání aplikace Excel k analýze dat je nejdůležitější přesnost. Nesprávné informace vedou k nedodržení termínů, nesprávnému posouzení trendů, chybným rozhodnutím a ztrátě příjmů.
Vzorce aplikace Excel jsou sice vždy dokonale pravdivé, ale jejich výsledky mohou být chybné, protože do systému pronikla nějaká chybná data. V takovém případě je jedinou nápravou kontrola správnosti dat. Není velký problém porovnat dvě buňky ručně, ale odhalit rozdíly mezi stovkami a tisíci textových řetězců je téměř nemožné.
V tomto kurzu se dozvíte, jak zautomatizovat zdlouhavý a k chybám náchylný úkol porovnávání buněk a jaké vzorce je nejlepší použít v jednotlivých případech.
Jak porovnat dvě buňky v aplikaci Excel
V aplikaci Excel existují dva různé způsoby porovnávání řetězců v závislosti na tom, zda chcete porovnávat malá a velká písmena, nebo malá a velká písmena nerozlišovat.
Vzorec pro porovnání 2 buněk bez ohledu na velikost písmen
Chcete-li v aplikaci Excel porovnat dvě buňky v případě ignorování, použijte jednoduchý vzorec, jako je tento:
=A1=B1
Kde A1 a B1 jsou buňky, které porovnáváte. Výsledkem vzorce jsou logické hodnoty TRUE a FALSE.
Pokud chcete vypisovat vlastní texty pro shody a rozdíly, vložte výše uvedený příkaz do logického testu funkce IF. Například:
=IF(A1=B1, "Rovná se", "Nerovná se")
Jak vidíte na obrázku níže, oba vzorce porovnávají textové řetězce, data a čísla stejně dobře:
Vzorec pro porovnávání řetězců v aplikaci Excel s rozlišováním malých a velkých písmen
V některých situacích může být důležité nejen porovnat textové hodnoty dvou buněk, ale také porovnat velikost znaků. Porovnání textu s ohledem na velikost písmen lze provést pomocí funkce Excel EXACT:
EXACT (text1, text2)Kde: text1 a text2 jsou dvě porovnávané buňky.
Za předpokladu, že řetězce jsou v buňkách A2 a B2, vzorec vypadá takto:
=EXACT(A2, B2)
Výsledkem je TRUE, pokud textové řetězce odpovídají přesně včetně velikosti jednotlivých znaků, jinak FALSE.
Pokud chcete, aby funkce EXACT poskytovala jiné výsledky, vložte ji do vzorce IF a zadejte vlastní text pro. value_if_true a value_if_false argumenty:
=IF(EXACT(A2 ,B2), "Přesně stejný", "Není stejný")
Následující snímek obrazovky ukazuje výsledky porovnání řetězců v aplikaci Excel s ohledem na velikost písmen:
Jak porovnat více buněk v aplikaci Excel
Chcete-li porovnat více než 2 buňky v řádku, použijte vzorce popsané ve výše uvedených příkladech v kombinaci s operátorem AND. Úplné podrobnosti jsou uvedeny níže.
Vzorec pro porovnání více než 2 buněk bez rozlišení velikosti písmen
Podle toho, jak chcete výsledky zobrazit, použijte jeden z následujících vzorců:
=AND(A2=B2, A2=C2)
nebo
=IF(AND(A2=B2, A2=C2), "Rovná se", "Nerovná se")
Vzorec AND vrací hodnotu TRUE, pokud všechny buňky obsahují stejnou hodnotu, FALSE, pokud se některá hodnota liší. Vzorec IF vypíše popisky, které do něj zadáte, " Equal " a " Nerovná se " v tomto příkladu.
Jak ukazuje obrázek níže, vzorec funguje dokonale s jakýmikoli typy dat - textem, daty a číselnými hodnotami:
Vzorec pro porovnávání textu v několika buňkách s rozlišováním malých a velkých písmen
Chcete-li porovnat více řetězců a zjistit, zda se přesně shodují, použijte následující vzorce:
=AND(EXACT(A2,B2), EXACT(A2, C2))
Nebo
=IF(AND(EXACT(A2,B2), EXACT(A2, C2)), "Přesně stejné", "Není stejné")
Stejně jako v předchozím příkladu první vzorec poskytuje hodnoty TRUE a FALSE, zatímco druhý vzorec zobrazuje vlastní texty pro shody a rozdíly:
Porovnání rozsahu buněk s buňkou vzorku
Následující příklady ukazují, jak lze ověřit, že všechny buňky v daném rozsahu obsahují stejný text jako v ukázkové buňce.
Vzorec pro porovnání buněk se vzorovým textem bez ohledu na velikost písmen
Pokud na velikosti znaku nezáleží, můžete pro porovnání buněk se vzorkem použít následující vzorec:
ŘÁDKY( rozsah )*COLUMNS( rozsah )=COUNTIF( rozsah , vzorkovací buňka )V logickém testu funkce IF porovnáváte dvě čísla:
- Celkový počet buněk v zadaném rozsahu (počet řádků vynásobený počtem sloupců) a
- Počet buněk obsahujících stejnou hodnotu jako ve vzorové buňce (vráceno funkcí COUNTIF).
Předpokládáme-li, že ukázkový text je v poli C2 a řetězce, které se mají porovnat, jsou v rozsahu A2:B6, je vzorec následující:
=ŘÁDKY(A2:B6)*SLOUPCE(A2:B6)=COUNTIF(A2:B6,C2)
Chcete-li, aby byly výsledky uživatelsky přívětivější, tj. aby se místo TRUE a FALSE vypsalo něco jako "All match" a "Not all match", použijte funkci IF, jak jsme to udělali v předchozích příkladech:
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=COUNTIF(A2:B6,C2), "All match", "Not all match")
Jak ukazuje výše uvedený snímek obrazovky, vzorec si dokonale poradí s rozsahem textových řetězců, ale lze jej použít i k porovnávání čísel a dat.
Vzorec pro porovnávání řetězců se vzorovým textem rozlišující malá a velká písmena
Pokud záleží na velikosti znaků, můžete řetězce porovnat se vzorovým textem pomocí následujících vzorců pole.
IF(ROWS( rozsah )*COLUMNS( rozsah )=SUMA(--EXACT( sample_cell , rozsah )), " text_if_match ", " text_if_not match ")Pokud se zdrojový rozsah nachází v A2:B6 a ukázkový text v C2, vzorec má následující tvar:
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=SUM(--EXACT(C2, A2:B6)), "All match", "Not all match")
Na rozdíl od běžných vzorců aplikace Excel se vzorce pole doplňují stisknutím klávesové zkratky Ctrl + Shift + Enter . Pokud je vzorec pole zadán správně, aplikace Excel jej uzavře do {kudrnatých závorek}, jak je znázorněno na obrázku:
Jak porovnat dvě buňky podle délky řetězce
Někdy můžete chtít zkontrolovat, zda textové řetězce v jednotlivých řádcích obsahují stejný počet znaků. Vzorec pro tuto úlohu je velmi jednoduchý. Nejprve zjistíte délku řetězce dvou buněk pomocí funkce LEN a poté tato čísla porovnáte.
Předpokládejme, že porovnávané řetězce jsou v buňkách A2 a B2, a použijte jeden z následujících vzorců:
=LEN(A2)=LEN(B2)
Nebo
=IF(LEN(A2)=LEN(B2), "Rovná se", "Nerovná se")
Jak již víte, první vzorec vrací logické hodnoty TRUE nebo FALSE, zatímco druhý vzorec vypisuje vlastní výsledky:
Jak ukazuje obrázek výše, vzorce fungují pro textové řetězce i čísla.
Tip. Pokud dva zdánlivě stejné řetězce vracejí různou délku, je problém nejspíš v tom. vedoucí nebo koncové prostory v jedné nebo obou buňkách. V tomto případě odstraňte přebytečné mezery pomocí funkce TRIM. Podrobné vysvětlení a příklady vzorců najdete zde: Jak ořezat mezery v Excelu.
Porovnání dvou buněk podle výskytu určitého znaku
Toto je poslední příklad v našem výukovém programu Excel Porovnávání řetězců, který ukazuje řešení poměrně specifické úlohy. Předpokládejme, že máte 2 sloupce textových řetězců, které obsahují pro vás důležitý znak. Vaším cílem je zkontrolovat, zda dvě buňky v každém řádku obsahují stejný počet výskytů daného znaku.
Aby bylo vše jasnější, uvažujte následující příklad. Řekněme, že máte dva seznamy odeslaných (sloupec B) a přijatých objednávek (sloupec C). Každý řádek obsahuje objednávky na konkrétní položku, jejíž jedinečný identifikátor je obsažen ve všech ID objednávek a je uveden ve stejném řádku ve sloupci A (viz obrázek níže). Chcete zajistit, aby každý řádek obsahoval stejný počet odeslaných a přijatých objednávek.položky s daným ID.
Pro vyřešení tohoto problému napište vzorec s následující logikou.
- Nejprve pomocí funkce SUBSTITUTE nahraďte jedinečný identifikátor ničím:
SUBSTITUTE(A1, character_to_count,"")
- Poté vypočítejte, kolikrát se jedinečný identifikátor objeví v každé buňce. K tomu zjistěte délku řetězce bez jedinečného identifikátoru a odečtěte ji od celkové délky řetězce. Tato část se zapíše například pro buňku 1 a buňku 2 jednotlivě:
LEN(buňka 1) - LEN(SUBSTITUTE(buňka 1, character_to_count, ""))
a
LEN(buňka 2) - LEN(SUBSTITUTE(buňka 2, character_to_count, ""))
- Nakonec tato dvě čísla porovnáte tak, že mezi výše uvedené části vložíte znaménko rovnosti (=).
LEN( buňka 2 ) - LEN(SUBSTITUTE( buňka 2 , character_to_count , ""))
V našem příkladu je jedinečný identifikátor v buňce A2 a řetězce, které se mají porovnat, jsou v buňkách B2 a C2. Celý vzorec je tedy následující:
=LEN(B2)-LEN(SUBSTITUTE(B2,$A2,"))=LEN(C2)-LEN(SUBSTITUTE(C2,$A2,"))
Vzorec vrátí hodnotu TRUE, pokud buňky B2 a C2 obsahují stejný počet výskytů znaku v A2, v opačném případě hodnotu FALSE. Aby byly výsledky pro uživatele smysluplnější, můžete vzorec vložit do funkce IF:
=IF(LEN(B2)-LEN(SUBSTITUTE(B2, $A2,"))=LEN(C2)-LEN(SUBSTITUTE(C2, $A2,")), "Rovná se", "Nerovná se")
Jak vidíte na obrázku výše, vzorec funguje dokonale i přes několik dalších komplikací:
- Počítaný znak (jedinečný identifikátor) se může vyskytovat kdekoli v textovém řetězci.
- Řetězce obsahují různý počet znaků a různé oddělovače, například středník, čárku nebo mezeru.
Takto se v Excelu porovnávají řetězce. Chcete-li se blíže seznámit se vzorci probíranými v tomto tutoriálu, můžete si stáhnout pracovní list Excelu pro porovnávání řetězců. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu.