Excel-formel: Telle bestemte ord i en celle -

Innholdsfortegnelse

Generisk formel

=(LEN(text)-LEN(SUBSTITUTE(text,word,"")))/LEN(word)

Sammendrag

Hvis du trenger å telle hvor mange ganger et bestemt ord (eller en hvilken som helst understreng) vises i en celle, kan du bruke en formel som bruker SUBSTITUTE og LENN. I den generiske formen av formelen ovenfor representerer "tekst" en celle som inneholder tekst, og "ord" representerer ordet eller understrengen som telles. I eksemplet bruker vi denne formelen:

=(LEN(B4)-LEN(SUBSTITUTE(B4,C4,"")))/LEN(C4)

Forklaring

B4 er cellen vi teller ord i, og C4 inneholder understrengen (ord eller hvilken som helst understreng) du teller.

SUBSTITUTE fjerner understrengen fra originalteksten, og LEN beregner lengden på teksten uten understrengen. Dette tallet trekkes deretter fra lengden på originalteksten. Resultatet er antall tegn som ble fjernet av SUBSTITUTE.

Til slutt divideres antall tegn som er fjernet med lengden på undergrunnen. Så hvis en understreng er 5 tegn lang, og det mangler 10 tegn etter at den er fjernet fra originalteksten, vet vi at understrengen dukket opp to ganger i originalteksten.

Håndtering av saken

SUBSTITUTE er en saksfølsom funksjon, så den vil matche store og små bokstaver når du kjører en erstatning. Hvis du trenger å telle både store og små bokstaver av et ord eller en delstreng, kan du bruke OPPER-funksjonen i SUBSTITUTE for å konvertere teksten til store bokstaver før du kjører erstatningen:

=(LEN(B4)-LEN(SUBSTITUTE(UPPER(B4),UPPER(C4),"")))/LEN(C4)

Fordi denne formelen konverterer understrengen og teksten til store bokstaver før du utfører erstatningen, vil den i alle fall fungere like bra med tekst.

Håndteringsproblemer

Det er vanskelig å telle ord i Excel fordi Excel ikke støtter vanlige uttrykk. Som et resultat er det vanskelig å målrette ordene du vil telle nøyaktig, mens du ignorerer underlag og andre partielle treff (dvs. finn "rev", men ikke "rev"). Tegnsetting og saksvariasjoner gjør dette problemet ganske utfordrende.

En løsning er å bruke en annen formel i en hjelpekolonne for å "normalisere tekst" som et første trinn. Bruk deretter formelen på denne siden til å telle ord innpakket med mellomromstegn for å få en nøyaktig telling (dvs. du kan se etter "rev" i normalisert tekst.

Merk: denne tilnærmingen er bare så god som den normaliserte teksten du kan lage, og du må kanskje justere normaliseringsformelen mange ganger for å få det resultatet du trenger.

Interessante artikler...