
Á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.