Obsah
V tomto učebnom texte sa dozviete, ako v programe Excel porovnávať textové reťazce bez ohľadu na veľkosť písmen a presnú zhodu. Naučíte sa niekoľko vzorcov na porovnávanie dvoch buniek podľa ich hodnôt, dĺžky reťazca alebo počtu výskytov konkrétneho znaku, ako aj ako porovnávať viacero buniek.
Pri používaní programu Excel na analýzu údajov je najdôležitejšia presnosť. Nesprávne informácie vedú k nedodržaniu termínov, nesprávnemu posúdeniu trendov, nesprávnym rozhodnutiam a stratám príjmov.
Hoci vzorce programu Excel sú vždy dokonale pravdivé, ich výsledky môžu byť nesprávne, pretože do systému prenikli niektoré chybné údaje. V takom prípade je jediným liekom kontrola správnosti údajov. Nie je veľký problém porovnať dve bunky ručne, ale je takmer nemožné odhaliť rozdiely medzi stovkami a tisíckami textových reťazcov.
V tomto návode sa dozviete, ako zautomatizovať zdĺhavú a na chyby náchylnú úlohu porovnávania buniek a aké vzorce je najlepšie použiť v jednotlivých prípadoch.
Ako porovnať dve bunky v programe Excel
V programe Excel existujú dva rôzne spôsoby porovnávania reťazcov v závislosti od toho, či chcete porovnávať veľké a malé písmená alebo bez nich.
Vzorec na porovnanie 2 buniek bez ohľadu na veľkosť písmen
Ak chcete porovnať dve bunky v aplikácii Excel, použite jednoduchý vzorec, ako je tento:
=A1=B1
Kde A1 a B1 sú porovnávané bunky. Výsledkom vzorca sú logické hodnoty TRUE a FALSE.
Ak chcete vypisovať vlastné texty pre zhody a rozdiely, vložte vyššie uvedený príkaz do logického testu funkcie IF. Napríklad:
=IF(A1=B1, "Rovnaké", "Nerovné")
Ako vidíte na nasledujúcej snímke obrazovky, oba vzorce porovnávajú textové reťazce, dátumy a čísla rovnako dobre:
Vzorec na porovnávanie reťazcov v programe Excel s rozlišovaním veľkých a malých písmen
V niektorých situáciách môže byť dôležité nielen porovnať textové hodnoty dvoch buniek, ale aj porovnať veľkosť znakov. Porovnanie textu podľa veľkosti písmen možno vykonať pomocou funkcie Excel EXACT:
EXACT (text1, text2)Kde text1 a text2 sú dve porovnávané bunky.
Za predpokladu, že reťazce sú v bunkách A2 a B2, vzorec vyzerá takto:
=EXACT(A2, B2)
Výsledkom je TRUE, ak sa textové reťazce zhodujú presne vrátane veľkosti jednotlivých znakov, inak FALSE.
Ak chcete, aby funkcia EXACT poskytla iné výsledky, vložte ju do vzorca IF a zadajte vlastný text pre value_if_true a value_if_false argumenty:
=IF(EXACT(A2 ,B2), "Presne rovnaký", "Nie je rovnaký")
Nasledujúci obrázok zobrazuje výsledky porovnávania reťazcov v programe Excel s rozlišovaním veľkých a malých písmen:
Ako porovnať viacero buniek v programe Excel
Ak chcete porovnať viac ako 2 bunky v jednom riadku, použite vzorce uvedené vo vyššie uvedených príkladoch v kombinácii s operátorom AND. Všetky podrobnosti sú uvedené nižšie.
Vzorec na porovnávanie viac ako 2 buniek bez ohľadu na veľkosť písmen
Podľa toho, ako chcete výsledky zobraziť, použite jeden z nasledujúcich vzorcov:
=AND(A2=B2, A2=C2)
alebo
=IF(AND(A2=B2, A2=C2), "Rovnaké", "Nerovné")
Vzorec AND vráti TRUE, ak všetky bunky obsahujú rovnakú hodnotu, FALSE, ak sa niektorá hodnota líši. Vzorec IF vypíše štítky, ktoré do neho zadáte, " Rovnaký " a " Nie je to rovnaké " v tomto príklade.
Ako je znázornené na nasledujúcej snímke, vzorec dokonale funguje s akýmikoľvek typmi údajov - textom, dátumom a číselnými hodnotami:
Vzorec na porovnávanie textu v niekoľkých bunkách s rozlišovaním veľkých a malých písmen
Ak chcete navzájom porovnať viacero reťazcov a zistiť, či sa presne zhodujú, použite nasledujúce vzorce:
=AND(EXACT(A2,B2), EXACT(A2, C2))
Alebo
=IF(AND(EXACT(A2,B2), EXACT(A2, C2)), "Presne rovnako", "Nie je rovnako")
Podobne ako v predchádzajúcom príklade, prvý vzorec poskytuje hodnoty TRUE a FALSE, zatiaľ čo druhý vzorec zobrazuje vaše vlastné texty pre zhody a rozdiely:
Porovnanie rozsahu buniek s bunkou vzorky
Nasledujúce príklady ukazujú, ako môžete overiť, či všetky bunky v danom rozsahu obsahujú rovnaký text ako vo vzorovej bunke.
Vzorec na porovnávanie buniek so vzorovým textom bez ohľadu na veľkosť písmen
Ak na veľkosti znaku nezáleží, môžete na porovnanie buniek so vzorkou použiť nasledujúci vzorec:
ROWS( rozsah )*COLUMNS( rozsah )=COUNTIF( rozsah , bunka na vzorky )V logickom teste funkcie IF porovnávate dve čísla:
- Celkový počet buniek v zadanom rozsahu (počet riadkov vynásobený počtom stĺpcov) a
- Počet buniek, ktoré obsahujú rovnakú hodnotu ako bunka vzorky (vrátená funkciou COUNTIF).
Za predpokladu, že text vzorky je v C2 a reťazce, ktoré sa majú porovnať, sú v rozsahu A2:B6, vzorec vyzerá takto:
=RIADKY(A2:B6)*STĹPCE(A2:B6)=COUNTIF(A2:B6,C2)
Ak chcete, aby boli výsledky používateľsky prívetivejšie, t. j. aby sa namiesto TRUE a FALSE vypisovalo niečo ako "All match" a "Not all match", použite funkciu IF, ako sme to urobili v predchádzajúcich príkladoch:
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=COUNTIF(A2:B6,C2), "All match", "Not all match")
Ako je znázornené na vyššie uvedenej snímke obrazovky, vzorec si dokonale poradí s rozsahom textových reťazcov, ale možno ho použiť aj na porovnanie čísel a dátumov.
Vzorec na porovnávanie reťazcov so vzorovým textom s rozlišovaním veľkých a malých písmen
Ak je veľkosť znakov dôležitá, môžete porovnať reťazce so vzorovým textom pomocou nasledujúcich vzorcov.
IF(ROWS( rozsah )*COLUMNS( rozsah )=SUM(--EXACT( sample_cell , rozsah )), " text_if_match ", " text_if_not match ")Ak sa zdrojový rozsah nachádza v A2:B6 a vzorový text v C2, vzorec má nasledujúci tvar:
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=SUM(--EXACT(C2, A2:B6)), "All match", "Not all match")
Na rozdiel od bežných vzorcov programu Excel sa vzorce poľa dokončujú stlačením klávesovej skratky Ctrl + Shift + Enter . Ak je vzorec poľa zadaný správne, program Excel ho uzavrie do {východiskových zátvoriek}, ako je znázornené na obrázku:
Ako porovnať dve bunky podľa dĺžky reťazca
Niekedy môžete chcieť skontrolovať, či textové reťazce v každom riadku obsahujú rovnaký počet znakov. Vzorec na túto úlohu je veľmi jednoduchý. Najprv pomocou funkcie LEN zistíte dĺžku reťazca dvoch buniek a potom tieto čísla porovnáte.
Predpokladajme, že porovnávané reťazce sú v bunkách A2 a B2, použite niektorý z nasledujúcich vzorcov:
=LEN(A2)=LEN(B2)
Alebo
=IF(LEN(A2)=LEN(B2), "Rovnaké", "Nerovné")
Ako už viete, prvý vzorec vracia logické hodnoty TRUE alebo FALSE, zatiaľ čo druhý vzorec vypisuje vaše vlastné výsledky:
Ako ukazuje obrázok vyššie, vzorce fungujú pre textové reťazce aj čísla.
Tip. Ak dva zdanlivo rovnaké reťazce vrátia rôzne dĺžky, problém je pravdepodobne v vedúci alebo koncové priestory v jednej alebo oboch bunkách. V tomto prípade odstráňte prebytočné medzery pomocou funkcie TRIM. Podrobné vysvetlenie a príklady vzorcov nájdete tu: Ako orezávať medzery v programe Excel.
porovnanie dvoch buniek podľa výskytu konkrétneho znaku
Toto je posledný príklad v našom návode na porovnávanie reťazcov v programe Excel, ktorý ukazuje riešenie pomerne špecifickej úlohy. Predpokladajme, že máte 2 stĺpce textových reťazcov, ktoré obsahujú pre vás dôležitý znak. Vaším cieľom je skontrolovať, či dve bunky v každom riadku obsahujú rovnaký počet výskytov daného znaku.
Aby bolo všetko jasnejšie, zvážte nasledujúci príklad. Povedzme, že máte dva zoznamy odoslaných (stĺpec B) a prijatých objednávok (stĺpec C). Každý riadok obsahuje objednávky na konkrétnu položku, ktorej jedinečný identifikátor je zahrnutý vo všetkých ID objednávok a je uvedený v rovnakom riadku v stĺpci A (pozri obrázok nižšie). Chcete sa uistiť, že každý riadok obsahuje rovnaký počet odoslaných a prijatýchpoložky s týmto konkrétnym ID.
Na vyriešenie tohto problému napíšte vzorec s nasledujúcou logikou.
- Najprv pomocou funkcie SUBSTITUTE nahraďte jedinečný identifikátor ničím:
SUBSTITUTE(A1, character_to_count,"")
- Potom vypočítajte, koľkokrát sa jedinečný identifikátor vyskytuje v každej bunke. Na tento účel zistite dĺžku reťazca bez jedinečného identifikátora a odpočítajte ju od celkovej dĺžky reťazca. Táto časť sa napíše napríklad pre bunku 1 a bunku 2 jednotlivo:
LEN(bunka 1) - LEN(SUBSTITUTE(bunka 1, znak_na_počet, ""))
a
LEN(bunka 2) - LEN(SUBSTITUTE(bunka 2, znak_na_počet, ""))
- Nakoniec tieto dve čísla porovnáte tak, že medzi uvedené časti vložíte znak rovnosti (=).
LEN( bunka 2 ) - LEN(SUBSTITUTE( bunka 2 , character_to_count , ""))
V našom príklade sa jedinečný identifikátor nachádza v bunke A2 a reťazce, ktoré sa majú porovnať, sú v bunkách B2 a C2. Celý vzorec je teda nasledujúci:
=LEN(B2)-LEN(SUBSTITUTE(B2,$A2,"))=LEN(C2)-LEN(SUBSTITUTE(C2,$A2,"))
Vzorec vráti TRUE, ak bunky B2 a C2 obsahujú rovnaký počet výskytov znaku v A2, v opačnom prípade FALSE. Ak chcete, aby výsledky boli pre používateľov zmysluplnejšie, môžete vzorec vložiť do funkcie IF:
=IF(LEN(B2)-LEN(SUBSTITUTE(B2, $A2,"))=LEN(C2)-LEN(SUBSTITUTE(C2, $A2,")), "Rovná sa", "Nerovná sa")
Ako vidíte na obrázku vyššie, vzorec funguje dokonale napriek niekoľkým ďalším komplikáciám:
- Počítaný znak (jedinečný identifikátor) sa môže vyskytovať kdekoľvek v textovom reťazci.
- Reťazce obsahujú rôzny počet znakov a rôzne oddeľovače, napríklad stredník, čiarku alebo medzeru.
Takto sa porovnávajú reťazce v programe Excel. Ak sa chcete bližšie pozrieť na vzorce, o ktorých sa hovorí v tomto návode, môžete si stiahnuť pracovný list Excelu na porovnávanie reťazcov. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň.