Excel извлечь текст до цифры

Skip to content

Функция ЛЕВСИМВ в Excel. Примеры использования и советы.

В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое.

Среди множества различных функций, которые Microsoft Excel предоставляет для работы с текстовыми данными, ЛЕВСИМВ — одна из наиболее широко применяемых. Как следует из названия, она позволяет извлекать определенное количество знаков, начиная с левой стороны текста. Однако она способна на гораздо большее, чем такая простая операция. В этом руководстве вы найдете несколько базовых формул для понимания синтаксиса, а затем я покажу вам несколько способов, с помощью которых вы можете использовать ЛЕВСИМВ далеко за пределами ее базового применения.

  • Правила синтаксиса.
  • Как получить подстроку слева от определенного символа?
  • Удаляем последние N символов.
  • Как заставить ЛЕВСИМВ вернуть число, а не текст.
  • Почему не работает?

Cинтаксис.

Функция ЛЕВСИМВ в Excel возвращает указанное количество символов (подстроку) от начала содержимого ячейки.

Синтаксис следующий:

ЛЕВСИМВ (текст; [колич_знаков])

Где:

  • Текст  (обязательно) — это текст, из которого вы хотите извлечь подстроку. Обычно предоставляется как ссылка на ячейку, в которой он записан.
  • Второй аргумент  (необязательно) — количество знаков для извлечения, начиная слева.
    • Если параметр опущен, то по умолчанию подразумевается 1, то есть возвращается 1 знак.
    • Если введенное значение больше общей длины ячейки, формула вернет всё ее содержимое.

Например, чтобы извлечь первые 6 символов из A2, запишите такое выражение:

=ЛЕВСИМВ(A2; 6)

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

Важное замечание! ЛЕВСИМВ относится к категории текстовых функций, поэтому результатом её всегда является текстовая строка, даже если исходное значение, из которого вы извлекаете цифры, является числом. Если вы работаете с числовым набором данных и хотите, чтобы было извлечено именно число, применяйте ее вместе с функцией ЗНАЧЕН, как показано в одном из примеров ниже.

Что еще можно делать, помимо извлечения текста слева? В следующих примерах показано, как можно применять её в сочетании с другими функциями Excel для решения более сложных задач.

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

В некоторых случаях может потребоваться извлечь часть текста, который предшествует определенному знаку. Например, вы можете извлечь имена из столбца ФИО или получить коды стран из колонки с телефонными номерами. Проблема в том, что каждое имя и каждый код содержат разное количество символов, и поэтому вы не можете просто указать точное число сколько знаков отделить, как мы сделали в приведенном выше примере.

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

Предположим, что полное имя находится в ячейке A2, позиция пробела возвращается по этой простой формуле: ПОИСК(» «; A2)). А теперь вы вставляете это выражение в ЛЕВСИМВ:

=ЛЕВСИМВ(A2; ПОИСК(» «; A2))

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

=ЛЕВСИМВ(A2; ПОИСК(» «; A2)-1)

Таким же образом вы можете извлечь коды стран из столбца телефонных номеров. Единственное отличие состоит в том, что вам теперь нужно узнать позицию первого дефиса («-«), а не пробела:

=ЛЕВСИМВ(A2; ПОИСК(«-«; A2)-1)

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

ЛЕВСИМВ( строка ; ПОИСК( символ ; строка ) — 1)

Как удалить последние N символов.

Вы уже знаете, отрезать кусочек от начала текстовой строки. Но иногда вы можете захотеть сделать что-то другое — удалить определенное количество символов из конца строки и перенести оставшееся в другую ячейку. Для этого можно также применять функцию ЛЕВСИМВ в сочетании с ДЛСТР , например:

ЛЕВСИМВ ( текст ; ДЛСТР( текст ) — число_символов_для_удаления )

Это работает с такой логикой: ДЛСТР получает общее количество символов в ячейке, затем вы вычитаете количество ненужных знаков из общей длины, а ЛЕВСИМВ возвращает оставшееся.

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

=ЛЕВСИМВ(A2; ДЛСТР(A2)-11)

Как показано на скриншоте, формула успешно отсекает слово «продукты» (8 букв, разделитель и 2 пробела) из текстовых значений в столбце A.

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

Как заставить ЛЕВСИМВ возвращать число.

Как вы уже знаете, ЛЕВСИМВ в Эксель всегда возвращает текст, даже если вы извлекаете несколько первых цифр из ячейки. Для вас это означает, что вы не сможете использовать эти результаты в вычислениях или в других функциях Excel, которые работают с числами.

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

Например, чтобы извлечь символы перед разделителем “-” из A2 и преобразовать результат в число, можно сделать так:

=ЗНАЧЕН(ЛЕВСИМВ(A2;ПОИСК(«-«;A2;1)-1))

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

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

Это лишь некоторые из множества возможных вариантов использования ЛЕВСИМВ в Excel. 

Дополнительные примеры формул ЛЕВСИМВ можно найти на следующих ресурсах:

  • Разделить строку запятой, двоеточием, косой чертой, тире или другим разделителем
  • Как разбить текстовую строку вида «число + текст» по столбцам 
  • Подсчитайте количество символов до или после данного символа

Не работает ЛЕВСИМВ — причины и решения

Если ЛЕВСИМВ не работает на ваших листах должным образом, это, скорее всего, связано с одной из причин, которые мы перечислим ниже.

1. Аргумент «количество знаков» меньше нуля

Если ваша формула возвращает ошибку #ЗНАЧ!, то первое, что вам нужно проверить, — это значение аргумента количество_знаков. Если вы видите отрицательное число, просто удалите знак минус, и ошибка исчезнет (конечно, очень маловероятно, что кто-то намеренно поставит отрицательное число, но человек может ошибиться :)

Чаще всего ошибка #ЗНАЧ! возникает, когда этот аргумент получен в результате вычислений, а не записан вручную. В этом случае скопируйте это вычисление в другую ячейку или выберите его в строке формул и нажмите F9, чтобы увидеть результат ее работы. Если значение меньше 0, проверьте на наличие ошибок.

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

ЛЕВСИМВ(A2; ПОИСК(«-«; A2)-1)

Как вы помните, функция ПОИСК в наших примерах вычисляет позицию первого дефиса в исходной строке, из которой мы затем вычитаем 1, чтобы удалить дефис из окончательного результата. Если я случайно заменю -1, скажем, на -11, Эксель выдаст ошибку #ЗНАЧ!, потому что нельзя извлечь отрицательное количество букв и цифр:

2. Начальные пробелы в исходном тексте

Если вы скопировали свои данные из Интернета или экспортировали из другого внешнего источника, довольно часто такие неприятные сюрпризы попадаются в самом начале текста. И вы вряд ли заметите, что они там есть, пока что-то не пойдет не так. Следующее изображение иллюстрирует проблему:

Чтобы избавиться от ведущих пробелов на листах, воспользуйтесь СЖПРОБЕЛЫ (TRIM).

3. ЛЕВСИМВ не работает с датами.

Если вы попытаетесь использовать ЛЕВСИМВ для получения отдельной части даты (например, дня, месяца или года), в большинстве случаев вы получите только первые несколько цифр числа, представляющего эту дату. Дело в том, что в Microsoft Excel все даты хранятся как числа, представляющие количество дней с 1 января 1900 года. То, что вы видите в ячейке, это просто визуальное представление даты. Ее отображение можно легко изменить, применив другой формат.

Например, если у вас есть дата 15 июля 2020 года в ячейке A1 и вы пытаетесь извлечь день с помощью выражения ЛЕВСИМВ(A1;2). Результатом будет 44, то есть первые 2 цифры числа 44027, которое представляет 15 июля 2020г. во внутренней системе Эксель.

Чтобы извлечь определенную часть даты, возьмите одну из следующих функций:  ДЕНЬ(),  МЕСЯЦ() или  ГОД().

Если же ваши даты вводятся в виде текстовых строк, то ЛЕВСИМВ будет работать без проблем, как показано в правой части скриншота:

Вот как можно использовать функцию ЛЕВСИМВ в Excel. 

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

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

  • Что делает ЛЕВСИМВ?
  • Синтаксис
  • Форматирование
  • Примеры
    • Пример 1 – извлечь первое слово
    • Пример 2 – извлечь кроме последнего символа
    • Пример 3 – извлечь текст до первой цифры (формула массива)
ЛЕВСИМВ - простейшие примеры
Примеры использования функции ЛЕВСИМВ
Раздел функций Текстовые
Название на английском LEFT
Волатильность Не волатильная
Похожие функции ПРАВСИМВ, ПСТР

Что делает ЛЕВСИМВ?

Возвращает первые N символов текста слева.

Синтаксис

=ЛЕВСИМВ(Текст;[Количество Символов])

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

Если второй аргумент равен или превышает длину строки, возвращается весь исходный текст ячейки.

Если он равен нулю – возвращается пустая строка.

Если указывается отрицательное число, возвращается ошибка #ЗНАЧ.

Форматирование

