Как извлечь подстроку в Excel (с помощью текстовых формул)

В Excel есть набор ТЕКСТОВЫХ функций, которые могут творить чудеса. С помощью этих функций вы можете выполнять все виды операций с фрагментами текста и кубиками.

Одной из распространенных задач людей, работающих с текстовыми данными, является извлечение подстроки в Excel (т.е. получение psrt текста из ячейки).

К сожалению, в Excel нет функции подстроки, которая могла бы сделать это легко. Однако это все еще можно сделать с помощью текстовых формул, а также некоторых других встроенных функций Excel.

Давайте сначала взглянем на некоторые текстовые функции, которые мы будем использовать в этом руководстве.

Функции Excel TEXT

В Excel есть ряд текстовых функций, которые упростят извлечение подстроки из исходного текста в Excel. Вот текстовые функции Excel, которые мы будем использовать в этом руководстве:

  • Функция ВПРАВО: извлекает указанное количество символов справа от текстовой строки.
  • Функция LEFT: извлекает указанное количество символов слева от текстовой строки.
  • Функция MID: извлекает указанное количество символов из указанной начальной позиции в текстовой строке.
  • Функция НАЙТИ: Находит начальную позицию указанного текста в текстовой строке.
  • Функция LEN: возвращает количество символов в текстовой строке.

Извлечь подстроку в Excel с помощью функций

Предположим, у вас есть набор данных, как показано ниже:

Это несколько случайных (но супергеройских) идентификаторов электронной почты (кроме моего), и в приведенных ниже примерах я покажу вам, как извлечь имя пользователя и имя домена с помощью текстовых функций в Excel.

Пример 1 - Извлечение имен пользователей из адресов электронной почты

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

Вот формула для получения имени пользователя:

= ЛЕВЫЙ (A2; НАЙТИ ("@"; A2) -1)

В приведенной выше формуле функция LEFT используется для извлечения имени пользователя путем определения позиции знака @ в идентификаторе. Это делается с помощью функции НАЙТИ, которая возвращает позицию символа @.

Например, в случае [email protected] FIND («@», A2) вернет 11, что является его позицией в текстовой строке.

Теперь мы используем функцию LEFT для извлечения 10 символов слева от строки (на один меньше значения, возвращаемого функцией LEFT).

Пример 2 - Извлечение доменного имени из идентификаторов электронной почты

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

Вот формула, которая сделает это:

= ВПРАВО (A2; LEN (A2) -FIND ("@"; A2))

В приведенной выше формуле мы используем ту же логику, но корректируем ее, чтобы убедиться, что мы получаем правильную строку.

Давайте снова возьмем пример с [email protected]. Функция НАЙТИ возвращает положение знака @, которое в данном случае равно 11. Теперь нам нужно извлечь все символы после @. Таким образом, мы определяем общую длину строки и вычитаем количество символов до символа @. Он дает нам количество символов, которые покрывают доменное имя справа.

Теперь мы можем просто использовать функцию ВПРАВО, чтобы получить имя домена.

Пример 3 - Извлечение доменного имени из идентификаторов электронной почты (без .com)

Чтобы извлечь подстроку из середины текстовой строки, вам необходимо определить положение маркера непосредственно перед и после подстроки.

Например, в приведенном ниже примере, чтобы получить доменное имя без части .com, маркер должен быть @ (который стоит прямо перед доменным именем) и. (что сразу после него).

Вот формула, которая извлечет только доменное имя:

= MID (A2; НАЙТИ ("@"; A2) + 1; НАЙТИ (".", A2) -НАЙТИ ("@", A2) -1) 

Функция Excel MID извлекает указанное количество символов из указанной начальной позиции. В этом примере выше FIND («@», A2) +1 указывает начальную позицию (которая находится сразу после @), а FIND («.», A2) -FIND («@», A2) -1 определяет количество символов между '@‘И‘.

Обновлять: Один из читателей William19 упомянул, что приведенная выше формула не будет работать, если в идентификаторе электронной почты есть точка (.) (Например, [email protected]). Итак, вот формула для таких случаев:

= MID (A1, НАЙТИ ("@", A1) + 1, НАЙТИ (".", A1, НАЙТИ ("@", A1)) - НАЙТИ ("@", A1) -1)

Использование текста в столбцы для извлечения подстроки в Excel

Использование функций для извлечения подстроки в Excel имеет то преимущество, что они динамичны. Если вы измените исходный текст, формула автоматически обновит результаты.

Если вам это может не понадобиться, то использование функции «Текст в столбцы» может быть быстрым и простым способом разбить текст на подстроки на основе указанных маркеров.

Вот как это сделать:

  • Выделите ячейки, в которых есть текст.
  • Перейдите в Data -> Data Tools -> Text to Columns.
  • На шаге 1 мастера преобразования текста в столбец выберите «С разделителями» и нажмите «Далее».
  • На шаге 2 установите флажок «Другое» и введите @ в поле справа от него. Это будет наш разделитель, который Excel будет использовать для разделения текста на подстроки. Вы можете увидеть предварительный просмотр данных ниже. Щелкните Далее.
  • В шаге 3 в этом случае работают общие настройки. Однако вы можете выбрать другой формат, если вы разделяете числа / даты. По умолчанию в целевой ячейке находятся исходные данные. Если вы хотите сохранить исходные данные нетронутыми, измените это на другую ячейку.
  • Щелкните Готово.

Это мгновенно даст вам два набора подстрок для каждого идентификатора электронной почты, используемого в этом примере.

Если вы хотите дополнительно разделить текст (например, разделить batman.com на batman и com), повторите с ним тот же процесс.

Использование НАЙТИ и ЗАМЕНИТЬ для извлечения текста из ячейки в Excel

НАЙТИ и ЗАМЕНИТЬ могут быть мощным методом при работе с текстом в Excel. В приведенных ниже примерах вы узнаете, как использовать НАЙТИ и ЗАМЕНИТЬ с подстановочными знаками, чтобы делать удивительные вещи в Excel.

Смотрите также: Узнайте все о подстановочных знаках в Excel.

Возьмем те же примеры идентификаторов электронной почты.

Пример 1 - Извлечение имен пользователей из адресов электронной почты

Вот шаги для извлечения имен пользователей из адресов электронной почты с помощью функции поиска и замены:

  • Скопируйте и вставьте исходные данные. Поскольку функция «Найти и заменить» работает и изменяет данные, к которым она применяется, лучше всего иметь резервную копию исходных данных.
  • Выделите данные и перейдите в раздел «Главная» -> «Редактирование» -> «Найти и выделить» -> «Заменить» (или используйте сочетание клавиш Ctrl + H).
  • В диалоговом окне «Найти и заменить» введите следующее:
    • Найти то, что: @*
    • Заменить на: (оставьте это поле пустым)
  • Нажмите «Заменить все».

Это мгновенно удалит весь текст перед @ в идентификаторах электронной почты. У вас будет результат, как показано ниже:

Как это работает ?? - В приведенном выше примере мы использовали комбинацию @ и *. Звездочка (*) - это подстановочный знак, обозначающий любое количество символов. Следовательно, @ * будет означать текстовую строку, которая начинается с @ и может иметь любое количество символов после нее. Например, в [email protected] @ * будет @ batman.com. Когда мы заменяем @ * пробелом, удаляются все символы после @ (включая @).

Пример 2 - Извлечение доменного имени из идентификаторов электронной почты

Используя ту же логику, вы можете изменить критерии «Найти», чтобы получить доменное имя.

Вот шаги:

  • Выберите данные.
  • Перейдите на главную -> Редактирование -> Найти и выбрать -> Заменить (или используйте сочетание клавиш Ctrl + H).
  • В диалоговом окне «Найти и заменить» введите следующее:
    • Найти то, что: *@
    • Заменить на: (оставьте это поле пустым)
  • Нажмите «Заменить все».

Это мгновенно удалит весь текст перед @ в идентификаторах электронной почты. У вас будет результат, как показано ниже:

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave