Excel найти текст между символами

Полное руководство о том, как найти и извлечь текст из строки между двумя символами или словами в Excel и Google Sheets.

При работе с длинными строками часто может потребоваться извлечь из них определенную часть для более тщательного изучения. В Microsoft Excel и Google Sheets есть несколько способов получить текст между двумя символами или подстроками. В этой статье мы обсудим самые быстрые и эффективные из них.

Чтобы извлечь текст между двумя разными символами, вы можете использовать эту общую формулу:

СРЕДНЯЯ(клеткаПОИСК(символ1, клетка) + 1, ПОИСК(char2, клетка) — ПОИСК(символ1, клетка) — 1)

Например, чтобы получить текст в круглых скобках из строки в A2, используйте следующую формулу:

=СРЕДН(A2, ПОИСК(«(«, A2)+1, ПОИСК(«)», A2) — ПОИСК(«(«, A2) -1)
Извлечение текста между двумя символами в Excel

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

Полезный совет! Если вы имеете дело с числами и хотите, чтобы результатом было число, а не числовая строка, то дополнительно выполните какое-нибудь арифметическое действие, которое не изменит результат, например, прибавьте 0 или умножьте на 1.

Например:

=СРЕДН(A2, ПОИСК(«(«, A2)+1, ПОИСК(«)», A2) — ПОИСК(«(«, A2) -1) *1

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

Как работает эта формула

В основе этой формулы лежит функция MID, которая извлекает заданное количество символов из строки, начиная с определенной позиции:

MID(текст, start_num, num_chars)

Текст это ячейка, содержащая исходную строку (A2).

Исходное положение (start_num) — это символ, который следует сразу за открывающей скобкой. Итак, вы находите позицию «(» с помощью функции ПОИСК и добавляете к ней 1:

ПОИСК(«(«, A2) +1

Чтобы выяснить, сколько символов нужно извлечь (num_chars), вы определяете положение закрывающих скобок и вычитаете из него положение открывающих скобок. Кроме того, вы вычитаете 1, чтобы исключить вторые круглые скобки:

ПОИСК(«)», A2) — ПОИСК(«(«, A2) -1

Имея все необходимые данные, функция MID выдает именно то, что вам нужно — в нашем случае текст в скобках:

СРЕДНЯЯ(A2, 19, 2)

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

Извлечь текст между двумя строками/словами в Excel

Чтобы втянуть текст между двумя строками или словами, формула очень похожа на ту, что обсуждалась выше. Требуется только пара различных настроек: чтобы удалить слова-разделители из конечного результата, вы добавляете и вычитаете длину самих слов, возвращаемых функцией LEN:

СРЕДНЯЯ(клеткаПОИСК(слово1, клетка) + ДЛСТР(слово1), ПОИСК(слово2, клетка) — ПОИСК(слово1, клетка) — ЛЕН(слово1))

Например, для извлечения подстрок между словами «начало» и «конец» используется следующая формула:

=ЕСЛИОШИБКА(СРЕДН(A2, ПОИСК(«начало», A2) + ДЛСТР(«начало»), ПОИСК(«конец», A2) — ПОИСК(«начало», A2) — ДЛСТР(«начало»)), » «)
Формула для извлечения текста между двумя словами в Excel

Советы:

  • Чтобы избежать начальных и конечных пробелов в результатах, включите пробел после слова 1, такого как «начало», и перед словом 2, таким как «конец». Кроме того, вы можете использовать функцию TRIM, чтобы избавиться от лишних пробелов.
  • Если одно или оба указанных слова не найдены в исходной строке, формула вернет ошибку #ЗНАЧ! ошибка. Чтобы перехватить эту ошибку и заменить ее пустой строкой («»), используйте функцию ЕСЛИОШИБКА, как показано в приведенном выше примере.

Получить текст между двумя экземплярами одного и того же символа в Excel

Общая формула для извлечения текста из строки между двумя вхождениями одного и того же символа:

СРЕДНЯЯ(клеткаПОИСК(уголь, клетка) +1, ПОИСК (уголь, клеткаПОИСК (уголь, клетка) +1) — ПОИСК (уголь, клетка)-1)

Например, чтобы извлечь текст, заключенный в двойные кавычки, из строки в ячейке A2, введите следующую формулу в ячейке B2:

=СРЕДН(A2, ПОИСК(«»»», A2) +1, ПОИСК(«»»», A2, ПОИСК(«»»»,A2) +1) — ПОИСК(«»»», A2) -1 )

Обратите внимание на то, как вы ищете двойную кавычку в Excel. Между внешними кавычками вводится еще один набор кавычек. Первая кавычка используется, чтобы избежать особого значения второй кавычки, так что «» между крайними кавычками означает одинарную двойную кавычку.

Другой способ поставить двойную кавычку («») в формулу Excel — использовать функцию СИМВОЛ с кодовым номером 34.

=MID(A2, ПОИСК(СИМВОЛ(34), A2) +1, ПОИСК(СИМВОЛ(34), A2, ПОИСК(СИМВОЛ(34),A2) +1) — ПОИСК(СИМВОЛ(34), A2) -1 )
Получить текст между двойными кавычками.

Как работает эта формула

Первые два аргумента этой формулы MID не вызывают вопросов:

  • A2 — это текстовая строка для поиска, а
  • SEARCH(«»»», A2) +1 — начальный номер, т.е. позиция первой кавычки +1.

Самая сложная часть — вычисление количества символов для извлечения (num_chars):

Во-первых, мы находим позицию второй цитаты, вложив одну функцию ПОИСК в другую.

ПОИСК(«»»», A2, ПОИСК(«»»»,A2) +1)

Из позиции 2-й цитаты (в А2 это 27) вычесть позицию 1-й цитаты (в А2 это 10), а затем вычесть 1, чтобы исключить из результата саму цитату:

ПОИСК(«»»», A2, ПОИСК(«»»»,A2) +1) — ПОИСК(«»»», A2) -1

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

=СРЕДНЕЕ(A2, 10+1, 16)

Проще говоря, MID ищет ячейку A2, начиная с символа после первой кавычки (10+1), и возвращает следующие 16 символов.

Формула Excel с учетом регистра для извлечения текста между символами

Как вы, наверное, знаете, в Microsoft Excel есть две функции для поиска строк: ПОИСК (без учета регистра) и НАЙТИ (с учетом регистра).

В ситуации, когда разделителем является буква в конкретном регистре, просто используйте НАЙТИ вместо ПОИСК. Чтобы проиллюстрировать разницу, давайте сравним две приведенные ниже формулы.

Предположим, вы хотите извлечь из строки в A2 число между двумя заглавными буквами «X».

Функция ПОИСК в этом случае работает некорректно, так как не различает «х» и «Х»:

=СРЕДН(A2, ПОИСК(«X», A2) +1, ПОИСК(«X», A2, ПОИСК(«X»,A2) +1) — ПОИСК(«X», A2) -1) +0

В результате извлекается текст между «x», а не между «X», который мы ищем:
Формула без учета регистра для получения текста между двумя символами

В то время как функция НАЙТИ с учетом регистра работает прекрасно:

=СРЕДН(A2, НАЙТИ(«X», A2) +1, НАЙТИ(«X», A2, НАЙТИ(«X»,A2) +1) — НАЙТИ(«X», A2) -1) +0

И приносит именно тот результат, который нам нужен:
Формула с учетом регистра для извлечения текста между двумя символами

В Excel 365 вы можете легко получить текст между символами, используя функции ТЕКСТПЕРЕД и ТЕКСТПОСЛЕ.

ТЕКСТПЕРЕД(ТЕКСТПОСЛЕ(клетка, символ1), char2)

Например, чтобы извлечь текст между скобками, формула проста:

=ТЕКСТПЕРЕД(ТЕКСТПОСЛЕ(A2, «(«), «)»)
Простая формула для извлечения текста между скобками

Эта формула также хорошо работает для извлечения текста между двумя вхождениями одного и того же символа.

Например, чтобы получить текст в двойных кавычках, формула принимает следующий вид:

=ТЕКСТПЕРЕД(ТЕКСТПОСЛЕ(A2, «»»»), «»»»)
Формула Excel 365 для получения текста между двойными кавычками

По умолчанию обе функции TEXTAFTER и TEXTBEFORE чувствительны к регистру. Чтобы отключить чувствительность к регистру, вы устанавливаете 4-й аргумент (match_mode) на 1 или ИСТИНА.

Например, приведенная ниже формула без учета регистра распознает как строчную букву «x», так и прописную букву «X» в качестве разделителя:

=ТЕКСТПЕРЕД(ТЕКСТПОСЛЕ(A2, «x», ,1), «x», ,1) +0
Формула без учета регистра для извлечения текста между символами в Excel 365

Как работает эта формула

Работая изнутри наружу, вы используете функцию TEXTAFTER для извлечения текста после открывающих скобок:

ТЕКСТ ПОСЛЕ(A2, «(«)

И передать возвращенную подстроку функции TEXTBEFORE, попросив ее найти закрывающие круглые скобки в этой подстроке и вернуть текст перед ней.

TEXTBEFORE(«Непредвиденная ошибка)», «)»)

Сделанный 🙂

Получить текст между двумя символами в Google Sheets

Чтобы найти текст между двумя символами в Google Sheets, вам не нужно изобретать велосипед 🙂

Комбинации MID SEARCH, используемые в Excel, безупречно работают и в электронных таблицах Google.

Например, чтобы получить текст в квадратных скобках, используйте следующую формулу:

=СРЕДН(A2, ПОИСК(«[«, A2)+1, SEARCH(«]», А2) — ПОИСК(«[«А2)-1)
Получение текста в скобках

Чтобы извлечь текст между двумя запятыми, используйте следующую формулу:
Извлечение текста между двумя запятыми

Вот как можно извлечь текст между двумя символами или словами в электронных таблицах Microsoft Excel и Google. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Практические рабочие тетради

Извлечь текст между символами в Excel (файл .xlsx)
Получить текст между символами в Google Sheets (онлайн лист)

Вас также могут заинтересовать:

Skip to content

Как извлечь текст из ячейки при помощи функции ПСТР и специальных инструментов

ПСТР — одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста. 

В этом руководстве мы обсудим синтаксис и особенности функции Excel ПСТР (в английской версии – MID), а затем вы узнаете несколько вариантов творческого её использования для выполнения сложных задач.

  • Синтаксис и особенности
  • Если 2 слова — извлекаем имя и фамилию
  • Как получить текст между двумя определенными символами
  • Как извлечь любое по счету слово
  • Получаем слово с нужными буквами или символами
  • Как заставить ПСТР возвращать число?
  • Использование регулярных выражений для извлечения части текста
  • Как извлечь текст из ячейки с помощью Ultimate Suite

Cинтаксис.

Функция ПСТР возвращает указанное количество знаков, начиная с указанной вами позиции.

Функция Excel ПСТР имеет следующие аргументы:

ПСТР(текст; начальная_позиция; количество_знаков)

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

Все 3 аргумента обязательны.

Например, чтобы извлечь 6 знаков из A2, начиная с 17-го, используйте эту формулу:

=ПСТР(A2;17;6)

Результат может выглядеть примерно так:

5 вещей, которые вы должны знать о функции Excel ПСТР

Как вы только что убедились, в использовании функции ПСТР в Excel нет ничего страшного. И помня следующие простые факты, вы избежите наиболее распространенных ошибок.

  1. Функция ПСТР всегда возвращает текстовую строку, даже если извлеченная подстрока содержит только цифры. Это может иметь большое значение, если вы хотите использовать результат формулы ПСТР в других вычислениях. Чтобы преобразовать цифры в число, применяйте ПСТР в сочетании с функцией ЗНАЧЕН (VALUE в английской версии), как показано в этом примере. (ссылка на последний раздел).
  2. Когда начальная позиция больше, чем общая длина исходного текста, формула Excel ПСТР возвращает пустое значение («»).
  3. Если начальная позиция  меньше 1, формула ПСТР возвращает ошибку #ЗНАЧ!.
  4. Когда третий аргумент меньше 0 (отрицательное число), формула ПСТР возвращает ошибку #ЗНАЧ!. Если количество знаков для извлечения равно 0, выводится пустая строка (пустая ячейка).
  5. В случае, если сумма начальной позиции и количества знаков превышает общую длину исходного текста, функция ПСТР в Excel возвращает подстроку начиная с начальной позиции и до последнего символа.

При решении реальных задач в Excel вам чаще всего потребуется использовать ПСТР в сочетании с другими функциями, как показано в следующих примерах.

Как извлечь имя и фамилию.

Если у вас была возможность прочитать наши недавние уроки, вы уже знаете, как вытащить имя с помощью функции ЛЕВСИМВ и получить фамилию с помощью ПРАВСИМВ.  Но, как это часто бывает в Excel, одно и то же можно сделать разными способами.

Получаем имя.

Предполагая, что полное имя находится в ячейке A2, имя и фамилия разделены интервалом, вы можете извлечь имя, используя следующую формулу:

=ПСТР(A2;1;ПОИСК(» «;A2)-1)

ПОИСК используется для сканирования исходного значения на предмет пробела (» «) и возврата его позиции, из которой вы вычитаете 1, чтобы избежать пробелов после имени. Затем вы используете ПСТР, чтобы вернуть подстроку, начинающуюся с первого знака и заканчивая предшествующим пробелу, таким образом извлекая первое имя.

Получаем фамилию.

Чтобы извлечь фамилию из A2, используйте эту формулу:

=СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(» «;A2);ДЛСТР(A2)))

Опять же, вы используете ПОИСК, чтобы определить начальную позицию (пробел). Нам не нужно точно рассчитывать конечную позицию (как вы помните, если вместе взятые начальная позиция и количество символов больше, чем общая длина текста, возвращаются просто все оставшиеся). Итак, в аргументе количество символов вы просто указываете общую первоначальную длину , возвращаемую функцией ДЛСТР . Впрочем, вместо этого вы можете просто ввести число, представляющее самую длинную фамилию, которую вы ожидаете найти, например 100. Наконец,  СЖПРОБЕЛЫ удаляет лишние интервалы, и вы получаете следующий результат:

Как выделить подстроку между двумя разделителями.

Продолжим предыдущий пример. А если, помимо имени и фамилии, ячейка A2 также содержит отчество, то как его извлечь?

Технически задача сводится к определению позиций двух пробелов в исходном тексте, и вы можете сделать это следующим образом:

  • Как и в предыдущем примере, используйте ПОИСК, чтобы определить позицию первого (» «), к которому вы добавляете 1, потому что вы хотите начать с символа, следующего за ним. Таким образом, вы получаете адрес начальной позиции: ПОИСК (» «; A2) +1
  • Затем вычислите позицию 2- го интервала, используя вложенные функции поиска, которые предписывают Excel начать поиск именно со 2-го:                                                  ПОИСК (» «; A2, ПОИСК (» «; A2) +1)

Чтобы узнать количество извлекаемых знаков, вычтите позицию первого пробела из положения второго. И затем еще вычтите 1 из результата, поскольку вам не нужны лишние интервалы в получившемся результате. Таким образом, у вас есть второй аргумент для формулы:          

ПОИСК(» «; A2; ПОИСК(» «; A2) +1) — ПОИСК(» «; A2)

Соединив все аргументы, мы получаем формулу для извлечения подстроки между двумя пробелами:

=ПСТР(A2;ПОИСК(» «;A2)+1;ПОИСК(» «;A2;ПОИСК(» «;A2)+1)-ПОИСК(» «;A2)-1)

На следующем скриншоте показан результат:

Аналогичным образом вы можете извлечь текст между любыми другими разделителями:

ПСТР( строка ; ПОИСК( разделитель ; строка ) +1; ПОИСК( разделитель ; строка ; ПОИСК( разделитель ; строка ) +1) — ПОИСК( разделитель ; строка ) -1)

Например, чтобы извлечь отрезок, выделенный запятой с пробелом после неё, используйте следующее выражение:

=ПСТР(A2;ПОИСК(«, «;A2)+1;ПОИСК(«, «;A2;ПОИСК(«, «;A2)+1)-ПОИСК(«, «;A2)-1)

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

Как получить N-е слово из текста.

Этот пример демонстрирует оригинальное использование сложной формулы ПСТР в Excel, которое включает 5 различных составных частей:

  • ДЛСТР — чтобы получить общую длину.
  • ПОВТОР — повторение определенного знака заданное количество раз.
  • ПОДСТАВИТЬ — заменить один символ другим.
  • ПСТР — извлечь подстроку.
  • СЖПРОБЕЛЫ — удалить лишние интервалы между словами.

Общая формула выглядит следующим образом:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ( строка ; » «; ПОВТОР (» «; ДЛСТР( строка ))); ( N -1) * ДЛСТР( строка ) +1; ДЛСТР( строка )))

