Формула Excel: Обрезать текст до n слов -

Содержание

Общая формула

=LEFT(txt,FIND("#",SUBSTITUTE(txt," ","#",n))-1)

Резюме

Чтобы обрезать текст до определенного количества слов, вы можете использовать формулу, основанную на функциях ЗАМЕНА, НАЙТИ и ВЛЕВО. В показанном примере формула в xxx:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)

Объяснение

Нам нужен способ разбить текст по определенному маркеру, который соответствует определенному количеству слов. В Excel нет встроенной функции для синтаксического анализа текста по слову, поэтому мы используем аргумент "instance" функции SUBSTITUTE для замены символа "n-й пробел" на знак решетки (#), а затем с помощью FIND и LEFT отбрасываете все текст после маркера.

Работая изнутри, SUBSTITUTE настроен на замену n-го символа пробела, где n - из столбца C, текст - из столбца B, а "#" жестко запрограммирован.

=SUBSTITUTE(B5," ","#",C5) =SUBSTITUTE("The cat sat on the mat."," ","#",3) ="The cat sat#on the mat."

Результирующая строка возвращается в функцию НАЙТИ, настроенную на поиск "#".

=FIND("#","The cat sat#on the mat.)

Поскольку "#" является 12-м символом в тексте, НАЙТИ возвращает 12. Мы не хотим включать сам пробел, поэтому вычитаем 1:

=LEFT(B5,12-1) =LEFT(B5,11)

ВЛЕВО возвращает окончательный результат формулы «Кот сел».

Примечание: символ решетки ("#") является произвольным и может быть заменен любым символом, который не появляется в тексте.

Добавить эллипсы или другой символ

Чтобы добавить «…» в конец обрезанного текста, используйте конкатенацию следующим образом:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)&"… "

Вы можете заменить "…" на что угодно.

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