Excel-formel: Tell antall ord i en celle -

Innholdsfortegnelse

Generisk formel

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Sammendrag

For å telle de totale ordene i en celle, kan du bruke en formel basert på funksjonene LENN og SUBSTITUT, med hjelp fra TRIM-funksjonen. I eksemplet vist er formelen i celle C5, kopiert ned:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+1

Formelen returnerer ordtellingen i celle B5.

Forklaring

Excel har ikke en dedikert funksjon for å telle ord i en celle. Men med litt oppfinnsomhet kan du lage en slik formel ved å bruke SUBSTITUTE- og LENN-funksjonene, med hjelp fra TRIM, som vist i eksemplet. På et høyt nivå bruker denne formelen LEN-funksjonen til å telle antall tegn i cellen, med og uten mellomrom, og bruker deretter differansen til å finne ut antall ord. Dette fungerer, fordi antall ord er lik antall mellomrom + 1, så lenge det er ett mellomrom mellom hvert ord.

Den første delen av formelen teller tegnene i celle B5 etter å ha fjernet ekstra plass:

=LEN(TRIM(B5)) // normalize space, count characters

Inne i LEN fjerner TRIM-funksjonen først ekstra mellomrom mellom ord, eller i begynnelsen eller slutten av teksten. Dette er viktig, siden ekstra mellomrom vil kaste bort ordtellingen. I dette tilfellet er det ingen ekstra mellomromstegn, så TRIM returnerer originalteksten direkte til LEN-funksjonen, som returnerer 30:

LEN("All Quiet on the Western Front") // returns 30

På dette punktet har vi:

=30-LEN(SUBSTITUTE(B5," ",""))+1

Deretter bruker vi SUBSTITUTE-funksjonen til å fjerne alle mellomromstegn fra teksten:

SUBSTITUTE(B5," ","") // strip all space

Merknad SUBSTITUTE er konfigurert til å se etter et mellomromstegn (""), og erstatte med en tom streng (""). Som standard erstatter SUBSTITUTE alle mellomrom. Resultatet leveres direkte til LEN-funksjonen, som returnerer antallet:

LEN("AllQuietontheWesternFront") // returns 25

LEN returnerer 25, antall tegn som gjenstår etter at all mellomrom er fjernet. Vi kan nå forenkle formelen til:

=30-25+1 // returns 6

som returnerer 6 som et endelig resultat, antall ord i celle B5.

Håndterer blanke celler

Formelen i eksemplet vil returnere 1 selv om en celle er tom, eller bare inneholder mellomrom. Dette skjer fordi vi legger til 1 ubetinget etter å ha talt mellomromstegn mellom ord. For å beskytte deg mot dette problemet, kan du tilpasse formelen som vist nedenfor:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Legg merke til at vi har erstattet 1 med dette uttrykket:

LEN(TRIM(B5))>0

Denne koden trimmer først B5, og sjekker deretter lengden. Hvis B5 inneholder tekst, returnerer LEN et positivt tall, og uttrykket returnerer SANT. Hvis B5 er tom, eller bare inneholder mellomrom, returnerer TRIM en tom streng ("") til LEN. I så fall returnerer LEN null (0) og uttrykket returnerer FALSE. Trikset er at SANT og FALSK evalueres til henholdsvis 1 og null når de er involvert i en hvilken som helst matteoperasjon. Som et resultat legger uttrykket bare til 1 når det er tekst i B5. Ellers legger det til null (0). Denne logikken kan også skrives med IF-funksjonserklæringen slik:

IF(LEN(TRIM(B5))>0,1,0)

og resultatet ville være det samme. Uttrykket ovenfor er rett og slett mer kompakt.

Interessante artikler...