Excel-formel: Räkna totalt antal ord i en cell -

Innehållsförteckning

Generisk formel

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

Sammanfattning

För att räkna de totala orden i en cell kan du använda en formel baserad på LEN- och SUBSTITUTFunktionerna, med hjälp av TRIM-funktionen. I exemplet som visas är formeln i cell C5, kopierad ned:

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

Formeln returnerar ordräkningen i cell B5.

Förklaring

Excel har ingen särskild funktion för att räkna ord i en cell. Men med lite uppfinningsrikedom kan du skapa en sådan formel med SUBSTITUTE- och LEN-funktionerna, med hjälp av TRIM, som visas i exemplet. På hög nivå använder denna formel LEN-funktionen för att räkna antalet tecken i cellen, med och utan mellanslag, och använder sedan skillnaden för att räkna ut ordantalet. Detta fungerar, eftersom ordräkningen är lika med antalet mellanslag + 1, så länge det finns ett mellanslag mellan varje ord.

Den första delen av formeln räknar tecknen i cell B5 efter att ha tagit bort extra utrymme:

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

Inuti LEN tar TRIM-funktionen bort alla extra mellanrum mellan ord eller i början eller slutet av texten. Detta är viktigt eftersom extra mellanslag slänger bort ordräkningen. I det här fallet finns det inga extra mellanslagstecken, så TRIM returnerar originaltexten direkt till LEN-funktionen, som returnerar 30:

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

Vid denna tidpunkt har vi:

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

Därefter använder vi SUBSTITUTE-funktionen för att ta bort alla mellanslagstecken från texten:

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

Observera SUBSTITUTE är konfigurerad för att leta efter ett mellanslagstecken ("") och ersätta det med en tom sträng (""). Som standard ersätter SUBSTITUTE alla mellanslag. Resultatet levereras direkt till LEN-funktionen, som returnerar antalet:

LEN("AllQuietontheWesternFront") // returns 25

LEN returnerar 25, antalet tecken kvar efter att allt utrymme har tagits bort. Vi kan nu förenkla formeln till:

=30-25+1 // returns 6

som returnerar 6 som slutresultat, antalet ord i cell B5.

Hantera tomma celler

Formeln i exemplet returnerar 1 även om en cell är tom eller endast innehåller mellanslag. Detta händer eftersom vi lägger till 1 ovillkorligt efter att ha räknat mellanslagstecken mellan ord. För att skydda dig mot detta problem kan du anpassa formeln enligt nedan:

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

Observera att vi har ersatt 1 med detta uttryck:

LEN(TRIM(B5))>0

Denna kod trimmar först B5 och kontrollerar sedan längden. Om B5 innehåller text returnerar LEN ett positivt tal och uttrycket returnerar SANT. Om B5 är tomt eller endast innehåller mellanslag returnerar TRIM en tom sträng ("") till LEN. I så fall returnerar LEN noll (0) och uttrycket returnerar FALSKT. Tricket är att TRUE och FALSE värderas till 1 respektive noll när de är involverade i någon matematisk operation. Som ett resultat lägger uttrycket bara till 1 när det finns text i B5. Annars lägger den till noll (0). Denna logik kan också skrivas med IF-funktionsuttalandet så här:

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

och resultatet skulle bli detsamma. Uttrycket ovan är helt enkelt mer kompakt.

Intressanta artiklar...