Excel képlet: Számolja meg a cellában lévő összes szót -

Tartalomjegyzék

Általános képlet

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

Összegzés

A cellában lévő összes szó megszámolásához használhatja a LEN és SUBSTITUTE függvényen alapuló képletet, a TRIM függvény segítségével. A bemutatott példában a C5 cellában lévő képlet, amelyet lemásoltunk, a következő:

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

A képlet a B5 cellában adja vissza a szavak számát.

Magyarázat

Az Excelnek nincs külön funkciója a cellában lévő szavak számlálására. Kis ötletességgel azonban létrehozhat egy ilyen képletet a SUBSTITUTE és LEN függvények segítségével, a TRIM segítségével, a példában bemutatott módon. Magas szinten ez a képlet a LEN függvény segítségével számolja a cellában lévő karakterek számát szóközzel és szóköz nélkül, majd a különbség alapján kitalálja a szószámot. Ez működik, mert a szavak száma megegyezik a szóközök számával + 1, mindaddig, amíg minden szó között egy szóköz van.

A képlet első része megszámolja a karaktereket a B5 cellában, miután extra helyet távolított el:

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

A LEN belsejében a TRIM funkció először eltávolítja a szóközök között, illetve a szöveg elején vagy végén a felesleges szóközöket. Ez fontos, mivel minden további szóköz elveti a szavak számát. Ebben az esetben nincsenek szóközök, így a TRIM az eredeti szöveget közvetlenül a LEN függvénynek adja vissza, amely 30-at ad vissza:

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

Ezen a ponton:

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

Ezután a SUBSTITUTE funkcióval eltávolítunk minden szóközt a szövegből:

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

Megjegyzés A SUBSTITUTE úgy van konfigurálva, hogy szóközt ("") keressen, és helyettesítse egy üres karakterlánccal (""). Alapértelmezés szerint a SUBSTITUTE helyettesíti az összes szóközt. Az eredmény közvetlenül a LEN függvénybe kerül, amely visszaadja a számlálást:

LEN("AllQuietontheWesternFront") // returns 25

A LEN 25-öt ad vissza, a maradék karakterek számát, miután az összes hely el lett távolítva. Most egyszerűsíthetjük a képletet:

=30-25+1 // returns 6

amely végeredményként 6-ot ad vissza, a B5 cellában lévő szavak számát.

Üres cellák kezelése

A példában szereplő képlet akkor is 1-et ad vissza, ha egy cella üres, vagy csak szóközt tartalmaz. Ez azért történik, mert feltétel nélkül hozzáadunk 1-et, miután szóközöket számoltunk szóközökkel. A probléma elkerülése érdekében az alábbi képletet alkalmazhatja:

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

Figyeljük meg, hogy az 1-et ezzel a kifejezéssel helyettesítettük:

LEN(TRIM(B5))>0

Ez a kód először a B5-et vágja le, majd ellenőrzi a hosszát. Ha a B5 szöveget tartalmaz, a LEN pozitív számot ad vissza, a kifejezés pedig IGAZ. Ha a B5 üres, vagy csak szóközt tartalmaz, akkor a TRIM egy üres karakterláncot ("") ad vissza a LEN-nek. Ebben az esetben a LEN nulla (0), a kifejezés pedig HAMIS. A trükk az, hogy a TRUE és a FALSE értéke 1, illetve nulla lesz, ha bármilyen matematikai műveletbe belefognak. Ennek eredményeként a kifejezés csak akkor ad 1-et, ha van szöveg a B5-ben. Ellenkező esetben nulla (0) lesz. Ez a logika az IF függvény utasítással is így írható:

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

és az eredmény ugyanaz lenne. A fenti kifejezés egyszerűen tömörebb.

érdekes cikkek...