„Excel“ formulė: suskaičiuokite visus žodžius langelyje -

Turinys

Bendroji formulė

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

Santrauka

Norėdami suskaičiuoti visus žodžius langelyje, galite naudoti formulę, pagrįstą funkcijomis LEN ir PAKEITIMAS, naudodamiesi funkcija TRIM. Parodytame pavyzdyje C5 langelio formulė, nukopijuota žemiau, yra:

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

Formulė grąžina žodžių skaičių langelyje B5.

Paaiškinimas

„Excel“ neturi specialios funkcijos, skirtos skaičiuoti žodžius langelyje. Tačiau šiek tiek išradingai galite sukurti tokią formulę naudodami PAKEITIMO ir LEN funkcijas su TRIM pagalba, kaip parodyta pavyzdyje. Aukštame lygyje ši formulė naudoja funkciją LEN, kad suskaičiuotų langelio simbolių skaičių su tarpais ir be jų, tada skirtumą naudoja žodžių skaičiui išsiaiškinti. Tai veikia, nes žodžių skaičius yra lygus tarpų skaičiui + 1, jei tarp kiekvieno žodžio yra vienas tarpas.

Pirmoje formulės dalyje skaičiuojami simboliai langelyje B5, pašalinus papildomą tarpą:

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

LEN viduje TRIM funkcija pirmiausia pašalina visus papildomus tarpus tarp žodžių arba teksto pradžioje ar pabaigoje. Tai svarbu, nes bet kokios papildomos vietos atmes žodžių skaičių. Tokiu atveju nėra papildomų tarpo simbolių, todėl TRIM grąžina pradinį tekstą tiesiai į funkciją LEN, kuri pateikia 30:

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

Šiuo metu mes turime:

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

Tada mes naudojame funkciją SUBSTITUTE, kad pašalintume visus tarpo simbolius iš teksto:

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

Pastaba SUBSTITUTE sukonfigūruota ieškoti tarpo simbolio ("") ir pakeisti tuščia eilute (""). Pagal numatytuosius nustatymus SUBSTITUTE pakeis visas tarpus. Rezultatas pateikiamas tiesiai į LEN funkciją, kuri pateikia skaičių:

LEN("AllQuietontheWesternFront") // returns 25

LEN grąžina 25 simbolių skaičių, likusį po to, kai pašalinama visa erdvė. Dabar formulę galime supaprastinti taip:

=30-25+1 // returns 6

kuris pateikia 6 galutinį rezultatą - žodžių skaičių langelyje B5.

Darbas su tuščiomis kameromis

Pavyzdyje pateikta formulė grąžins 1, net jei langelis tuščias arba jame yra tik tarpas. Taip nutinka todėl, kad pridedame 1 besąlygiškai, suskaičiavę tarpo ženklus tarp žodžių. Norėdami apsisaugoti nuo šios problemos, galite pritaikyti formulę, kaip parodyta žemiau:

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

Atkreipkite dėmesį, kad 1 pakeitėme šia išraiška:

LEN(TRIM(B5))>0

Šis kodas pirmiausia apipjausto B5, tada patikrina ilgį. Jei B5 yra tekstas, LEN pateikia teigiamą skaičių, o išraiška - TRUE. Jei B5 tuščias arba jame yra tik tarpas, TRIM grąžina LEN tuščią eilutę (""). Tokiu atveju LEN grąžina nulį (0), o išraiška - FALSE. Apgaulė yra ta, kad TRUE ir FALSE vertina atitinkamai 1 ir 0, kai dalyvauja bet kurioje matematikos operacijoje. Todėl išraiška prideda 1 tik tada, kai B5 yra teksto. Kitu atveju jis prideda nulį (0). Ši logika taip pat gali būti parašyta su IF funkcijos sakiniu taip:

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

o rezultatas būtų tas pats. Aukščiau pateiktas posakis yra tiesiog kompaktiškesnis.

Įdomios straipsniai...