Excel-formel: Tæl ord i alt i en celle -

Indholdsfortegnelse

Generisk formel

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

Resumé

For at tælle de samlede ord i en celle kan du bruge en formel, der er baseret på LEN- og SUBSTITUTFunktionerne med hjælp fra TRIM-funktionen. I det viste eksempel er formlen i celle C5, kopieret ned,:

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

Formlen returnerer antallet af ord i celle B5.

Forklaring

Excel har ikke en dedikeret funktion til at tælle ord i en celle. Men med lidt opfindsomhed kan du oprette en sådan formel ved hjælp af SUBSTITUTE- og LEN-funktionerne med hjælp fra TRIM, som vist i eksemplet. På et højt niveau bruger denne formel LEN-funktionen til at tælle antallet af tegn i cellen med og uden mellemrum og bruger derefter forskellen til at finde ud af ordtællingen. Dette fungerer, fordi antallet af ord er lig med antallet af mellemrum + 1, så længe der er et mellemrum mellem hvert ord.

Den første del af formlen tæller tegnene i celle B5 efter fjernelse af ekstra plads:

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

Inde i LEN fjerner TRIM-funktionen først ekstra mellemrum mellem ord eller i begyndelsen eller slutningen af ​​teksten. Dette er vigtigt, da eventuelle ekstra mellemrum vil forkaste antallet af ord. I dette tilfælde er der ingen ekstra mellemrumstegn, så TRIM returnerer den originale tekst direkte til LEN-funktionen, som returnerer 30:

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

På dette tidspunkt har vi:

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

Dernæst bruger vi SUBSTITUTE-funktionen til at fjerne alle mellemrumstegn fra teksten:

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

Bemærk SUBSTITUTE er konfigureret til at lede efter et mellemrumstegn ("") og erstatte det med en tom streng (""). SUBSTITUTE erstatter som standard alle mellemrum. Resultatet leveres direkte til LEN-funktionen, som returnerer antallet:

LEN("AllQuietontheWesternFront") // returns 25

LEN returnerer 25, antallet af tegn, der er tilbage, efter at al plads er fjernet. Vi kan nu forenkle formlen til:

=30-25+1 // returns 6

der returnerer 6 som et endeligt resultat, antallet af ord i celle B5.

Håndtering af tomme celler

Formlen i eksemplet returnerer 1, selvom en celle er tom eller kun indeholder mellemrum. Dette sker, fordi vi tilføjer 1 ubetinget efter at have talt mellemrumstegn mellem ord. For at beskytte dig mod dette problem kan du tilpasse formlen som vist nedenfor:

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

Bemærk, at vi har erstattet 1 med dette udtryk:

LEN(TRIM(B5))>0

Denne kode trimmer først B5 og kontrollerer derefter længden. Hvis B5 indeholder tekst, returnerer LEN et positivt tal, og udtrykket returnerer SAND. Hvis B5 er tom eller kun indeholder mellemrum, returnerer TRIM en tom streng ("") til LEN. I så fald returnerer LEN nul (0), og udtrykket returnerer FALSK. Tricket er, at TRUE og FALSE vurderes til henholdsvis 1 og nul, når de er involveret i enhver matematikoperation. Som et resultat tilføjer udtrykket kun 1, når der er tekst i B5. Ellers tilføjer det nul (0). Denne logik kunne også skrives med IF-funktionserklæringen sådan:

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

og resultatet ville være det samme. Udtrykket ovenfor er simpelthen mere kompakt.

Interessante artikler...