Необходимо учитывать, что, если первым аргументом указать ячейку с датой или датой-временем, или формулу, возвращающую их, функция ЛЕВСИМВ преобразует их в натуральное число и только после этого в строковое значение.

Поэтому для корректного текстового извлечения части символов из дат в числовом формате может понадобиться функция ТЕКСТ (см. пример на картинке выше).

Примеры

Рассмотрим примеры использования функции ЛЕВСИМВ на практике.

Пример 1 – извлечь первое слово

В этом простейшем примере извлекаем первое слово в ячейке с помощью комбинации функций ЛЕВСИМВ и НАЙТИ.

Определяем номер позиции первого пробела и возвращаем символы до этой позиции

Таблица выше была использована для извлечения имени из строки с именем и фамилией. Функция НАЙТИ используется для определения положения пробела между именем и фамилией. Следовательно, длина имени – это позиция пробела минус один символ.
Функция ЛЕВСИМВ извлекает имя на основе его длины.

А как извлечь фамилию (второе слово)? Ответ на этот вопрос смотрите в описании функции ПРАВСИМВ.

Пример 2 – извлечь кроме последнего символа

В комбинации ЛЕВСИМВ с функцией ДЛСТР извлекаем из строк переменной длины все, кроме последнего знака.

Вычисляем длину строки, вычитаем из нее 1 и возвращаем соответствующее количество символов функцией ЛЕВСИМВ

Пример 3 – извлечь текст до первой цифры (формула массива)

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

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

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

Так будет выглядеть формула для ячейки A1.

=ЛЕВСИМВ(A1,МИН(ЕСЛИОШИБКА(ПОИСК({0:9:8:7:6:5:4:3:2:1},A1),1000))-2)

При этом вводится сочетанием Ctrl + Shift + Enter как любая формула массива.

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

  1. Функция ПОИСК ищет одновременно 10 цифр, перечисленных в массиве, и возвращает массив позиций
  2. Поскольку часть цифр при поиске возвращают ошибку, используется функция ЕСЛИОШИБКА, чтобы для таких значений вернуть заведомо наибольшее число (в данном случае 1000)
  3. Функция МИН возвращает наименьшее из чисел – это и будет позиция первой цифры в строке
  4. Поскольку перед цифрами также всегда присутствует пробел, вычитается 2 символа, а не 1. Можно перестраховаться на случай отсутствия пробелов – оставить 1 и убрать пробелы функцией СЖПРОБЕЛЫ.
  5. Функция ЛЕВСИМВ возвращает текст до вычисленной таким образом позиции последнего знака, идущего перед первой цифрой и пробелом перед ней.

Понравилась статья? Поддержите ее автора!
Набор инструментов !SEMTools поможет решить множество задач без ввода сложных формул и сэкономит ваше время. И вам полезно, и автору приятно!

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

Прежде чем мы начнем обсуждать различные методы работы с подстроками в Excel, давайте уделим немного времени определению термина, чтобы мы могли начать с той же страницы. Итак, что такое подстрока? Проще говоря, это часть текстовой записи. Например, если вы наберете что-то вроде «AA-111» в ячейке, вы назовете это буквенно-цифровая строкаи любая часть строки, скажем, «AA», будет подстрока.

Хотя в Excel нет такой функции, как функция подстроки, существуют три текстовые функции (LEFT, RIGHT и MID) для извлечения подстроки заданной длины. Кроме того, есть функции НАЙТИ и ПОИСК для получения подстроки до или после определенного символа. И есть несколько других функций для выполнения более сложных операций, таких как извлечение чисел из строки, замена одной подстроки на другую, поиск частичного совпадения текста и т. д. Ниже вы найдете примеры формул для выполнения всего этого и многого другого. .

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

  • Функция LEFT — извлечь подстроку слева.
  • Функция ПРАВО — извлечь текст справа.
  • Функция MID — для извлечения подстроки из середины текстовой строки, начиная с указанной вами точки.

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

Чтобы извлечь текст слева от строки, вы используете функцию Excel LEFT:

СЛЕВА(текст, [num_chars])

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

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

=ЛЕВО(A2,4)
ЛЕВАЯ формула для извлечения подстроки из начала строки

Получить подстроку с конца строки (ВПРАВО)

Чтобы получить подстроку из правой части текстовой строки, воспользуйтесь функцией Excel ПРАВИЛЬНО:

ПРАВИЛЬНО(текст, [num_chars])

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

=ВПРАВО(A2,4)
ПРАВИЛЬНАЯ формула для извлечения подстроки из конца строки

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

По сравнению с двумя другими текстовыми функциями, MID имеет несколько иной синтаксис:

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

Помимо текст (исходная текстовая строка) и num_chars (количество символов для извлечения), вы также указываете start_num (отправная точка).

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

=СРЕДНЕЕ(A2,6,3)
Формула MID для извлечения текста из середины строки

Кончик. Вывод формул Right, Left и Mid всегда является текстом, даже если вы извлекаете число из текстовой строки. Если вы хотите оперировать результатом как числом, оберните формулу в функцию ЗНАЧЕНИЕ следующим образом:

= ЗНАЧЕНИЕ (СРЕДНЕЕ (A2,6,3))

Как показано в приведенных выше примерах, функции Left, Right и Mid прекрасно справляются с однородными строками. Когда вы имеете дело с текстовыми строками переменной длины, потребуются более сложные манипуляции.

Примечание. Во всех приведенных ниже примерах мы будем использовать функцию SEARCH без учета регистра, чтобы получить позицию символа. Если вам нужна формула с учетом регистра, используйте функцию НАЙТИ.

Как извлечь текст перед определенным символом

Чтобы получить подстроку, предшествующую заданному символу, нужно сделать две вещи: сначала определить позицию интересующего символа, а затем вытянуть все символы перед ним. Точнее, вы используете функцию ПОИСК, чтобы найти положение символа, и вычитаете 1 из результата, потому что вы не хотите включать сам символ в вывод. А затем вы отправляете возвращенный номер непосредственно на num_chars аргумент ЛЕВОЙ функции:

ОСТАВИЛ(клеткаПОИСК(«уголь«, клетка)-1)

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

=ВЛЕВО(A2, ПОИСК(«-«,A2)-1)

Независимо от того, сколько символов содержит ваша строка Excel, формула извлекает только текст до первого дефиса:
Извлечение текста перед определенным символом

Чтобы получить текст после определенного символа, вы используете несколько иной подход: получите позицию символа с помощью ПОИСК или НАЙТИ, вычтите это число из общей длины строки, возвращаемой функцией ДЛСТР, и извлеките столько же символов из конца строки. Струна.

ПРАВИЛЬНО(клетка,ЛЕН(клетка)-ПОИСК(«уголь«, клетка))

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

=ВПРАВО(A2,ДЛСТР(A2)-ПОИСК(«-«,A2))
Извлечение текста после определенного символа

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

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

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

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

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

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

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

  • Во-первых, вы определяете положение второго вхождения символа, вкладывая одну функцию поиска в другую.
  • После этого вы вычитаете позицию 1-го вхождения из позиции 2-го вхождения и вычитаете 1 из результата, так как вы не хотите включать символ-разделитель в результирующую подстроку.

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

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

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

Если вы хотите извлечь текст между 2-м и 3-м или 3-м и 4-м вхождением одного и того же символа, вы можете использовать более компактную комбинацию ПОИСК ПОДСТАВКИ, чтобы получить позицию символа, как описано в разделе Как найти N-е вхождение символа в строку. :

НАЙТИ(СИМВОЛ(1),ПОДСТАВИТЬ(клетка,персонаж,СИМВОЛ(1),N-е вхождение))

В нашем случае мы могли бы извлечь подстроку между 2-м и 3-м дефисом по следующей формуле:

=MID(A2, НАЙТИ(СИМВОЛ(1),ЗАМЕНИТЬ(A2,»-«,СИМВОЛ(1),2))+1, НАЙТИ(СИМВОЛ(1),ЗАМЕНИТЬ(A2,»-«,СИМВОЛ(1) ,3)) — НАЙТИ(СИМВОЛ(1),ПОДСТАВИТЬ(A2,»-«,СИМВОЛ(1),2))-1)
Извлечение подстроки между 2-м и 3-м дефисом

В ситуациях, когда вы не хотите извлекать подстроку, а хотите найти только ячейки, содержащие ее, вы используете функцию ПОИСК или НАЙТИ, как показано в приведенных выше примерах, но выполняете поиск внутри функции ЕСНИМ. Если ячейка содержит подстроку, функция поиска возвращает позицию первого символа, и если ISNUMBER получает любое число, она возвращает TRUE. Если подстрока не найдена, поиск приводит к ошибке, заставляя ISNUMBER возвращать FALSE.

IНОМЕР(ПОИСК(«подстрока«, клетка))

Предположим, у вас есть список британских почтовых индексов в столбце A, и вы хотите найти те, которые содержат подстроку «1ZZ». Чтобы это сделать, используйте эту формулу:

=ISNUMBER(ПОИСК(«1zz», A2))

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

Если вы хотите вернуть собственное сообщение вместо логических значений ИСТИНА и ЛОЖЬ, вложите приведенную выше формулу в функцию ЕСЛИ:

=ЕСЛИ(IЧИСЛО(ПОИСК(«1zz», A2)), «Да», «»)

Если ячейка содержит подстроку, формула возвращает «Да», в противном случае — пустую строку («»):
Формула для идентификации ячеек, содержащих определенную подстроку

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

Дополнительные сведения о том, как найти текст и числа в Excel, см. в разделе Если ячейка содержит примеры формул.

Как вы только что видели, Microsoft Excel предоставляет множество различных функций для работы с текстовыми строками. Если вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте задание нашему Ultimate Suite for Excel. Имея эти инструменты в своем арсенале Excel, вы просто переходите к Данные об аблебитах вкладка > Текст группу и нажмите Извлечь:
Инструмент «Извлечь текст» в Excel

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

  1. Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после заданного символа.
  2. Нажмите Вставить результаты. Сделанный!

Например, чтобы получить доменные имена из списка адресов электронной почты, выберите Все после текста переключатель и введите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите Все перед текстом переключатель, как показано на скриншоте ниже.
Определите подстроку, которую вы хотите извлечь.

И через мгновение вы получите следующие результаты:
Части адресов электронной почты извлекаются в отдельные столбцы.

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

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

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

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

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

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

Сколько времени у вас ушло бы на то, чтобы вычислить эти формулы самостоятельно? 😉

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

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

Дополнительные формулы для подстрок в Excel

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

Доступные загрузки

Функции работы с подстроками в Excel — практическая рабочая тетрадь (файл .xlsx)
Ultimate Suite — пробная версия (файл .exe)

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

Содержание: [ Скрывать ]

(Щелкните любой заголовок в оглавлении ниже или справа, чтобы перейти к соответствующей главе.)


Извлечь текст по позиции

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

1. Извлеките количество символов слева или справа

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

1.1 Извлеките первые или последние N символов с помощью формул

Предположим, у вас есть список текстовых строк в столбце B, как показано на снимке экрана ниже, чтобы извлечь первые 2 символа и последние 2 символа из каждой строки, вы можете применить следующие формулы.

Извлечь первые N символов из текстовой строки

Функция ВЛЕВО может помочь легко извлечь первые N символов из текстовой строки в Excel.

Общая формула

=LEFT(text_string,[num_chars])

аргументы

Текстовая_строка: Текстовая строка, содержащая символы, которые вы хотите извлечь. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

Num_chars: указывает количество символов, которые вы хотите извлечь.

Num_chars должно быть больше или равно нулю;

Если указанное значение Num_chars больше длины текстовой строки, возвращается весь текст;

Если значение Num_chars опущено, предполагается, что оно равно 1.

Теперь вы можете применить эту формулу для извлечения первых двух символов из ячеек в столбце B.

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

=LEFT(B5,2)

Теперь первые 2 символа в каждой ячейке диапазона B5:B10 извлечены.

Извлечь последние N символов из текстовой строки

Здесь мы применяем функцию ПРАВИЛЬНО для извлечения последних N символов из текстовой строки в Excel.

Общая формула

=RIGHT(text_string,[num_chars])

аргументы

Текстовая_строка: Текстовая строка, содержащая символы, которые вы хотите извлечь. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

Num_chars: указывает количество символов, которые вы хотите извлечь.

Наблюдения и советы этой статьи мы подготовили на основании опыта команды Num_chars должен быть больше или равен нулю;

Если указанный Num_chars больше длины текстовой строки, возвращает весь текст;

Если Num_chars опущено, предполагается, что оно равно 1.

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

=RIGHT(B5,2)

1.2 Извлеките первые или последние N символов с помощью замечательного инструмента

Хотя приведенные выше формулы просты, для извлечения первых или последних n символов из длинного списка текстовой строки вам все равно нужно перетаскивать дескриптор автозаполнения сверху вниз, что может занять немного времени. Здесь рекомендует Kutools for ExcelАвтора Извлечь текст утилита, помогающая извлечь первые или последние N символов из списка текстовых строк оптом.

1. Заранее выберите список текстовых строк, из которого вы хотите извлечь текст, и щелкните Кутулс > Текст > Извлечь текст.

2. Во всплывающем Извлечь текст диалоговое окно необходимо настроить следующим образом.

2.1) Убедитесь, что вы остаетесь в Извлечь по местоположению вкладка;

2.2). Диапазон поле, внутри отображается выбранный диапазон, вы можете изменить его на другой диапазон в соответствии с вашими потребностями;

2.3). Опции раздел:

Если вы хотите извлечь первые N символов, выберите Первый символ N переключатель, а затем укажите количество символов, которые вы хотите извлечь в текстовом поле. В этом случае я ввожу цифру 2;

Если вы хотите извлечь последние N символов, выберите Последний символ N переключатель, а затем укажите количество символов, которые вы хотите извлечь в текстовом поле. В этом случае я хочу извлечь последние 2 символа из текстовой строки, поэтому я ввожу число 2 в текстовое поле.

2.4) Нажмите OK. Смотрите скриншот:

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

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

Затем из выбранных ячеек массово извлекаются указанные первые или последние N символов.

Нажмите, чтобы узнать больше об этой функции.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


2. Извлечь текст до или после определенного символа/слова

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

2.1 Извлечь текст до или после первого разделителя (символа)

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

2.1.1 Извлечь текст перед первым разделителем с формулой

Применение формулы, основанной на функциях ЛЕВЫЙ и НАЙТИ, может помочь извлечь текст перед первым разделителем из ячейки. Вы можете выполнить следующие шаги, чтобы сделать это.

Общая формула

=LEFT(text_string,FIND(«delimiter»,text_string,1)-1)

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь подстроку. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

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

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

=LEFT(B5,FIND(«-«,B5,1)-1)

2.1.2 Извлечь текст после первого разделителя с формулой

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

Общая формула

=MID(text_string,FIND(«delimiter»,text_string)+1,LEN(text_string))

аргументы

Текстовая_строка: текстовая строка, из которой вы хотите извлечь подстроку. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

Разделитель: Первый разделитель, определяющий, какой текст будет извлечен из ячейки.

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

=MID(B5,FIND(«-«,B5)+1,LEN(B5))

2.1.3 Извлекайте текст до или после первого разделителя с помощью замечательного инструмента

Здесь настоятельно рекомендуется Извлечь текст полезности Kutools for Excel. С помощью этой функции вы можете легко извлекать тексты до или после первого разделителя из диапазона ячеек.

1. Выберите диапазон ячеек, из которых вы хотите извлечь текст, а затем щелкните Кутулс > Текст > Извлечь текст.

2. в Извлечь текст диалоговое окно необходимо настроить следующим образом.

2.1) Оставайтесь в Извлечь по местоположению вкладка;

2.2). Диапазон окошко, внутри отображается выбранный диапазон, вы можете изменить его как вам нужно;

2.3). Опции раздел:

Чтобы извлечь текст перед первым разделителем, выберите перед текстом переключатель, а затем введите первый разделитель в текстовое поле;

Чтобы извлечь текст после первого разделителя, выберите после текста переключатель, а затем введите первый разделитель в текстовое поле.

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

3. Затем еще один Извлечь текст появится диалоговое окно, выберите ячейку для вывода результатов и нажмите ОК.

Затем тексты до или после первого разделителя сразу извлекаются из выделенных ячеек.

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

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

2.2 Извлечение текста до или после последнего разделителя (символа)

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

2.2.1 Извлечь текст перед последним разделителем с помощью формулы

Чтобы извлечь текст перед последним разделителем из ячейки, вы можете использовать функции ПОИСК, ДЛСТР и ПОДСТАВИТЬ внутри функции ЛЕВЫЙ.

Общая формула

=LEFT(text_string,SEARCH(«#»,SUBSTITUTE(text_string,»delimiter»,»#»,LEN(text_string)-LEN(SUBSTITUTE(text_string,»delimiter»,»»))))-1)

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь подстроку. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

Разделитель: Последний разделитель, определяющий, какой текст будет извлекаться из ячейки.

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

=LEFT(B5,SEARCH(«#»,SUBSTITUTE(B5,»-«,»#»,LEN(B5)-LEN(SUBSTITUTE(B5,»-«,»»))))-1)

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

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

Общая формула

=RIGHT(text_string,LEN(text_string)-SEARCH(«#»,SUBSTITUTE(text_string,»delimiter»,»#»,LEN(text_string)-LEN(SUBSTITUTE(text_string,»delimiter»,»»)))))

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь подстроку. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

Разделитель: Последний разделитель, определяющий, какой текст будет извлекаться из ячейки.

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

=RIGHT(B5,LEN(B5)-SEARCH(«#»,SUBSTITUTE(B5,»-«,»#»,LEN(B5)-LEN(SUBSTITUTE(B5,»-«,»»)))))

2.3 Извлечь текст после n-го символа

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

Общая формула

=MID(text_string,nth_char+1,LEN(text_string))

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь подстроку. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

nth_char: Число представляет n-й символ, и вы извлечете текст после него.

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

=MID(B5,3+1,LEN(B5))

2.4 Извлечь n-е слово из текстовой строки

Предположим, у вас есть список текстовых строк, как показано на снимке экрана ниже, и вы хотите извлечь только n-е слово из текстовой строки. В этом разделе представлены три метода, как это сделать.

2.4.1 Извлечь n-е слово с помощью формулы

Вы можете комбинировать функции TRIM, MID, SUBSTITUTE, REPT и LEN, чтобы извлечь n-е слово из текстовой строки в ячейке.

Общая формула

=TRIM(MID(SUBSTITUTE(text_string,» «,REPT(» «,LEN((text_string))), (N-1)*LEN((text_string)+1, LEN((text_string)))

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь n-е слово. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

N: Число представляет n-е слово, которое вы извлечете из текстовой строки.

В этом случае диапазон B5:B10 содержит текстовые строки, D5:D10 содержит числа, представляющие n-е слово, давайте применим эту формулу для извлечения n-го слова из текстовой строки.

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

=TRIM(MID(SUBSTITUTE(B5,» «,REPT(» «,LEN(B5))), (D5-1)*LEN(B5)+1, LEN(B5)))

Примечание: Вы можете напрямую ввести n-е число в формулу следующим образом.

=TRIM(MID(SUBSTITUTE(B5,» «,REPT(» «,LEN(B5))), (2-1)*LEN(B5)+1, LEN(B5)))

2.4.2 Извлечение n-го слова с помощью пользовательской функции

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

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль, а затем скопируйте приведенный ниже VBA в окно кода.

Код VBA: извлечь n-е слово из текстовой строки в ячейке

Function ExtractTheNthWord(Source As String, Position As Integer)
'Update by Extendoffice 20211202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.

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

=FindWord(B5,D5)

Or

=FindWord(B5,2)

Примечание: в формуле D5 — это ячейка, содержащая число, представляющее n-е слово. Кроме того, вы можете напрямую заменить ссылку на ячейку числом.

5. Выберите ячейку результата и перетащите ее маркер автозаполнения вниз, чтобы извлечь n-е слово из текстовых строк других ячеек.

2.4.3 Извлеките n-е слово с помощью замечательного инструмента

Если вы не хотите вручную применять формулу или пользовательскую функцию, представленную выше, здесь рекомендуется Kutools for ExcelАвтора Извлечь n-е слово в ячейку полезность. С помощью этой функции вы можете легко извлечь n-е слово из текстовой строки в ячейке всего за несколько кликов.

1. Выберите ячейку для размещения результата и нажмите Кутулс > Формула Помощник > Текст > Выписка энное слово в ячейке. Смотрите скриншот:

2. в Помощник по формулам диалоговое окно необходимо настроить следующим образом.

2.1). Выберите список формул коробка, Извлечь n-е слово в ячейку опция выделена;

2.2). Ячейка поле, выберите ячейку, содержащую текстовую строку, из которой вы хотите извлечь n-е слово;

2.3). N-й поле, выберите ячейку, содержащую n-е число, или непосредственно введите число в соответствии с вашими потребностями;

2.4) Нажмите ОК.

3. Затем из текстовой строки в ячейке B5 извлекается n-е (второе) слово, и вы можете видеть, что в то же время создается формула. Выберите эту ячейку результата и перетащите ее маркер автозаполнения вниз, чтобы получить n-е слово из других текстовых строк.

Нажмите, чтобы узнать больше об этой функции.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

2.5 Извлечение текста до или после n-го вхождения разделителя

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

2.5.1 Извлечение текста перед n-м вхождением разделителя

Вы можете использовать функцию ВЛЕВО вместе с функциями ПОДСТАВИТЬ и НАЙТИ для извлечения текста перед n-м вхождением разделителя из ячейки в Excel.

Общая формула

=LEFT(SUBSTITUTE(text_string,»delimiter»,CHAR(9),n),FIND(CHAR(9),SUBSTITUTE(text_string,»delimiter»,CHAR(9),n),1)-1)

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь текст. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

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

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

=LEFT(SUBSTITUTE(B5,» «,CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5,» «,CHAR(9),2),1)-1)

Примечание: В формуле B5 — это ячейка, содержащая текстовую строку, из которой вы хотите извлечь текст; « » здесь представляет собой пробел, а число 2 представляет второе вхождение пробела. Вы можете изменить их в соответствии с вашими потребностями.

2.5.2 Извлечение текста после n-го вхождения разделителя

Чтобы извлечь текст после n-го вхождения разделителя, вы можете применить функцию ПРАВИЛЬНО с функциями ПОДСТАВИТЬ, ДЛСТР и НАЙТИ.

Общая формула

=RIGHT(SUBSTITUTE(text_string, «delimiter», CHAR(9), n), LEN(text_string)- FIND(CHAR(9), SUBSTITUTE(text_string, «delimiter», CHAR(9), n), 1) + 1)

аргументы

Текстовая_строка: Текстовая строка, из которой вы хотите извлечь текст. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

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

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

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

=RIGHT(SUBSTITUTE(B5, » «, CHAR(9), 2), LEN(B5)- FIND(CHAR(9), SUBSTITUTE(B5, » «, CHAR(9), 2), 1) + 1)

2.6 Извлечение текста до или после разрыва строки

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

2.6.1 Извлечение текста до разрыва первой строки с формулой

Как вы можете видеть на снимке экрана выше, часть даты находится перед первым разрывом строки в ячейке. В этом разделе будет продемонстрирована функция ВЛЕВО вместе с функцией ПОИСК, которые помогут вам извлечь текст перед первым разрывом строки в ячейке.

Общая формула

=LEFT(cell, SEARCH(CHAR(10), cell)-1)

аргументы

Моб: Ячейка, из которой вы хотите извлечь текст до первого разрыва строки.

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

=LEFT(B5, SEARCH(CHAR(10), B5)-1)

Затем вы можете увидеть текст перед извлечением первого разрыва строки в каждой ячейке в диапазоне B5: B8, как показано на снимке экрана ниже.

Примечание: В формуле CHAR(10) представляет разрыв строки в Windows.

2.6.2 Извлечение текста после последнего разрыва строки с формулой

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

Общая формула

=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(» «,200)),200))

аргументы

Моб: Ячейка, из которой вы хотите извлечь текст до первого разрыва строки.

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

=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(» «,200)),200))

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

Примечание: В формуле CHAR(10) представляет разрыв строки в Windows.

2.7 Извлечение текста до или после слова

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

2.7.1 Извлечь текст перед определенным словом с помощью формулы

Следующая формула поможет вам извлечь текст перед определенным словом в ячейке Excel.

Общая формула

=IFERROR(LEFT(cell,FIND(word,cell)-1),cell)

аргументы

Моб: Ячейка, из которой вы хотите извлечь текст перед определенным словом.

Слово: Слово, перед которым вы хотите извлечь весь текст. Это может быть ссылка на ячейку или фактическая текстовая строка, заключенная в двойные кавычки;

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

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

=IFERROR(LEFT(B5,FIND(«Excel»,B5)-1),B5)

Ноты:

1) Эта формула чувствительна к регистру.

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

2.7.2 Извлечь текст после определенного слова с помощью формулы

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

Общая формула

=TRIM(MID(cell,SEARCH(word,cell)+LEN(word),255))

аргументы

Моб: Ячейка, из которой вы хотите извлечь текст после определенного слова.

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

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

=TRIM(MID(B5,SEARCH(«Excel»,B5)+LEN(«Excel»),255))

Затем вы можете увидеть все тексты после извлечения слова «Excel» в каждой ячейке, как показано на снимке экрана ниже.

Ноты:

1) Эта формула нечувствительна к регистру.

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

2.7.3 Извлекайте текст до или после определенного слова с помощью замечательного инструмента

Если вы чувствуете, что использование смеси может вызвать много неудобств, здесь настоятельно рекомендуется Извлечь текст полезности Kutools for Excel. Эта функция помогает автоматизировать задачу извлечения в Excel всего за несколько кликов.

1. Нажмите Кутулс > Текст > Извлечь текст для включения этой функции.

2. в Извлечь текст диалоговом окне выполните следующие настройки.

2.1) Убедитесь, что вы находитесь в Извлечь по местоположению вкладка;

2.2). Диапазон поле, щелкните кнопка для выбора диапазона ячеек, из которых вы хотите извлечь тексты;

2.3). Опции раздел:

Чтобы извлечь все тексты перед словом, выберите перед текстом переключатель, а затем введите слово в текстовое поле;

Чтобы извлечь все тексты после слова, выберите после текста переключатель, а затем введите слово в текстовое поле.

2.4) Нажмите OK кнопка. Смотрите скриншот:

Ноты: Если вы хотите создать динамические результаты, установите флажок Вставить как формулу коробка. Затем результаты будут автоматически обновляться при изменении данных в диапазоне.

3. Затем Извлечь текст Появится диалоговое окно, вам нужно выбрать ячейку для вывода результата, а затем нажать кнопку OK кнопку.

