![](https://cdn.wiki-base.com/9343765/excel_formula_extract_last_two_words_from_cell__2.png.webp)
Общая формула
=MID(A1,FIND("@",SUBSTITUTE(A1," ","@",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,100)
Резюме
Чтобы извлечь последние два слова из ячейки, вы можете использовать формулу, созданную с помощью нескольких функций Excel, включая MID, FIND, SUBSTITUTE и LEN. В показанном примере формула C5 имеет следующий вид:
=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)
Объяснение
По сути, эта формула использует функцию MID для извлечения символов, начиная с предпоследнего пробела. Функция MID принимает 3 аргумента: текст, с которым нужно работать, начальную позицию и количество извлекаемых символов.
Текст берется из столбца B, и количество символов может быть любым большим числом, которое обеспечит извлечение последних двух слов. Задача состоит в том, чтобы определить начальную позицию, которая находится сразу после предпоследнего пробела. Умная работа выполняется в основном с помощью функции ЗАМЕНА, у которой есть необязательный аргумент, называемый номером экземпляра. Эта функция используется для замены предпоследнего пробела в тексте символом «@», который затем находится с функцией НАЙТИ.
В приведенном ниже фрагменте кода показано, сколько пробелов в общем тексте, из которого вычитается 1.
LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1
В показанном примере в тексте 5 пробелов, поэтому приведенный выше код возвращает 4. Это число передается во внешнюю функцию SUBSTITUTE как номер экземпляра:
SUBSTITUTE(B5," ","@",4)
Это заставляет SUBSTITUTE заменять четвертый пробел на "@". Выбор @ произвольный. Вы можете использовать любой символ, которого нет в исходном тексте.
Затем FIND находит в тексте символ «@»:
FIND("@","A stitch in time@saves nine")
Результат FIND - 17, к которому добавляется 1, чтобы получить 18. Это начальная позиция, которая переходит в функцию MID как второй аргумент. Для простоты количество извлекаемых символов жестко задано как 100. Это число произвольно и может быть изменено в зависимости от ситуации.
Извлечь последние N слов из ячейки
Эту формулу можно обобщить для извлечения последних N слов из ячейки, заменив жестко запрограммированную 1 в примере на (N-1). Кроме того, если вы извлекаете много слов, вы можете заменить жестко запрограммированный аргумент в MID, 100, на большее число. Чтобы гарантировать, что число достаточно велико, вы можете просто использовать функцию LEN следующим образом:
=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))