2

У меня есть следующие данные, и мне нужно избавиться от цифр. Это означает, что мне придется найти это последнее вхождение символа "" и сохранить все, что было раньше, однако я не знаю, как написать формулу.

Длина текста варьируется, и это также может быть несколько слов. Номера не длиннее 3 цифр.

**String**
abc 61
abc 79
ac 1
ab 123
a bc 12

Спасибо!

3 ответа3

4

Попробуйте эту формулу:

=SUBSTITUTE(A1, TRIM(RIGHT(SUBSTITUTE(A1, " ", REPT(" ", 99)), 99)), "")

Результат:


(Формула на скриншоте использует точки с запятой из-за моих региональных настроек.)


Разбивая это:

  1. =SUBSTITUTE(A1, " ", REPT(" ", 99))

    Это заменяет каждое вхождение желаемого разделителя (в вашем случае, пробел) на 99 пробелов. Точное число не важно, если оно больше, чем длина самого длинного отдельного слова.

  2. =TRIM(RIGHT(..., 99))

    Это займет самые правые 99 символов (здесь важно использовать тот же номер, что и на шаге 1) и обрезать их (удаляя пробелы в начале и в конце). По сути, это дает вам текст после последнего пробела.

  3. =SUBSTITUTE(A1, ..., "")

    Поскольку вы хотели получить текст перед последним пробелом, он просто берет результат шага 2 и заменяет его пустой строкой, удаляя его. Теперь у вас осталось содержимое ячейки до последнего пробельного символа включительно . Если вы также хотите удалить завершающий пробел, вы можете запустить его через =TRIM() еще раз.

1

Я бы использовал эту формулу -

=LEFT(A1,LOOKUP(9.9999999999E+307,FIND(" ",A1,ROW($1:$1024))))

Находит последний экземпляр и использует это, чтобы определить, сколько символов печатать, начиная left

Редактировать - добавил $1:$1024 потому что по какой-то причине ROW() работал на более коротких строках.

0

ДЕРЖИТЕ ДО ПОСЛЕДНЕЙ ФУНКЦИИ:

=TRIM(LEFT(SUBSTITUTE(A1;"TARGETCHAIN";REPT(" ";LEN(A1)));LEN(A1)))

Французская версия: ;-)

=SUPPRESPACE(GAUCHE(SUBSTITUE(A1;"TARGETCHAIN";REPT(" ";NBCAR(A1)));NBCAR(A1)))

.. отлично работает, когда "TARGETCHAIN" установлен в пробел: ""

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