Где:

  • Строка — это исходный текст, из которого вы хотите извлечь желаемое слово.
  • N – порядковый номер слова, которое нужно получить.

Например, чтобы вытащить второе слово из A2, используйте это выражение:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2))); (2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Или вы можете ввести порядковый номер слова, которое нужно извлечь (N) в какую-либо ячейку, и указать эту ячейку в формуле, как показано на скриншоте ниже:

Как работает эта формула?

По сути, Excel «оборачивает» каждое слово исходного текста множеством пробелов, находит нужный блок «пробелы-слово-пробелы», извлекает его, а затем удаляет лишние интервалы. Чтобы быть более конкретным, это работает по следующей логике:

  • ПОДСТАВИТЬ и ПОВТОР заменяют каждый пробел в тексте несколькими. Количество этих дополнительных вставок равно общей длине исходной строки: ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2)))

Вы можете представить себе промежуточный результат как «астероиды» слов, дрейфующих в пространстве, например: слово1-пробелы-слово2-пробелы-слово3-… Эта длинная строка передается в текстовый аргумент ПСТР.

  • Затем вы определяете начальную позицию для извлечения (первый аргумент), используя следующее уравнение: (N-1) * ДЛСТР(A1) +1. Это вычисление возвращает либо позицию первого знака первого слова, либо, чаще, позицию в N-й группе пробелов.
  • Количество букв и цифр для извлечения (второй аргумент) — самая простая часть — вы просто берете общую первоначальную длину: ДЛСТР(A2).
  • Наконец, СЖПРОБЕЛЫ избавляется от начальных и конечных интервалов в извлечённом тексте.

