Вопрос или проблема
Я использую более старую версию Excel, поэтому не могу воспользоваться многими новыми формулами, которые могли бы облегчить мне жизнь.
Я сейчас пытаюсь получить весь текст после определенного символа.
Пример ‘12345678 CustomerName
Желаемый результат – это “CustomerName”
Начальные цифры могут изменяться по длине.
Я уже пробовал функцию Textafter(), но она не работает. Мы используем версию 2019 года, и функция textafter не появляется в списках доступных. Я получаю ошибку #Name?
Если это лучшая формула или есть что-то лучшее, что я могу использовать?
=IFERROR(MID(K2,LEN(K2),SEARCH(” “,K2,LEN(K2))),MID(K2,9,30))
Я проводил дополнительные исследования и наткнулся на этот источник https://community.smartsheet.com/discussion/97017/how-can-i-find-a-position-of-a-character-in-a-string, но это по-прежнему кажется более сложным, чем, как мне кажется, должно быть.
Если вы ищете текст после пробела
, и если пробела нет, текст с 9-го
символа, то вот как вы можете это сделать:
=IFERROR(MID(K2,FIND(" ",K2)+1,LEN(K2)),MID(K2,9,LEN(K2)))
Или немного более короткая версия:
=MID(K2,IFERROR(FIND(" ",K2)+1,9),LEN(K2))
Другой способ может быть:
=REPLACE(K2,1,IFERROR(FIND(" ",K2),8),)
Вместо того, чтобы начинать с найденного символа пробела, он удаляет символы до него. Если не найдено, то удаляет первые 8 символов.
Чтобы найти строку символов, которая начинается после последней цифры в строке, вы можете использовать:
=TRIM(MID(A1,1+MAX(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A1),0)),255))
Это
FIND
находит позицию последней цифры в строке- добавляет один (1), чтобы получить первый нецифровой символ
- Использует
MID
, чтобы вернуть нецифровую часть строки TRIM
, чтобы удалить любые ведущие/замыкающие пробелы
Ответ или решение
Для извлечения текста после определенного символа или слова в Excel 2019, когда недоступны более новые функции, такие как TEXTAFTER(), можно использовать комбинацию функций MID, FIND и IFERROR. Ниже приведены несколько подходов для решения вашей задачи.
Пример 1: Извлечение текста после первого пробела
Если вам нужно извлечь текст после первого пробела в строке, например, 12345678 CustomerName
, вы можете использовать следующую формулу:
=MID(K2, FIND(" ", K2) + 1, LEN(K2) - FIND(" ", K2))
Пример 2: Извлечение текста по умолчанию после 8 символов, если пробел не найден
Если пробел отсутствует и вы хотите получить текст, начиная с девятого символа, можно использовать такую формулу:
=IFERROR(MID(K2, FIND(" ", K2) + 1, LEN(K2)), MID(K2, 9, LEN(K2) - 8))
Или более компактная версия:
=MID(K2, IFERROR(FIND(" ", K2) + 1, 9), LEN(K2) - 8)
Пример 3: Удаление символов до пробела
Если вы хотите удалить все символы до пробела (или до 8 символов, если пробел не найден), можно воспользоваться следующей формулой:
=REPLACE(K2, 1, IFERROR(FIND(" ", K2), 8), "")
Пример 4: Извлечение текста после последней цифры
Если ваша цель — извлечь текст, начинающийся после последней цифры в строке, вы можете использовать следующую формулу массива (для её ввода необходимо нажать Ctrl + Shift + Enter):
=TRIM(MID(K2, 1 + MAX(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9}, K2), 0)), 255))
Эта формула находит индекс последней цифры, добавляет 1, чтобы получить позицию следующего символа, а затем использует MID для извлечения оставшейся части строки. Функция TRIM удаляет любые лишние пробелы.
Заключение
Выбор подходящей формулы зависит от конкретной задачи и формата ваших данных. Эти примеры могут быть адаптированы под ваши нужды. Если у вас есть более специфические требования или данные, не стесняйтесь уточнять, и я помогу вам найти оптимальное решение.