Формула Excel: Удалить последнее слово -

Содержание

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

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Резюме

Чтобы удалить последнее слово из текстовой строки, вы можете использовать формулу, основанную на функции MID, с помощью функций SUBSTITUTE, LEN и FIND. В показанном примере формула в ячейке B5:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Объяснение

Эта формула использует функцию MID для удаления последнего слова из текстовой строки. Основная задача - выяснить, где начинается последнее слово.

Формула немного запутана, но шаги просты. Сначала мы подсчитываем, сколько пробелов существует в тексте, используя LEN и SUBSTITUTE. Затем мы используем несколько непонятный аргумент «instance» в функции SUBSTITUTE, чтобы заменить последний пробел тильдой (~). Наконец, мы используем FIND, чтобы выяснить, где находится тильда, и функцию MID, чтобы отбросить все, что находится после тильды.

Работая наизнанку, мы используем функции LEN и SUBSTITUTE, чтобы подсчитать, сколько пробелов появляется в следующем:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Для текста в B5 это возвращает 6. Эта страница объясняет эту часть формулы более подробно. Это говорит нам, что мы хотим вырезать текст до шестого пробела.

Примечание: если слова разделены более чем одним пробелом, вам нужно сначала нормализовать пробелы с помощью функции TRIM.

Затем число 6 вставляется в другую ЗАМЕНА как "номер экземпляра":

SUBSTITUTE(B5," ","~",6) // insert tilde

Здесь мы заменяем 6-й экземпляр пробела ("") тильдой (~). После запуска SUBSTITUTE он возвращает эту строку:

"It's been seven hours and fifteen~days"

Примечание: мы используем тильду (~) только потому, что это редко встречающийся символ. Вы можете использовать любой символ, который вам нравится, если он не появляется в исходном тексте.

Затем мы используем функцию НАЙТИ, чтобы найти тильду:

FIND("~","It's been seven hours and fifteen~days")-1

НАЙТИ возвращает 34, поскольку тильда - это 34-й символ. Мы вычитаем 1 из этого числа, потому что мы не хотим включать последний пробел в окончательный результат. Теперь мы можем упростить формулу до:

=MID(B5,1,33) // extract final text

Затем функция MID возвращает символы 1-33:

"It's been seven hours and fifteen"

С настраиваемым разделителем

Та же формула может использоваться с другим разделителем. Например, чтобы удалить весь текст после последней косой черты "/", вы можете использовать:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Удалить последние n слов

Вы можете адаптировать формулу, чтобы удалить последние 2 слова, последние 3 слова и т. Д. Общая форма:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

где d - разделитель, а n - количество слов, которые нужно удалить.

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