Приведенная выше формула отлично работает в большинстве ситуаций. Однако, если между словами окажется 2 или более пробелов подряд, это даст неверные результаты (1). Чтобы исправить это, вложите еще одну функцию СЖПРОБЕЛЫ в ПОДСТАВИТЬ, чтобы удалить лишние пропуски между словами, оставив только один, например:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР($A$2))); (B2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Следующий рисунок демонстрирует улучшенный вариант (2) в действии:

Если ваш исходный текст содержит несколько пробелов между словами, а также очень большие или очень короткие слова, дополнительно вставьте СЖПРОБЕЛЫ в каждое ДЛСТР, чтобы вы были застрахованы от ошибки:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР(СЖПРОБЕЛЫ ($A$2)))); (B2-1)*ДЛСТР(СЖПРОБЕЛЫ($A$2))+1; ДЛСТР(СЖПРОБЕЛЫ($A$2))))

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

Извлекаем слово, содержащее определенный символ.

В этом примере показана еще одна нестандартная формула Excel ПСТР, которая извлекает слово, содержащее определенную букву или цифру, из любого места:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ ( строка , » «, ПОВТОР(» «, 99)), МАКС(1, НАЙТИ( символ , ПОДСТАВИТЬ( строка , » «, ПОВТОР(» «, 99))) — 50), 99))

Предполагая, что исходный текст находится в ячейке A2, и вы хотите получить слово, содержащее символ «$» (цена), выражение принимает следующую форму:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)); МАКС(1;НАЙТИ(«$»;ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)))-50);99))

Аналогичным образом вы можете извлекать адреса электронной почты (на основе знака «@»), имена веб-сайтов (на основе «www») и так далее.

Теперь разберём пошагово:

Как и в предыдущем примере, ПОДСТАВИТЬ и ПОВТОР превращают каждый пробел в исходном тексте в несколько, точнее, в 99.

НАЙТИ находит позицию нужного символа (в данном примере $), из которой вы вычитаете 50. Это возвращает вас на 50 позиций назад и помещает где-то в середине блока из 99 пробелов, который предшествует слову, содержащему указанный символ.

МАКС используется для обработки ситуации, когда нужное значение появляется в начале исходного текста. В этом случае результат ПОИСК() — 50 будет отрицательным числом, а МАКС(1, ПОИСК() — 50) заменяет его на 1.

С этой начальной точки ПСТР отбирает следующие 99 знаков и возвращает интересующее нас слово, окруженное множеством пробелов. Как обычно, СЖПРОБЕЛЫ помогает избавиться от лишних из них, оставив только один.

Совет. Если извлекаемый отрезок очень большой, замените 99 и 50 на более крупные числа, например 1000 и 500.

Как заставить ПСТР возвращать число?

Как и другие текстовые функции, Excel ПСТР всегда возвращает текст, даже если он содержит только цифры и очень похож на число. Вы можете убедиться с этом, взглянув на пример чуть выше, когда мы получили число «20%» как текст.

Чтобы преобразовать результат в число, просто передайте полученный результат в функцию ЗНАЧЕН (VALUE в английской версии), которая преобразует текстовое значение, состоящее из цифр, в число.

Например, чтобы извлечь подстроку из 3 символов, начинающуюся с 7- го символа, и преобразовать ее в число, используйте:

=ЗНАЧЕН(ПСТР(A2;7;3))

На скриншоте ниже показан результат. Обратите внимание, что числа с выравниванием по правому краю помещены в столбец B, в отличие от исходных текстовых значений с выравниванием по левому краю в столбце A:

Тот же подход работает и для более сложных случаев. В приведенном выше примере, предполагая, что коды ошибок имеют переменную длину, вы можете извлечь их с помощью ПСТР, которая получает подстроку между двумя разделителями, вложенную в ЗНАЧЕН:

=ЗНАЧЕН(ПСТР(A2;ПОИСК(«:»;A2)+1;ПОИСК(«:»;A2;ПОИСК(«:»;A2)+1)-ПОИСК(«:»;A2)-1))

Вот как можно использовать функцию ПСТР в Excel. 

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

Регулярное выражение – это шаблон, состоящий из последовательности символов, который можно использовать для поиска соответствующей последовательности в другой строке.

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

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

Вот пример: из наименования товара — Коммутатор Optimus U1E-8F/1G/1S, нужно извлечь номер модели. Поскольку этот номер находится в конце наименования, то будем искать то, что записано после последнего пробела.

= RegExpExtract(A1; «([^s.]+)$»)

В результате получим U1E-8F/1G/1S, что и требовалось.

Как извлечь текст из ячейки с помощью Ultimate Suite

Как вы только что видели, Microsoft Excel предоставляет набор различных функций для работы с текстовыми строками. Если вам нужно извлечь какое-то слово или часть текста из ячейки, но вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте работу Ultimate Suite for Excel. Заодно не придётся возиться с формулами.

Вы просто переходите на вкладку Ablebits Data > Текст, выбираете инструмент Split Text и в выпадающем списке нажимаете Извлечь (Extract) :

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

  1. Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после определенного символа.
  2. Щелкните Вставить результаты (Insert Results). Готово!

Кроме того, вы можете извлечь любое число символов с начала или в конце текста, из середины текста, между какими-то символами. Например, чтобы извлечь доменные имена из списка адресов электронной почты, вы выбираете чекбокс Все после текста (All after text) и вводите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите переключатель Все до текста (All before text), как показано на рисунке ниже.

Помимо скорости и простоты, инструмент «Извлечь текст» имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции подстроки в частности. Как? Выбрав флажок Вставить как формула (Insert as formula)  в нижней части панели, вы убедитесь, что результаты выводятся в виде формул, а не просто как значения. Естественно, эти формулы вы можете использовать в других таблицах.

В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:

  • Чтобы извлечь имя пользователя:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A2,ПОИСК(«@»,A2)-1),»»)

  • Чтобы извлечь домен:

=ЕСЛИОШИБКА(ПРАВСИМВ(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)

Сколько времени вам потребуется, чтобы самостоятельно составить эти выражения?  ;)

Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные ячейки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете скопировать формулы в другие ячейки как обычно, без необходимости заново запускать инструмент «Извлечь текст».

Если вам интересно попробовать это, а также множество других полезных функций, включенных в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию. Если вам нравятся инструменты, вы можете получить лицензию по очень специальной цене, которая доступна только для наших русскоязычных пользователей.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как удалить пробелы в ячейках Excel Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с…
Функция СЖПРОБЕЛЫ — как пользоваться и примеры Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии)  не работает и как…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
5 примеров с функцией ДЛСТР в Excel. Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…

 

Lina1515

Пользователь

Сообщений: 15
Регистрация: 21.08.2017

Доброго времени суток! :)

У меня такой вопрос. Предположим, у нас есть следующие данные :
яблокоапельсинпомидор
молокосырхлеб
мандарин лаймлимон

Мой нужно вытащить второе слово после слэша. Т.е.
апельсин
сыр
лайм

Функцию MID использовать не могу, т.к. меняется количество знаков после слэша. Вторая мысль была удалить всё после второго слэша и использовать RIGHT, третья идея была установить длину, используя поиск и замену.
Но так как опыта у меня немного, пока ничего не получается. Может быть есть у кого-нибудь идеи, как бы это можно сделать оптимально?
Заранее спасибо!

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;»»;ПОВТОР(» «;50));50;50))

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#3

25.09.2017 23:16:42

UDF

Код
Function Slesh(cell As String) As String
  Slesh = Trim(Split(cell, "")(1))
End Function
 

Lina1515

Пользователь

Сообщений: 15
Регистрация: 21.08.2017

Спасибо большое за помощь! Всё сработало. Но вот появился новый вопрос к формуле. Синтакс ПСТР(Искомый текст, от какого символа, длина). Я не понимаю, как вместо искомой ячейки мы можем указать другую формулу..откуда программа знает искомый текст? Ведь ПОДСТАВИТЬ(A1;»»;ПОВТОР(» «;50)) выдаст только первое слово

В следующий раз, я обязательно прикреплю Excel файл

Kuzmich, спасибо за функцию :)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

ПОДСТАВИТЬ(A1;»»;ПОВТОР(» «;50)) — выдаст всю строку, но вместо разделителя — по 50 пробелов. Это для того, чтобы не искать позицию символа: обрезаем текст с середины диапазона пробелов перед словом и после слова, пробелы удаляем СЖПРОБЕЛЫ

 

sv2013

Пользователь

Сообщений: 657
Регистрация: 09.06.2015

#6

26.09.2017 01:49:14

еще вариант функции в столбце C

