Формула Excel: извлечь последние два слова из ячейки -

Содержание

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

=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))

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