Затем тексты до или после определенного слова в каждой ячейке в выбранном диапазоне извлекаются немедленно.

Примечание: Эта функция чувствительна к регистру.

Нажмите, чтобы узнать больше об этой функции.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


3. Извлечение между символами/словами

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

3.1 Извлечение текста между двумя символами

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

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

Как показано на снимке экрана ниже, в столбце B есть список текстовых строк, и вы хотите извлечь числовую часть между символами «/» из каждой ячейки в диапазоне, следующая формула может оказать вам услугу.

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

=SUBSTITUTE(MID(SUBSTITUTE(«/» & B5&REPT(» «,6),»/»,REPT(«,»,255)),2*255,255),»,»,»»)

Затем текст между двумя одинаковыми символами «/» извлекается из каждой ячейки диапазона. Смотрите скриншот:

Примечание:

1) B5 это ячейка, из которой вы хотите извлечь текст между двумя одинаковыми символами;

2) «/” — это два одинаковых символа, между которыми вы хотите извлечь текст.

Вам нужно изменить эти переменные на основе ваших собственных данных.

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

Узнав, как извлекать текст между двумя одинаковыми символами в ячейке, здесь мы продемонстрируем формулу для извлечения текста между двумя разными символами. Как показано на снимке экрана ниже, чтобы извлечь только адрес электронной почты между «<» и «>» из каждой ячейки в столбце B, вы можете сделать следующее.

Общая формула

=MID(LEFT(cel,FIND(«end_char»,cell)-1),FIND(«start_char»,cell)+1,LEN(cell))

аргументы

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

Конечный_символ: Конечный символ двух разных символов;

Начальный_символ: Начальный символ двух разных символов.

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

=MID(LEFT(B5,FIND(«>»,B5)-1),FIND(«<«,B5)+1,LEN(B5))

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

3.1.3 Извлекайте текст между двумя символами с помощью замечательного инструмента

Здесь настоятельно рекомендуется Извлечь строки между указанным текстом особенность Kutools for Excel чтобы помочь вам легко извлечь текст между двумя одинаковыми или разными символами в ячейке Excel.

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

2. в Помощник по формулам диалоговом окне выполните следующие настройки.

2.1) Проверьте Фильтр поле, а затем введите слово «Извлечь» в текстовое поле;

2.2). Выберите список формул поле, щелкните Извлечь строки между указанным текстом вариант;

2.3). Ввод аргументов раздел:

В разделе Ячейка поле, выберите ячейку, из которой вы хотите извлечь текст (здесь я выбираю ячейку B5);

В разделе Начальные символы введите начальный символ из двух разных символов;

В разделе Конец char(s), введите конечный символ из двух разных символов.

2.4) Нажмите Хорошо. Смотрите скриншот:

3. Затем извлекается только текст между «<» и «>» в ​​ячейке B5. Между тем, формула была создана, вы можете выбрать эту ячейку результата, а затем перетащить ее дескриптор автозаполнения вниз, чтобы извлечь тексты из других ячеек в том же списке.

Нажмите, чтобы узнать больше об этой функции.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

3.1.4 Извлечение текста между двумя символами (включая символы) по правилу

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

1. Нажмите Кутулс > Текст > Извлечь текст.

2. в Извлечь текст диалоговом окне выполните следующие настройки.

2.1) Нажмите Извлечь по правилу вкладка;

2.2). Диапазон , нажмите кнопка, чтобы выбрать диапазон ячеек, где вы хотите извлечь текст между символами;

2.3). Текст введите, введите <*>;

Советы: <(Основной ключ) и >” — это символы, между которыми вы хотите извлечь текст, * — это подстановочный знак, представляющий любое количество символов. Вы можете ввести условие в соответствии с вашими потребностями.

2.4) Нажмите Добавить кнопка, чтобы добавить условие в Описание правила список;

2.5) Нажмите Ok кнопка. Смотрите скриншот:

3. Еще один Извлечь текст появится диалоговое окно, выберите ячейку для вывода результата, а затем нажмите кнопку OK кнопку.

Затем текст между указанными символами (включая символы) извлекается из каждой ячейки в выбранном диапазоне оптом.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

3.2 Извлечение текста между двумя словами

Помимо извлечения текста между двумя символами, вам также может понадобиться извлечь текст между двумя словами. Например, извлеките все текстовые строки между двумя словами «KTE» и «feature» из каждой ячейки в столбце B, как показано на снимке экрана ниже. Вы можете попробовать один из следующих способов, чтобы сделать это.

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

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

Общая формула

=MID(cell,SEARCH(«start_word»,cell)+3,SEARCH(«end_word»,cell)-SEARCH(«start_word»,cell)-4)

аргументы

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

Начальное_слово: начальное слово из двух слов, после которого вы хотите извлечь все текстовые строки;

Длина1: длина символа начального слова.

End_word: конечное слово двух слов, которые вы хотите извлечь из всех текстовых строк перед ним.

Длина2: длина символа начального слова плюс 1.

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

=MID(B5,SEARCH(«KTE»,B5)+3,SEARCH(«feature»,B5)-SEARCH(«KTE»,B5)-4)

Внимание: В формуле число 3 представляет длину символа слова «KTE»; число 4 представляет длину символа слова «KTE» плюс 1.

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

3.2.2 Извлекайте текст между двумя словами с помощью замечательного инструмента

Многим пользователям Excel может быть трудно запомнить формулы и работать с ними. Здесь, с Извлечь строки между указанным текстом особенность Kutools for Excel, вы можете легко извлечь текст между двумя словами всего за несколько кликов.

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

2. в Формула Помощник диалоговое окно необходимо настроить следующим образом.

2.1) Проверьте Фильтр поле, а затем введите слово «Извлечь» в текстовое поле;

2.2). Выберите список формул поле, щелкните Извлечь строки между указанным текстом вариант;

2.3). Ввод аргументов раздел:

В разделе Ячейка поле, выберите ячейку, из которой вы хотите извлечь текст (здесь я выбираю ячейку B5);

В разделе Начальные символы поле введите начальное слово двух слов, которые вы хотите извлечь из всех текстовых строк после него;

В разделе Конечный символ(ы) введите конечное слово двух слов, которые вы хотите извлечь из всех текстовых строк перед ним.

2.4) Нажмите Хорошо. Смотрите скриншот:

3. Затем извлекаются все текстовые строки между двумя словами «KTE» и «feature» в ячейке B5. Между тем, формула была создана, вы можете выбрать эту ячейку результата, а затем перетащить ее дескриптор автозаполнения вниз, чтобы извлечь тексты из других ячеек в том же списке.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Извлечь числа по позиции

Для списка буквенно-цифровых строк может быть три случая:

  1. Номер стоит в начале текста;
  2. Номер в конце текста;
  3. Номер может быть где угодно в тексте.

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

1 Извлечь число слева от строки

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

Общая формула

=LEFT(cell, MATCH(FALSE, ISNUMBER(MID(cell, ROW(INDIRECT(«1:»&LEN(cell)+1)), 1) *1), 0) -1)

аргументы

Моб: Ячейка, из которой вы хотите извлечь число слева от текстовой строки.

Примечание:

1) Если вы используете Excel 2019 и более ранние версии, вам нужно нажать кнопку Ctrl + Shift + Enter клавиши для подтверждения этой формулы массива.

2) Если вы используете Excel 365 или Excel 2021, просто подтвердите эту формулу кнопкой Enter .

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

=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT(«1:»&LEN(B5)+1)), 1) *1), 0) -1)

Ноты:

1) Если ячейка содержит только числа, будет извлечено все число.

2) Эта формула извлекает только числа слева от текстовой строки. Если в середине или в конце текстовой строки есть числа, они будут проигнорированы.


2 Извлечь число справа от строки

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

Общая формула

=RIGHT(cell, LEN(cell) — MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT(«1:»&LEN(cell))), 1) *1)=FALSE, ROW(INDIRECT(«1:»&LEN(cell))), 0)))

аргументы

Моб: Ячейка, из которой вы хотите извлечь число из начала текстовой строки.

Примечание:

1) Если вы используете Excel 2019 и более ранние версии, вам нужно нажать кнопку Ctrl + Shift + Enter клавиши для подтверждения этой формулы массива.

2) Если вы используете Excel 365 или Excel 2021, просто подтвердите эту формулу клавишей Enter.

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

=RIGHT(B5, LEN(B5) — MAX(IF(ISNUMBER(MID(B5, ROW(INDIRECT(«1:»&LEN(B5))), 1) *1)=FALSE, ROW(INDIRECT(«1:»&LEN(B5))), 0)))

Ноты:

1) Если ячейка содержит только числа, будет извлечено все число.

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


3. Извлечь все числа из любой позиции в текстовой строке.

Приведенные выше методы помогают извлечь число только слева или справа от текстовой строки. Если вы хотите извлечь все числа из любой точки текстовой строки, здесь мы предлагаем вам три способа сделать это.

3.1 Извлечь все числа из любой точки строки с помощью формулы

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

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

=SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(—MID(B5, ROW(INDIRECT(«1:»&LEN(B5))), 1)) * ROW(INDIRECT(«1:»&LEN(B5))), 0), ROW(INDIRECT(«1:»&LEN(B5))))+1, 1) * 10^ROW(INDIRECT(«1:»&LEN(B5)))/10)

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

3.2 Извлечение всех чисел из любой точки строки с помощью VBA

Приведенная выше формула слишком длинная и сложная для многих пользователей Excel. На самом деле вы можете запустить скрипт VBA для автоматизации задачи в Excel. Вы можете сделать следующее.

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль. Затем скопируйте приведенный ниже VBA в окно кода модуля.

Код VBA: извлечь все числа из любой точки текстовой строки

Sub ExtrNumbersFromRange()
'Updated by Extendoffice 20220106
    Dim xRg As Range
    Dim xDRg As Range
    Dim xRRg As Range
    Dim nCellLength As Integer
    Dim xNumber As Integer
    Dim strNumber As String
    Dim xTitleId As String
    Dim xI As Integer
    xTitleId = "KutoolsforExcel"
    Set xDRg = Application.InputBox("Please select text strings:", xTitleId, "", Type:=8)
    If TypeName(xDRg) = "Nothing" Then Exit Sub
    Set xRRg = Application.InputBox("Please select output cell:", xTitleId, "", Type:=8)
    If TypeName(xRRg) = "Nothing" Then Exit Sub
    xI = 0
    strNumber = ""
  For Each xRg In xDRg
    xI = xI + 1
    nCellLength = Len(xRg)
    For xNumber = 1 To nCellLength
      If IsNumeric(Mid(xRg, xNumber, 1)) Then
        strNumber = strNumber & Mid(xRg, xNumber, 1)
      End If
    Next xNumber
    xRRg.Item(xI) = strNumber
    strNumber = ""
  Next xRg
End Sub

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

4. Затем еще один KutoolsforExcel всплывает диалоговое окно. В этом диалоговом окне выберите ячейку назначения и щелкните ОК.

Затем все числа извлекаются из каждой ячейки в выбранном диапазоне оптом.


4. Извлечение чисел после определенного текста

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

4.1 Извлечение чисел после определенного текста с помощью формулы

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

Общая формула:

=LOOKUP(10^6,1*MID(cell,MIN(FIND({0,1,2,3,4,5,6,7,8,9},cell&»0123456789″,FIND(«text»,» «&cell&» «))),{2,3,4,5,6}))

аргументы

Моб: Ячейка, из которой вы хотите извлечь числа после определенного текста;

Текст: Текст, после которого вы хотите извлечь числа.

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

=LOOKUP(10^6,1*MID(B5,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B5&»0123456789″,FIND(«No.»,» «&B5&» «))),{2,3,4,5,6}))

Ноты:

1) Если ячейка не содержит определенного текста, формула вернет #Н/Д.

2) Формула чувствительна к регистру.

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

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

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль, а затем скопируйте приведенный ниже код VBA в окно кода модуля.

Код VBA: извлекать числа после определенного текста в ячейке

Function GetNumberAfterTheChar(Rng As Range, Char As String)
'Updated by Extendoffice 20220106
Dim xValue As String
Dim xRntString As String
Dim xStart As Integer
Dim xC
    xValue = Rng.Text
    xStart = InStr(1, xValue, Char, vbTextCompare)
    If IsEmpty(xStart) Then
            GetNumberAfterTheChar = ""
            Exit Function
    End If
    If xStart < 1 Then
        GetNumberAfterTheChar = ""
        Exit Function
    End If
    xStart = xStart - 1 + Len(Char)
    If xStart < 1 Then
        GetNumberAfterTheChar = ""
        Exit Function
    End If
    xValue = Mid(xValue, xStart + 1)
    xRntString = ""
    For xI = 1 To Len(xValue)
        xC = Mid(xValue, xI, 1)
        Select Case Asc(xC)
        Case 48 To 57
            xRntString = xRntString & xC
       Case Else
            Exit For
        End Select
    Next
   GetNumberAfterTheChar = xRntString
End Function

3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.

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

=GetNumberAfterTheChar(B5,»No. «)

Ноты:

1) В этой формуле B5 — это ячейка, из которой вы хотите извлечь число, а «No. ” — это конкретный текст, после которого вы хотите извлечь число. Вы можете изменить их по мере необходимости.

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

3) Этот метод нечувствителен к регистру;

4) Если ячейка не содержит определенного текста, формула вернет пустой результат.


Статьи по теме:

Учебное пособие по Excel: разделение ячеек текста, чисел и дат (разделение на несколько столбцов)
Этот учебник разделен на три части: разделенные текстовые ячейки, разделенные числовые ячейки и разделенные ячейки даты. Каждая часть содержит различные примеры, которые помогут вам понять, как обрабатывать задание разделения при возникновении одной и той же проблемы.
Нажмите, чтобы узнать больше …

Excel Добавить текст и число в указанную позицию ячейки
В Excel добавление текста или чисел в ячейки — очень распространенная задача. Например, добавление пробела между именами, добавление префикса или суффикса к ячейкам, добавление тире к номерам социальных сетей. Здесь, в этом руководстве, перечислены почти все сценарии добавления в Excel и предоставлены соответствующие методы для вас.
Нажмите, чтобы узнать больше …

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


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

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

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

вкладка kte 201905


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

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

офисный дно

Как разделить текст в ячейке Excel?

Добрый день уважаемый читатель!

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

Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:

Мастер разбора текстов

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

Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:

  1. Для начала нужно выделить данные, которые необходимо разделить, следующим шагом на вкладке «Данные» в разделе «Работа с данными» нажимаете иконку «Текст по столбцам» и в вызванном диалоговом окне мастера указываем формат рабочего текста. Выбираем 2 вида форматов:
  • С разделителями – это когда существует текст или символ, который условно будет отделять будущее содержимое отдельных ячеек;
  • Фиксированной ширины – это когда при помощи пробелов в тексте имитируется столбики одинаковой ширины.
  1. Вторым шагом, в нашем примере, указываем символ, выполняющий роль разделителя. В случаях, когда в тексте идут подряд пару разделителей, несколько пробелов, к примеру, то установка флажка для пункта «Считать последовательные разделители одним» укажет для Excel принимать их за один разделитель. Дополнительное условие «Ограничитель строк» поможет указать, что текстовые значения, содержащиеся в кавычках не делить (к примеру, название фирмы «Рудольф, Петер и Саймон»);
  2. Последним шагом, для уже разделённых столбиков, нужно указать в диалоговом окне мастера, предварительно выделив их, выбрать необходимый формат получаемых данных:
  • Общий – не проводит изменения данных, оставляя их в первоначальном виде, будет оптимальным выбором в большинстве случаев;
  • Текстовый – данный формат, в основном, необходим для столбиков с числовыми значениями, которые программа в обязательном порядке должна интерпретировать как текст. (К примеру, это числа с разделителем по тысяче или номер пластиковой карточки);
  • Дата – этот формат используется для столбиков с датами, кстати, формат самой даты можно выбрать в выпадающем списке.

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

Рассоединяем текст с помощью формул

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

И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.

А теперь поэтапно рассмотрим формирование формулы для разделения текста в ячейке:

  • Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
  • Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).

В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.

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

Выдергиваем слова с помощью макросов VBA

Рассмотрим два способа разделить текст в ячейке:

  1. Выдергиваем отдельные слова по разделителю;
  2. Делим текст без пробелов.

Способ №1.

Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).

Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:

Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

Никакой зацепки для извлечения данных. Пару тысяч таких строк удалять вручную весьма утомительное занятие, надо сказать. Да еще и не быстрое.
Есть несколько вариантов решения подобной задачи.

СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР( A1 ;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР( A1 ;29;3129+1)
    => =ПСТР( A1 ;29;2+1)
    => =ПСТР( A1 ;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):
12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1
Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:
АГСВ
АГСВ
ОВ
КЖ
Формула будет работать почти по тому же принципу, что и формула выше, но она проще:
=ПСТР( A1 ;ПОИСК(«-«; A1 )+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0)-1)
В данном случае мы при помощи ПОИСК(«-«; A1 ) ищем сначала позицию тире, далее при помощи ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0) находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в ПСТР , которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.

СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста » Было доставлено кусков мыла 763шт., а заказывали 780 » формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780 .
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer) ‘sWord = ссылка на ячейку или непосредственно текст ‘Metod = 0 – числа ‘Metod = 1 – текст Dim sSymbol As String, sInsertWord As String Dim i As Integer If sWord = «» Then Extract_Number_from_Text = «Нет данных!»: Exit Function sInsertWord = «» sSymbol = «» For i = 1 To Len(sWord) sSymbol = Mid(sWord, i, 1) If Metod = 1 Then If Not LCase(sSymbol) Like «*[0-9]*» Then If (sSymbol = «,» Or sSymbol = «.» Or sSymbol = » «) And i > 1 Then If Mid(sWord, i — 1, 1) Like «*[0-9]*» And Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If Else If LCase(sSymbol) Like «*[0-9.,;:-]*» Then If LCase(sSymbol) Like «*[.,]*» And i > 1 Then If Not Mid(sWord, i — 1, 1) Like «*[0-9]*» Or Not Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If End If Next i Extract_Number_from_Text = sInsertWord End Function

Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text( A1 ; 0)
или
=Extract_Number_from_Text( A1 )
Для извлечения только текста
=Extract_Number_from_Text( A1 ; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?

Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1! $A$2 ) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

Оставить только цифры, Оставить только текст— думаю не надо пояснять. Здесь выбираем, что оставить в качестве результата.

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like «*[0-9.,;:-]*» Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like «*[0-9]*» Then

если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):

If LCase(sSymbol) Like «*[0-9.]*» Then

и т.д.
Скачать пример:

Число из текста и наоборот.xls (99,0 KiB, 12 857 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.

Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.

Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then

А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.

Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?

Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!

Нашла пока только такой вариант решения:
=ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
Затем в другой колонке
=ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))

Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

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

Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

Как разделить текст в excel с помощью формулы

Раннее мы рассматривали возможность разделить текст по столбцам на примере деления ФИО на составные части.

Для этого мы использовали инструмент в Excel «Текст по столбцам».

Видео: Разделить текст по столбцам в Excel / Text to Columns (Урок 6) [Eugene Avdukhov, Excel Для Всех]

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

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

Содержание

  • 1 Пример 1. Делим текст с ФИО по столбцам с помощью формул
  • 1.1 Приступаем к делению первой части текста — Фамилии
  • 1.2 Приступаем к делению второй части текста — Имя
  • 1.3 Приступаем к делению третьей части текста — Отчество
  • 2 Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

Пример 1. Делим текст с ФИО по столбцам с помощью формул Если рассматривать на примере деления ФИО, то разделить текст можно будет с помощью текстовых формул Excel, используя функцию ПСТР и НАЙТИ, которую мы рассматривали в прошлых статьях.

В этом случае вам достаточно вставить данные в определенный столбец, а формулы автоматически разделят текст так как вам необходимо. Давайте приступит к рассмотрению данного примера. У нас есть столбец со списком ФИО, наша задача разместить фамилию, имя отчество по отдельным столбцам.

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

Итак, добавим столбцы позиция 1-го и 2-го пробелам. С помощью функции НАЙТИ, как мы уже рассматривали в предыдущей статье найдем позицию первого пробелам. Для этого в ячейке «H2» пропишем формулу

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

Значит на необходимо поменять третий аргумент в функции НАЙТИ — начальная позиция — то есть позиция с которой функция будет искать искомый текст.

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

Функция будет выглядеть следующим образом:

Далее протягиваем формулу и получаем позиции 1-го и 2-го пробела.

Приступаем к делению первой части текста — Фамилии

Для этого мы воспользуемся функцией ПСТР, напомню синтаксис данной функции:

=ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — в нашем случае это 1, то есть начиная с первой буквы;
  • число_знаков — мы видим, что фамилия состоит из всех знаков, начиная с первой буквы и до 1-го пробела. А позиция первого пробела нам уже известна. Это и будет количество знаков минус 1 знак самого пробела.

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

Приступаем к делению второй части текста — Имя

Снова используем функцию =ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это тот же текст ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — в нашем случае Имя начинается с первой буква после первого пробела, зная позицию этого пробела получаем H2+1;
  • число_знаков — число знаков, то есть количество букв в имени. Мы видим, что имя у нас находится между двумя пробелами, позиции которых мы знаем. Если из позиции второго пробела отнять позицию первого пробела, то мы получим разницу, которая и будет равна количеству символов в имени, то есть I2-H2

Получаем итоговую формулу:

Приступаем к делению третьей части текста — Отчество

И снова функция =ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это тот же текст ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — Отчество у нас находится после 2-го пробелам, значит начальная позиция будет равна позиции второго пробела плюс один знак или I2+1;
  • — в нашем случае после Отчества никаких знаков нет, поэтому мы просто может взять любое число, главное, чтобы оно было больше возможного количества символов в Отчестве, я взял цифру с большим запасом — 50

Видео: Формулы в Эксель

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

Это очень просто сделать. Мы видим, что расчет первого пробела находится в ячейке H2 — НАЙТИ(» «-A2-1), а расчет второго пробела в ячейке I2 — НАЙТИ(» «-A2-H2+1) .

Видим, что в формуле ячейки I2 встречается H2 меняем ее на саму формулу и получаем в ячейке I2 вложенную формулу НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)

Смотрим первую формулу выделения Фамилии и смотрим где здесь встречается H2 или I2 и меняем их на формулы в этих ячейках, аналогично с Именем и Фамилией

  • Фамилия =ПСТР(A2-1-H2-1) получаем =ПСТР(A2-1-НАЙТИ(» «-A2-1)-1)
  • Имя =ПСТР(A2-H2+1-I2-H2) получаем =ПСТР(A2-НАЙТИ(» «-A2-1)+1; НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)-НАЙТИ(» «-A2-1))
  • Отчество =ПСТР(A2-I2+1-50) получаем =ПСТР(A2-НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)+1-50)

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

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

Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

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

Допустим у нас есть список чисел, перечисленных через запятую, нам необходимо разбить текст таким образом, чтобы каждое число было в отдельной ячейке (вместо запятых это могут быть любые другие знаки, в том числе и пробелы). То есть нам необходимо разбить текст по словам.


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

В нашем случае это запятая, но например в первой задаче мы делили ФИО и разделитель был пробел. Наш второй пример более универсальный (более удобный при большом количестве данных), так например мы удобно могли бы делить не только ФИО по отдельным ячейкам, а целое предложение — каждое слово в отдельную ячейку.

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

Теперь основная суть приема.

Шаг 1. В вспомогательном столбце находим позицию первого разделителя с помощью функции НАЙТИ. Описывать подробно функцию не буду, так как мы уже рассматривали ее раннее. Пропишем формулу в D1 и протянем ее вниз на все строки

То есть ищем запятую, в тексте, начиная с позиции 1

Шаг 2. Далее в ячейке E1 прописываем формулу для нахождения второго знака (в нашем случае запятой). Формула аналогичная, но с небольшими изменениями.

  1. Во-первых: закрепим столбец искомого значения и текста, чтобы при протягивании формулы вправо ссылки на ячейки не сдвигалась. Для этого нужно написать доллар перед столбцом B и A — либо вручную, либо выделить A1 и B1, нажать три раза клавишу F4, после этого ссылки станут не относительными, а абсолютными.
  2. Во-вторых: третий аргумент — начало позиции мы рассчитаем как позиция предыдущего разделителя (мы его нашли выше) плюс 1 то есть D1+1 так как мы знаем, что второй разделитель точно находится после первого разделителя и нам его не нужно учитывать.

Пропишем формулу и протянем ее вниз.

Шаг 3. Находимо позиции всех остальных разделителей. Для этого формулу нахождения второго разделителя (шаг 2) протянем вправо на то количество ячеек, сколько всего может быть отдельно разбитых значений с небольшим запасом. Получим все позиции разделителей. Там где ошибка #Знач означает что значения закончились и формула больше не находит разделителей. Получаем следующее

Шаг 4. Отделяем первое число от текст с помощью функции ПСТР.

Начальная позиция у нас 1, количество знаков мы рассчитываем как позиция первого разделителя минус 1: D1-1 протягиваем формулу вниз

Шаг 5. Находимо второе слово так же с помощью функции ПСТР в ячейке P1

Начальная позиция второго числа у нас начинается после первой запятой. Позиция первой запятой у нас есть в ячейке D1, прибавим единицу и получим начальную позицию нашего второго числа.

Количество знаков это есть разница между позицией третьего разделителя и второго и минус один знак, то есть E1-D1-1 Закрепим столбец A исходного текста, чтобы он не сдвигался при протягивании формулы право.

Шаг 6. Протянем формулу полученную на шаге 5 вправо и вниз и получим текст в отдельных ячейках.

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

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

Примечание. Первую позицию разделителя и первое деление слова мы делали отлично от других и из-за этого могли протянуть формулу только со вторых значений.

Во время написания задачи я заметил, что можно было бы упростить задачу. Для этого в столбце С нужно было прописать 0 значения первого разделителя. После этого находим значение первого разделителя

а первого текста как

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

В столбец «A» вставляете данные, в столбце «B» указываете разделитель, протягиваете формулы на нужное количество ячеек и получаете результат.

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

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

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

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

Оба варианта выложу для скачивания.

  1. Скачать пример: Как разделить текст по столбцам с помощью функции_1.xlsx (исправлено: доп поле)
  2. Скачать пример: Как разделить текст по столбцам с помощью функции_2.xlsx (исправлено: заведомо большое число)

(Пока оценок нет)

Как разделить текст по ячейкам формула в Excel