Код
 Function vvv$(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "[^\]+": .Global = True
    vvv = .Execute(t)(1)
  End With
End Function

Прикрепленные файлы

  • example_25_09_2017_pl2.xls (34 КБ)

Изменено: sv201326.09.2017 01:49:32

 

Lina1515

Пользователь

Сообщений: 15
Регистрация: 21.08.2017

vikttur, спасибо за объяснение!
sv2013, спасибо за код!  

 

Добрый день!
подскажите пожалуйста как разложить строку на отдельные столбцы. кое что сделал, но дальше чет заглох…

Прикрепленные файлы

  • пример.xlsx (10.18 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Aleksejjkhd@….
1. правила форума, об отображаемом имени.
2. Вопрос не по теме (двум помощникам — рыдайте над потерянным временем)
Создайте отдельную тему с названием, отражающим суть задачи

 

Aleksejjkhd@rambler.ru

Пользователь

Сообщений: 2
Регистрация: 17.01.2019

#10

17.01.2019 14:09:19

Цитата
vikttur написал:
Aleksejjkhd@….1. правила форума, об отображаемом имени.2. Вопрос не по теме (двум помощникам — рыдайте над потерянным временем)Создайте отдельную тему с названием, отражающим суть задачи

1. Ознакомлюсь.
2. Извиняюсь, задача стояла остро, времени не было разбираться куда лучше написать. (двум помощникам — огромное спасибо, успел прочитать Ваши ответы, поблагодарить не успел)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#11

17.01.2019 14:11:27

Измените отображаемое имя. Там же, в правилах — о бестолковом цитировании.

Из-за Вас помощь помощников больше никому не поможет.

ПСТР() и ПОИСК () Извлечь текст между скобками

=ПСТР(Текст; Поиск_первой_позиции(«(«:Текст)+1,Поиск_второй _позиции(«)»;Тектс)-Поиск_первой_позиции(«(«;Тектс)-1)

Чтобы извлечь текст между скобками, вы можете использовать формулу, основанную на функции ПСТР () и  функции ПОИСК ().

В показанном примере, формула в E7:

=ПСТР(D7;ПОИСК(«(«;D7)+1;ПОИСК(«)»;D7)-ПОИСК(«(«;D7)-1)

Основой этой формулы является функция ПСТР () , которая извлекает определенное количество символов из текста, начиная с определенного места.

Найти «Поиск_первой_позиции»  с какой позиции начинать извлечение текста, мы используем это выражение:

ПОИСК(«(«;D7)+1

Начало позиции:  14+1=15

Функция ПОИСК () находит позицию скобку в тексте, а затем уберем саму скобку с первой позиции прибавив единицу.

Для нахождения «Поиск_второй _позиции» второй скобки, мы используем это выражение:

ПОИСК(«)»;D7)-1

Начало второй позиции: 18-1=17

Функция ПОИСК () находит позицию скобки в тексте, а затем уберем саму скобку с последней позиции отняв единицу.

Чтобы получить общее количество символов, которые должны быть извлечены надо найти разницу между Второй позицией и первой получив, количество символов для извлечения как в выражении:

ПОИСК(«)»;D7)-ПОИСК(«(«;D7)-1)

Вторая позиция, отнять первую, получим количество символов для извлечения

17 — 14 =3      2,4

И соберем всю формулу как в ячейке E7:

=ПСТР(D7;ПОИСК(«(«;D7)+1;ПОИСК(«)»;D7)-1-ПОИСК(«(«;D7))

=ПСТР(Текст; позиция первая скобка; позиция Вторая скобка)

=ПСТР(Текст;14+1;17-1-14)

Можно прибавить ноль в конце и получить в место текстового значения цифровое.

=ПСТР(D7;ПОИСК(«(«;D7)+1;ПОИСК(«)»;D7)-1-ПОИСК(«(«;D7))+0

Если у вас есть список строк в Excel, из которого вам нужно извлечь часть строки между двумя символами, как показано на скриншоте ниже, как с ним справиться как можно быстрее? Здесь я расскажу о некоторых методах решения этой задачи.

Извлечь строку части между двумя разными символами с формулами

Извлечь строку части между двумя одинаковыми символами с формулами

Извлечь часть строки между двумя символами с помощью Kutools for Excelхорошая идея3


Извлечь строку части между двумя разными символами с формулами

Чтобы извлечь часть строки между двумя разными символами, вы можете сделать следующее:

Выберите ячейку, в которую вы поместите результат, введите эту формулу =MID(LEFT(A1,FIND(«>»,A1)-1),FIND(«<«,A1)+1,LEN(A1)), и нажмите Enter .
doc извлечь строку между двумя символами 1

Внимание: A1 — текстовая ячейка, > и < — это два символа, между которыми вы хотите извлечь строку.


Извлечь строку части между двумя одинаковыми символами с формулами

Если вы хотите извлечь часть строки между двумя одинаковыми символами, вы можете сделать следующее:

Выберите ячейку, в которую вы поместите результат, введите эту формулу =SUBSTITUTE(MID(SUBSTITUTE(«/» & A3&REPT(» «,6),»/»,REPT(«,»,255)),2*255,255),»,»,»»), и нажмите Enter .
doc извлечь строку между двумя символами 2

Примечание: A3 — текстовая ячейка, / — это символ, между которыми вы хотите извлечь.

Извлечь часть строки между двумя символами с помощью Kutools for Excel

Если у вас есть Kutools for Excel, вы также можете выделить строку части между двумя текстами.

После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)

1. Выберите ячейку, в которую будет помещена извлеченная строка, затем щелкните Кутулс > Формула > Формула Помощник.
doc извлечь строку между двумя символами 3

2. в Формула Помощник диалог, .check Фильтр флажок, затем введите «бывший» в текстовое поле, все формулы извлечения будут перечислены в Выберите формулу раздел, выбрать Извлечь строки между указанным текстом, затем идите направо Ввод аргументов раздел, выберите ячейку, из которой вы хотите извлечь подстроку, в Ячейка, затем введите два текста, между которыми вы хотите извлечь.
doc kutools извлечь строку между двумя текстами 2

3. Нажмите Ok, затем была извлечена подстрока между двумя указанными вами текстами, перетащите дескриптор заполнения вниз, чтобы извлечь подстроку из каждой ячейки ниже.
doc kutools извлечь строку между двумя текстами 3

doc kutools извлечь строку между двумя текстами 4


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Like this post? Please share to your friends:
  • Excel найти текст до пробела
  • Excel найти такую же ячейку
  • Excel найти сумму по месяцам
  • Excel найти сумму листов
  • Excel найти строку содержащую текст