Формула на Excel: Пребройте общия брой думи в клетка -

Съдържание

Обща формула

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

Обобщение

За да преброите общия брой думи в клетка, можете да използвате формула, базирана на функциите LEN и SUBSTITUTE, с помощта на функцията TRIM. В показания пример формулата в клетка C5, копирана надолу, е:

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

Формулата връща броя на думите в клетка B5.

Обяснение

Excel няма специална функция за преброяване на думи в клетка. Въпреки това, с малко изобретателност, можете да създадете такава формула, като използвате функциите SUBSTITUTE и LEN, с помощта на TRIM, както е показано в примера. На високо ниво тази формула използва функцията LEN, за да преброи броя на знаците в клетката, със и без интервали, след което използва разликата, за да разбере броя на думите. Това работи, тъй като броят на думите е равен на броя на интервалите + 1, стига да има по едно интервал между всяка дума.

Първата част на формулата брои знаците в клетка B5, след премахване на излишното пространство:

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

Вътре в LEN функцията TRIM първо премахва всички излишни интервали между думите или в началото или в края на текста. Това е важно, тъй като всички допълнителни интервали ще отхвърлят броя на думите. В този случай няма допълнителни интервали, така че TRIM връща оригиналния текст директно към функцията LEN, която връща 30:

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

Към този момент имаме:

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

След това използваме функцията SUBSTITUTE, за да премахнем всички интервали от текста:

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

Забележка SUBSTITUTE е конфигуриран да търси интервал ("") и да го замени с празен низ (""). По подразбиране SUBSTITUTE ще замени всички интервали. Резултатът се доставя директно на функцията LEN, която връща броя:

LEN("AllQuietontheWesternFront") // returns 25

LEN връща 25, броят на символите остава след премахването на цялото пространство. Вече можем да опростим формулата, за да:

=30-25+1 // returns 6

което връща 6 като краен резултат, броят на думите в клетка B5.

Справяне с празни клетки

Формулата в примера ще върне 1, дори ако клетката е празна или съдържа само интервал. Това се случва, защото добавяме 1 безусловно, след преброяване на интервали между думите. За да се предпазите от този проблем, можете да адаптирате формулата, както е показано по-долу:

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

Забележете, че сме заменили 1 с този израз:

LEN(TRIM(B5))>0

Този код първо подрязва B5, след това проверява дължината. Ако B5 съдържа текст, LEN връща положително число, а изразът връща TRUE. Ако B5 е празен или съдържа само интервал, TRIM връща празен низ ("") в LEN. В този случай LEN връща нула (0), а изразът връща FALSE. Номерът е, че TRUE и FALSE се оценяват съответно на 1 и нула, когато участват в някаква математическа операция. В резултат на това изразът добавя само 1, когато има текст в B5. В противен случай добавя нула (0). Тази логика може да бъде написана и с израза на функцията IF по следния начин:

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

и резултатът ще бъде същият. Горният израз е просто по-компактен.

Интересни статии...