1

Использование операторов для простой арифметики 4m 44s

создание новой базы данных 3м 2с

Это два значения в двух ячейках Excel.

Я хочу удалить последние два слова, то есть 4m 44s из каждой ячейки, чтобы результат был:

Использование операторов для простой арифметики

создание новой базы данных

=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1)))

но эта функция удаляет только последнее слово. Как удалить последние два слова из каждой ячейки?

2 ответа2

1

Возможно, у вас в конце текста есть пробелы, потому что, как говорит Excellll, все должно работать иначе. Попробуйте добавить некоторые функции TRIM чтобы удалить завершающие пробелы (TRIM также удалит все начальные пробелы и превратит любые двойные внутренние пробелы в одиночные пробелы ..... но я предполагаю, что это не будет проблемой?)

=LEFT(TRIM(A1),FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))-1)))

или вот другой (более короткий) способ,

=TRIM(LEFT(A1,FIND(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",9)),18)),A1)-1))

1

Вот формула, которая сделает это. Это немного долго, но это сделает свое дело:

=LEFT(A1,FIND("@@REPLACE@@",SUBSTITUTE(TRIM(A1)," ","@@REPLACE@@",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))-1))-1)

Формула работает, используя функцию SUBSTITUTE для замены пробела следующего за последним на какой-то непонятный текст для замены, который вряд ли можно найти где-либо еще в тексте ("@@ REPLACE @@" в примере). Тогда функция LEFT может вернуть все слева от текста замены. Причина для этого заключается в том, что FIND не позволяет вам указывать экземпляр пробела, а вместо этого отправляет начальную позицию, что в данном случае бесполезно. SUBSTITUTE однако, позволяет вам указать номер экземпляра пространства, поэтому он и используется.

Ожидайте ошибку, которая будет возвращена для текста с двумя или менее словами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .