Excel-kaava: Laske sanojen kokonaismäärä solussa

Sisällysluettelo

Yleinen kaava

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

Yhteenveto

Voit laskea solun sanojen kokonaismäärän käyttämällä kaavaa, joka perustuu LEN- ja SUBSTITUTE-funktioihin, TRIM-toiminnon avulla. Esitetyssä esimerkissä solun C5 kaava on kopioitu alaspäin:

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

Kaava palauttaa sanamäärän solussa B5.

Selitys

Excelillä ei ole erillistä toimintoa sanojen laskemiseen solussa. Pienellä kekseliäisyydellä voit kuitenkin luoda tällaisen kaavan käyttämällä SUBSTITUTE ja LEN -toimintoja TRIMin avulla, kuten esimerkissä on esitetty. Korkealla tasolla tämä kaava käyttää LEN-funktiota laskemaan solun merkkien lukumäärän välilyönnillä ja ilman, ja käyttää sitten eroa sanamäärän selvittämiseen. Tämä toimii, koska sanamäärä on yhtä suuri kuin välilyöntien määrä + 1, kunhan sanojen välillä on yksi välilyönti.

Kaavan ensimmäinen osa laskee merkit solussa B5 ylimääräisen tilan poistamisen jälkeen:

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

LEN: n sisällä TRIM-toiminto poistaa ensin kaikki ylimääräiset välilyönnit sanojen välillä tai tekstin alussa tai lopussa. Tämä on tärkeää, koska kaikki ylimääräiset välilyönnit heittävät sanamäärän. Tässä tapauksessa ei ole ylimääräisiä välilyöntejä, joten TRIM palauttaa alkuperäisen tekstin suoraan LEN-funktiolle, joka palauttaa 30:

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

Tässä vaiheessa meillä on:

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

Seuraavaksi käytämme SUBSTITUTE-toimintoa kaikkien välilyöntien poistamiseen tekstistä:

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

Huomautus SUBSTITUTE on määritetty etsimään välilyöntiä ("") ja korvaamaan tyhjä merkkijono (""). Oletuksena SUBSTITUTE korvaa kaikki välilyönnit. Tulos toimitetaan suoraan LEN-funktiolle, joka palauttaa laskennan:

LEN("AllQuietontheWesternFront") // returns 25

LEN palauttaa 25, jäljellä olevien merkkien määrän, kun koko tila on poistettu. Voimme nyt yksinkertaistaa kaavaa seuraavasti:

=30-25+1 // returns 6

joka palauttaa lopputuloksena 6 sanan määrän solussa B5.

Tyhjien solujen käsittely

Esimerkin kaava palauttaa arvon 1, vaikka solu on tyhjä tai sisältää vain välilyönnin. Tämä tapahtuu, koska lisäämme yhden ehdoitta, kun olemme laskeneet välilyöntejä sanojen väliin. Voit estää tämän ongelman mukauttamalla kaavaa alla olevan kuvan mukaisesti:

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

Huomaa, että olemme korvanneet 1 tällä lausekkeella:

LEN(TRIM(B5))>0

Tämä koodi leikkaa ensin B5: n ja tarkistaa sitten pituuden. Jos B5 sisältää tekstiä, LEN palauttaa positiivisen luvun ja lauseke palauttaa TOSI. Jos B5 on tyhjä tai sisältää vain välilyönnin, TRIM palauttaa tyhjän merkkijonon ("") LEN: ään. Siinä tapauksessa LEN palauttaa nollan (0) ja lauseke palauttaa FALSE. Temppu on, että TOSI ja EPÄTOSI arvioivat vastaavasti 1 ja nolla, kun ne osallistuvat mihin tahansa matemaattiseen operaatioon. Tämän seurauksena lauseke lisää vain yhden, kun B5: ssä on tekstiä. Muussa tapauksessa se lisää nollan (0). Tämä logiikka voidaan kirjoittaa myös IF-funktion lauseella seuraavasti:

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

ja tulos olisi sama. Yllä oleva ilmaus on yksinkertaisesti pienempi.

Mielenkiintoisia artikkeleita...