
Общая формула
=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 - количество слов, которые нужно удалить.