Часто приходится оптимизировать структуру данных после импорта в Excel. Некоторые разные значения попадают в одну и туже ячейку образуя целую строку как одно значение. Возникает вопрос: как разбить строку на ячейки в Excel. Программа располагает разными поисковыми функциями: одни ищут по ячейках другие ищут по содержимому ячеек. Ведь выполнять поиск по текстовой строке, которая содержится в ячейке ¬– это также распространенная потребность пользователей Excel. Их мы и будем использовать для разделения строк.

Как разделить текст на две ячейки Excel

Допустим на лист Excel были импортированные данные из другой программы. Из-за несовместимости структуры данных при импорте некоторые значение из разных категорий были внесены в одну ячейку. Необходимо из этой ячейки отделить целые числовые значения. Пример таких неправильно импортированных данных отображен ниже на рисунке:

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

В ячейку B3 введите следующую формулу:

Теперь скопируйте эту формулу вдоль целого столбца:

Выборка чисел из строк в отдельные ячейки.

Описание формулы для разделения текста по ячейкам:

Функция ПСТР возвращает текстовое значение содержащие определенное количество символов в строке. Аргументы функции:

  1. Первый аргумент – это ссылка на ячейку с исходным текстом.
  2. Второй аргумент – это позиция первого символа, с которого должна начинаться разделенная строка.
  3. Последний аргумент – это количество символов, которое должна содержать разделенная строка.

С первым аргументом ПСТР все понятно – это ссылка на ячейку A3. Второй аргумент мы вычисляем с помощью функции НАЙТИ(«]»;A3)+2. Она возвращает очередной номер символа первой закрывающейся квадратной скобки в строке. И к этому номеру мы добавляем еще число 2, так как нам нужен номер символа после пробела за квадратной скобкой. В последнем аргументе функция вычисляет какое количество символов будет содержать разделенная строка после разделения, учитывая положение квадратной скобки.

Обратите внимание! Что в нашем примере все исходные и разделенные строки имеют разную длину и разное количество символов. Именно поэтому мы называли такую формулу – гибкой, в начале статьи. Она подходит для любых условий при решении подобного рода задач. Гибкость придает ей сложная комбинация из функций НАЙТИ. Пользователю формулы достаточно определить закономерность и указать их в параметрах функций: будут это квадратные скобки либо другие разделительные знаки. Например, это могут быть пробелы если нужно разделить строку на слова и т.п.

В данном примере функция НАЙТИ во втором аргументе определяет положение относительно первой закрывающейся скобки. А в третьем аргументе эта же функция вычисляет положение нужного нам текста в строке относительно второй открывающийся квадратной скобки. Вычисление в третьем аргументе более сложное и оно подразумевает вычитание одной большей длинны текста от меньшей. А чтобы учитывать еще 2 пробела следует вычитать число 3. В результате чего получаем правильное количество символов в разделенной строке. С помощью такой гибкой формулы можно делать выборку разной длинны разделенного текста из разных длинны исходных строк.

Извлечение слов из текста в Excel

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

Важное замечание!

Задача 1. Подсчет количества слов в тексте

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

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

В Excel есть замечательные функции ДЛСТР() и ПОДСТАВИТЬ() . Первая подсчитывает количество символов в указанной ячейке, а вторая умеет заменять указанный символ на любой другой или на пусто (обозначается как двойные кавычки без пробела между ними «» ).

Функция ПОДСТАВИТЬ() имеет 4 аргумента:

1) Ячейка с текстом

2) То, что нужно заменить (указывается в кавычках)

3) То, на что нужно заменить (указывается в кавычка)

4) Необязательный аргумент — номер вхождения заменяемого текста. То есть, если в тексте 4 пробела, мы можем заменить только тот, номер которого укажем. Если аргумент опущен — заменяются все символы.

Первой функцией мы можем узнать длину текста в ячейке. Второй функцией мы можем заменить все пробелы в тексте на «» (пусто), то есть удалить. Если после удаления мы подсчитаем длину текста еще раз, то она сократится ровно на число удаленных пробелов. Таким образом, чтобы подсчитать пробелы, нужна формула:

Прибавим к ней единицу — и получим число слов в ячейке.

Имейте в виду, что такой способ подсчета принимает символы, отделенные от слов пробелом, за отдельные слова. Например, тире, обрамленное пробелами, также будет считаться отдельным словом. Избежать этого можно, если перед подсчетом пробелов убрать функцией ПОДСТАВИТЬ() лишние знаки из ячейки.

Задача 2. Извлечение первого слова из текста

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

Найти символ в тексте поможет функция НАЙТИ() . У нее есть 3 аргумента:

1) Искомый текст;

2) Текст, в котором ищем;

3) С какого символа начать поиск (необязательный, если опущен — функция ищет с самого начала).

Результатом работы функции является позиция первого символа найденного текста в строке. Например, формула =НАЙТИ(«плюс»;»Один плюс один») вернет в результате число 6 (именно с этой позиции начинается искомое слово «плюс»). Если в строке несколько раз содержится искомое слово, то вернется результат для первого вхождения.

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

Теперь мы можем найти позицию первого пробела

Извлечь символы до пробела поможет функция ЛЕВСИМВ . Ей нужно указать текст, а также число символов, которое нужно извлечь начиная с первого. Если найденный пробел, например, 6-ой символ, то нам нужно извлечь 6-1=5.

Формула для извлечения первого слова:

Если в строке одно слово (то есть нет пробела между первым и вторым словом), данная формула вернет ошибку. Чтобы этого избежать, нужно добавить к ней функцию ЕСЛИОШИБКА() .

Теперь формула корректно сработает для любого числа слов в ячейке.

Задача 3. Извлечение последнего слова из текста

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

  • подсчитаем, сколько в ячейке пробелов, воспользовавшись приемом из Задачи 1.

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))

  • с помощью функции ПОДСТАВИТЬ заменим последний пробел в тексте на символ, которого там точно нет (например, «*» или «$»). Чтобы заменить именно последний пробел, добавим в качестве необязательного аргумента формулу из предыдущего пункта (то есть число пробелов, так как оно равно номеру последнего пробела)

=ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))

  • теперь, когда последний пробел заменен на «*», мы можем узнать его позицию с помощью функции НАЙТИ() . В качестве текста, в котором ищем, укажем предыдущую формулу

=НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

  • если из общей длины текста мы вычтем найденную позицию звездочки, то получим число символов после звездочки (то есть длину последнего слова в ячейке)

=ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

  • теперь, зная длину последнего слова, мы можем вытащить его из ячейки с помощью функции ПРАВСИМВ() . Она работает точно так же, как ЛЕВСИМВ() , но извлекает символы не с начала, а с конца строки. В качестве количества извлекаемых символов, укажем предыдущую формулу.

Как и в предыдущей задаче, можно обернуть в ЕСЛИОШИБКА , чтобы верно работало с ячейками, в которых только 1 слово.

=ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)

Если Вас не пугает VBA и макросы, то есть гораздо более изящное решение. Добавьте в модуль книги (можно в личную книгу макросов) следующий код:

Function РЕВЕРС(str As String)

Это макрофункция. Теперь, используя ее, можно отразить текст зеркально, извлечь первое слово, как в Задаче 2 и отразить его обратно. Формула:

Берите на вооружение, если любите макросы.

Задача 4. Извлечение n-ного слова из текста

Самый интересный пример. Для решения подобной задачи нужно применить фантазию. Разберем решение поэтапно.

Помимо уже использовавшихся в статье функций, нам понадобятся еще 2:

1) ПОВТОР() . Умеет повторять указанный текст указанное число раз.

2) ПСТР() . Имеет 3 аргумента:

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

Теперь мы вооружены всем нужным инструментарием. Приступаем:

  • Для начала воспользуемся функцией ПОВТОР() , чтобы вместо 1 пробела в тексте вставить число пробелов, равное длине исходного текста. Количество повторений узнаем через уже известную функцию ДЛСТР() . Итак, формула:

=ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)))

  • Теперь каждое слово отделено друг от друга числом символов, равным общей длине строки. Чтобы извлечь слово под номером n, нам нужно узнать позицию какого-нибудь пробела между словом n и n-1 в обработанном удлиненном тексте. Это может сделать формула ниже (+1 в ней нужно для правильного поиска первого слова):

=ДЛСТР(A1)*(n-1)+1

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

  • Теперь мы может извлечь из найденной позиции число символов ДЛСТР(A1) (на рисунке — m ) и извлеченный текст всегда будет захватывать нужное нам слово целиком (с некоторым количеством предшествующих и последующих пробелов)

=ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1))

  • Осталось избавиться от лишних пробелов функцией СЖПРОБЕЛЫ()

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

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

Задача 5. Извлечение имя файла из полного пути к нему

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

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

Берем формулу из задачи 3 и заменяем в ней пробелы на «».

Получим следующую формулу:

Вставляем в ячейку и вуаля! Имя файла извлечено.

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

Поддержать наш проект и его дальнейшее развитие можно вот здесь .

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel значение ячейки в критерии
  • Excel извлечь последнее слово в ячейке
  • Excel значение ячейки в кавычки
  • Excel извлечь первое слово в ячейке
  • Excel значение ячейки в зависимости от значения других ячеек

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии