Excel vzorec: Kategorizace textu pomocí klíčových slov -

Obsah

Obecný vzorec

(=INDEX(categories,MATCH(TRUE,ISNUMBER(SEARCH(keywords,text)),0)))

souhrn

Chcete-li kategorizovat text pomocí klíčových slov se shodou „obsahuje“, můžete použít funkci HLEDAT s pomocí INDEXU a ZÁPASU. V zobrazeném příkladu je vzorec v C5:

(=INDEX(categories,MATCH(TRUE,ISNUMBER(SEARCH(keywords,B5)),0)))

kde klíčová slova je pojmenovaný rozsah E5: E14 a kategorie je pojmenovaný rozsah F5: F14.

Poznámka: toto je maticový vzorec a musí být zadán pomocí kláves Control + Shift + Enter.

Vysvětlení

Jádrem je funkce INDEX a MATCH.

Uvnitř funkce MATCH jsme použít funkci Najít pro vyhledání buňky ve sloupci B pro každé klíčové slovo v památkově chráněné pojmenované oblasti klíčových slov (E5: E14):

SEARCH(keywords,B5)

Protože hledáme více položek (v klíčových slovech pojmenovaného rozsahu ), získáme zpět několik výsledků, jako je tento:

(#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;24;#VALUE!;#VALUE!;#VALUE!)

Hodnota! dojde k chybě, když SEARCH nemůže najít text. Když SEARCH najde shodu, vrátí číslo, které odpovídá pozici textu uvnitř buňky.

Chcete-li tyto výsledky změnit na použitelnější formát, použijeme funkci ISNUMBER, která převede všechny hodnoty na TRUE / FALSE takto:

(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE)

Toto pole jde do funkce MATCH jako lookup_array, s lookup_value nastavenou na TRUE. MATCH vrací pozici první TRUE, kterou najde v poli (v tomto případě 7), které je poskytováno funkci INDEX jako row_num:

=INDEX(categories,7)

INDEX vrací 7. položku v kategoriích „Auto“ jako konečný výsledek.

S XLOOKUPEM

Pomocí funkce XLOOKUP lze tento vzorec trochu zjednodušit. XLOOKUP může využívat stejnou logiku použitou uvnitř výše uvedené funkce MATCH, takže ekvivalentní vzorec je:

=XLOOKUP(TRUE,ISNUMBER(SEARCH(keywords,B5)),categories)

XLOOKUP vyhledá první TRUE v poli a vrátí odpovídající hodnotu z kategorií .

Předcházení falešným shodám

Jedním z problémů tohoto přístupu je, že můžete získat falešné shody z podřetězců, které se objevují uvnitř delších slov. Pokud se například pokusíte najít výraz „dr“, můžete také najít „Andrea“, „drink“, „suchý“ atd., Protože uvnitř těchto slov se objevuje „dr“. K tomu dochází, protože SEARCH automaticky provede shodu „obsahuje“.

Chcete-li rychle zaseknout, můžete přidat hledaná slova (např. „Dr“ nebo „dr“), abyste zabránili zachycení slova „dr“ v jiném slově. To se ale nezdaří, pokud se „dr“ objeví jako první nebo poslední v buňce, nebo se objeví s interpunkcí atd.

Pokud potřebujete přesnější řešení, jednou z možností je normalizovat text nejprve ve sloupci pomocníka a současně přidat úvodní a koncový prostor. Poté můžete hledat celá slova obklopená mezerami.

Zajímavé články...