Excel копировать до символа

 

dlevin

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

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

Добрый день!

Нужно скопировать часть текста начиная с «С.» и весь последующий текст в ячейке в другой столбец. Вот пример:
Восстание арабов / Россия в глобальной политике.- 2011.- № 1.- С. 8-15.
Нужно скопировать только С. 8-15. в другой столбец.
Подскажите пожалуйста как это сделать

автоматически


Макрос или формула не важно, главное чтоб работало.  :)

Изменено: dlevin08.07.2013 21:07:19

 

KuklP

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

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

E-mail и реквизиты в профиле.

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

Я сам — дурнее всякого примера! …

 

dlevin

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

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

4000 строк в таблице.

Изменено: dlevin08.07.2013 21:08:18

 

KuklP

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

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

E-mail и реквизиты в профиле.

#4

08.07.2013 09:54:24

Всего-то. И что? Я ответил на Ваш вопрос? Если Вас мой ответ не устраивает, срочно бегите знакомиться с правилами форума и выкладывайте пример. А заодно укажите какой вариант(формулы, макросы) хотите.
Для затравки:

Код
Public Function www$(s$)
    www = Right$(s, Len(s) - InStrRev(s, "С.", , 0) + 1)
End Function

Изменено: KuklP08.07.2013 10:08:07
(Теги.)

Я сам — дурнее всякого примера! …

 

китин

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

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

#5

08.07.2013 10:07:59

ну,если все фразы выглядят именно так,то ,как вариант

Код
=ПОДСТАВИТЬ(A1;ЛЕВСИМВ(A1;ПОИСК("№";A1)+4);"")

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

dlevin

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

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

Количество символов после «С.» и до конца строки разное, т.к. меняются значения страниц и разное кол-во пробелов. С. 10-28. или С. 10 — 28.

Изменено: dlevin08.07.2013 21:08:34

 

KuklP

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

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

E-mail и реквизиты в профиле.

Вот для этого и нужен файл-пример.

Я сам — дурнее всякого примера! …

 

китин

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

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

#8

08.07.2013 10:19:07

Код
ПОИСК("№";A1)

формула удаляет все символы до символа №,осталяя все после него

Изменено: китин08.07.2013 10:19:49

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

KuklP

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

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

E-mail и реквизиты в профиле.

Смотрите.

Я сам — дурнее всякого примера! …

 

dlevin

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

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

KuklP, вот это то, что нужно! Спасибо! А как просмотреть макрос и скопировать его на другой лист? Я чайник в excel  :)

 

KuklP

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

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

E-mail и реквизиты в профиле.

Макрос(UDF) находится в общем модуле, копировать в листы его не надо. Просто пишите формулы на листе. Увидеть его можно нажав alt+F11.

Я сам — дурнее всякого примера! …

 

dlevin

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

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

Разобрался. Спасибо большое за помощь!!!  :)

 

Юрий М

Модератор

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

Контакты см. в профиле

dlevin, у Вас ни одного сообщения без цитаты, кроме первого (зато в первом полно «пустых» строк — зачем?) . Так ли они нужны?

 

Владимир

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

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

или:

=ПСТР(E2;НАЙТИ(«С.»;E2);20)

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

KuklP

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

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

E-mail и реквизиты в профиле.

Володь, а если в названии статьи раньше встречается «С.»? Поиск идет слева-направо, а надо наоборот. китин предложил искать по №, это резонно, но ведь и № может встретиться раньше  :)

Изменено: KuklP08.07.2013 16:39:13

Я сам — дурнее всякого примера! …

 

Михаил С.

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

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

#16

08.07.2013 17:32:43

Код
=ЗАМЕНИТЬ(E2;1;НАЙТИ("С. ";E2)-1;"")

Изменено: Михаил С.08.07.2013 17:35:18

 

KuklP

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

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

E-mail и реквизиты в профиле.

:D М-да… Моя ЮДФ короче.

Я сам — дурнее всякого примера! …

 

Михаил С.

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

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

#18

08.07.2013 17:38:51

Цитата
KuklP пишет:
а если в названии статьи раньше встречается «С.»?
Код
=ПСТР(E2;ПРОСМОТР(2;1/(КОДСИМВ(ПСТР(E2;СТРОКА($1:$1000);1))=209);СТРОКА($1:$1000));99)

УП
У ЮДФ есть недостаток — работает только на своем компе.

Изменено: Михаил С.08.07.2013 17:41:48

 

KuklP

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

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

E-mail и реквизиты в профиле.

Опа! Как так получилось, что наши посты поменялись местами? Миш, я когда писал, видел твой последний пост, о нем и писал  :)  
Понял. Ты разбил его на 2 части.
ЮДФ будет работать на любом компе, где откроют файл с ЮДФ.

Изменено: KuklP08.07.2013 17:44:37

Я сам — дурнее всякого примера! …

 

Я свой предпоследний пост (который ты видел) изменил, и добавил другой :)

 

KuklP

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

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

E-mail и реквизиты в профиле.

Я тоже изменил. :)

Я сам — дурнее всякого примера! …

 

Владимир

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

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

#22

08.07.2013 19:41:04

Цитата
KuklP пишет:
а если в названии статьи раньше встречается «С.»?

А мы тогда так:

=ПСТР(E2;ПОИСК(«С.*-*»;E2);20)

:)

Хотя нет, не получится так.

Изменено: Владимир05.10.2014 10:17:25

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

k61

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

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

#23

09.07.2013 05:03:02

Цитата
KuklP пишет: Володь, а если в названии статьи раньше встречается «С.»

А если «С.» отсутствует?

Код
Public Function www_1$(s$)
f = Split(s, "С.")
If UBound(f) > 0 Then www_1 = "C." & f(UBound(f))
End Function
 

Keks

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

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

Добрый день а как можно пропустить это:

http://сайт.ру/request/

что бы остался один сайт сайт.ру

 

sv2013

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

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

#25

17.11.2016 13:04:13

добрый день,еще вариант функции в G1,преимущество этих функций-простота

Код
Function vvvv$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "С..+$"
    vvvv = .Execute(t)(0)
 End With
End Function

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

  • example_17_11_2016_pl_С.xls (35 КБ)

Изменено: sv201317.11.2016 13:04:30

  • Первые N символов – формула в Excel
  • Разбить столбец по количеству символов
  • Извлечь первые символы автозаполнением
  • Извлечь первые символы с помощью регулярных выражений
  • Оставить первые / последние N символов в строке в 1 клик

Простейшая задача – взять и отделить от ячейки первый символ, скопировав его в соседний столбец. Или выбрать и оставить в ней первые 2, 3, 4… N символов.

Например, в строках переменной длины первые 6 символов – определенный цифровой код, который нужно скопировать в отдельный столбец.

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

Рассмотрим все известные решения, снабдив их примерами. Итак, поехали.

Вытащить первый символ или N символов ячейки формулой проще простого. И есть даже 2 функции Excel, которые в этом помогут:

  1. ЛЕВСИМВ;
  2. ПСТР.

А так будут выглядеть формулы, извлекающие первые N символов из ячейки A1. Подставьте свое число вместо N, чтобы формулы работали:

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

Например:

  • извлечь текст после цифр
  • извлечь первые N цифр
  • сделать первую букву ячейки заглавной

Разбить столбец по количеству символов

Можно получить первые N символов столбца, разбив его по количеству символов. Первые N останутся, а остальные будут перенесены в соседний справа. Можно разбить и на несколько — Excel не ставит ограничений на количество столбцов.

извлечение первых символов разбивкой текста по столбцам

Разбиваем столбец на два, оставляя в нем первые 6 символов и переносим оставшиеся в соседний

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

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

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

Автозаполнение – замечательная процедура в Excel. Алгоритм действий прост.

  1. Заполняем пару ячеек соседнего столбца вручную;
  2. Уже при вводе третьей может быть предложено автозаполнение;
  3. Если согласны – жмём клавишу Ввод (Enter).

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

пример работы автозаполнения в Excel

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

Извлечь первые символы с помощью регулярных выражений

Чтобы выбрать из строки символы по регулярным выражениям, в Google Spreadsheets доступна функция REGEXEXTRACT. Там она существует уже очень давно.

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

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

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

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

Функции доступны абсолютно бесплатно и работают при подключенной надстройке !SEMTools для Excel даже в стартовой версии.

Оставить первые / последние N символов в строке в 1 клик

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

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

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

Смотрите демонстрацию ниже:

Как взять первые символы из ячеек Excel с помощью !SEMTools

Берем и вытаскиваем из произвольных ячеек первые / последние символы в 1 клик

Процедуры доступны в полной версии надстройки, но попробовать можно и бесплатно.

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

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

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

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

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

Для вывода значений ячейки до знака скобки необходимо воспользоваться регулярными выражениями. Но поскольку формула есть только в Гугл Таблицах, нужно скопировать столбец туда и использовать формулу =REGEXEXTRACT(B3,»^[^(]*»).

Вывод части текста до символа

Разбор формулы

Давайте разберём формулу.

REGEXEXTRACT — это стандартная функция для извлечения данных с помощью регулярного выражения.B3 — ячейка с текстом^[^(]* — само регулярное выражение, которое говорит следующее.

Вывод части текста до символа с помощью Excel

Можно всё сделать проще с помощью поиска и замены в Excel.

Для этого просто выделяем нужные данные и жмём ctrl+H. Для поиска ставим » (*» — замена всего до знака пробела и скобки включая её. Если нужно заменить после знака скобки, то меняем положение на *(.

Жмём заменить всё и получаем чистый список. Вуаля!

В учебнике показано, как использовать функции подстроки в 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)

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

valentin1234

Дата: Суббота, 04.01.2014, 19:56 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Здравствуйте! Столкнулся со следующей задачей! Есть Ключевые запросы, некоторые из них в кавычках, а после некоторых стоят минус слова, все после знака -минус.
«Ключевая фраза 1»
«Ключевая фраза 2»
ключевая фраза 3 -минус1 -минус2 -минус3
ключевая фраза 4 -минус4 -минус5 -минус6
Все это в одном столбце.
Необходима формула чтоб во 2м столбце были только ключевые фразы, без кавычек и минус слов, а в 3м стобце если есть минус слова в таком же виде.
т.е 2й столбец
Ключевая фраза 1
Ключевая фраза 2
Ключевая фраза 3
Ключевая фраза 4
и без пробела в конце
3й столбец
пусто
пусто
-минус1 -минус2 -минус3
-минус4 -минус5 -минус6
Если в ключевике встречаются плюсы, пусть остаются без изменения, минус слова в любом случае начинаются с —
В прикрепленном файле есть пример. Это вообще возможно сделать с помощью формул экселя, я чето не нашел
Всем заранее спасибо, если не понятно написал, с удовольствием уточню.

К сообщению приложен файл:

____.xlsx
(17.8 Kb)

 

Ответить

Pelena

Дата: Суббота, 04.01.2014, 20:10 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Так подойдёт?

К сообщению приложен файл:

1549448.xlsx
(23.8 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

AlexM

Дата: Суббота, 04.01.2014, 20:21 |
Сообщение № 3

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

valentin1234

Дата: Суббота, 04.01.2014, 20:39 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

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

 

Ответить

Pelena

Дата: Суббота, 04.01.2014, 20:46 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Тогда так

Код

=ЛЕВСИМВ(ПОДСТАВИТЬ(B2;»»»»;»»)&» -«;ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;»»)&» -«)-2)

или добавить СЖПРОБЕЛЫ()

Код

=СЖПРОБЕЛЫ(ЛЕВСИМВ(ПОДСТАВИТЬ(B2;»»»»;»»)&»-«;ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;»»)&»-«)-1))


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

vikttur

Дата: Воскресенье, 05.01.2014, 00:47 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Код

=ПОДСТАВИТЬ(ЛЕВСИМВ(B2;ПОИСК(«-«;B2&» -«)-2);»»»»;)

 

Ответить

valentin1234

Дата: Воскресенье, 05.01.2014, 01:16 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 5


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Спасибо большое, друзья! Очень помогли)

 

Ответить

FERZb

Дата: Понедельник, 20.01.2014, 18:40 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Добрый день) Помогите с похожей проблемой. Необходимо из строки вытянуть название города /nsk/more-info/?calculate_for=141265769370487. цифры вытянул а вот город не могу.

 

Ответить

Pelena

Дата: Понедельник, 20.01.2014, 18:46 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

FERZb, прочитайте Правила форума и создайте свою тему, не забудьте приложить файл с примерами


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

FERZb

Дата: Понедельник, 20.01.2014, 18:50 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

СОРИ)

 

Ответить

Andersen

Дата: Среда, 11.11.2015, 01:58 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Вопрос по формуле :

Код

ЛЕВСИМВ(ПОДСТАВИТЬ(B2;»»»»;»»)&» -«;ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;»»)&» -«)-2)

&» -» -за что отвечает данный компонент формулы? и как он работает….
[moder]Для оформления формул используйте теги — кнопка fx. Поправил.

Сообщение отредактировал AndersenСреда, 11.11.2015, 02:34

 

Ответить

_Boroda_

Дата: Среда, 11.11.2015, 02:22 |
Сообщение № 12

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Это знак объединения (сцепки). Аналог функции СЦЕПИТЬ
=»ааа»&»ввв» даст нам аааввв


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Andersen

Дата: Среда, 11.11.2015, 02:30 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

[_Boroda_

Код

ЛЕВСИМВ(ПОДСТАВИТЬ(B2;»»»»;»»)&» -«;ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;»»)&» -«)-2)

а в контексте данной формулы? Если мы в примере, приведенном автором темы. удаляем этот компонент, то там, где «-» отсутствует, получаем ошибку #ЗНАЧ! . Почему — мне не понятно, как и вообще наличие данного символа в этой формуле.

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

Сообщение отредактировал AndersenСреда, 11.11.2015, 02:46

 

Ответить

_Boroda_

Дата: Среда, 11.11.2015, 02:51 |
Сообщение № 14

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

удаляем этот компонент, то там, где «-» отсутствует, получаем ошибку #ЗНАЧ!

Вот как раз для этого мы и приклеиваем в конце «-«. Смотрите по порядку —

Код

СЖПРОБЕЛЫ(ЛЕВСИМВ(ПОДСТАВИТЬ(B8;»»»»;»»)&»-«;ПОИСК(«-«;ПОДСТАВИТЬ(B8;»»»»;»»)&»-«)-1))

я думаю, что можно переписать вот так

Код

СЖПРОБЕЛЫ(ЛЕВСИМВ(ПОДСТАВИТЬ(B2;»»»»;);ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;)&»-«)-1))

1. ПОДСТАВИТЬ(B8;»»»»;) — меняем кавычки на пусто. Если кавычек нет, то ничего не делается.
2. ПОДСТАВИТЬ(B2;»»»»;)&»-» — приклеиваем к полученному в п.1 справа минус.
3. ПОИСК(«-«;ПОДСТАВИТЬ(B2;»»»»;)&»-«) — ищем номер позиции первого вхождения минуса в конструкции из п.2. Здесь возможны 2 варианта —
а) минус уже есть в исходной фразе, тогда п.3 нам даст его позицию (например, во фразе ффф-ввв ПОИСК даст нам 4 — минус находится четвертым по счету);
б) в исходной фразе минуса нет, тогда, если бы мы не приклеили его в хвост (в п.2), то ПОИСК дал бы нам ошибку, но мы приклеили и ПОИСК даст нам число, равное длине исходной строки плюс 1 (единица — это тот самый минус, это ведь тоже символ).
4. ЛЕВСИМВ(п.1;п.4-2) — отрежет из полученного в п.1 столько символов слева, сколько мы получили в п.3 и еще минус 1 символ (это как раз наш минус)
5. СЖПРОБЕЛЫ(п.4) — убивает возможный пробел в конце (для исходных фраз типа ааа -ввв).


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Andersen

Дата: Среда, 11.11.2015, 03:25 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

_Boroda_

спасибо, теперь все понятно

 

Ответить

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

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

  • Excel копировать до пробела
  • Excel копировать диапазон на другой лист
  • Excel копировать данные без формул
  • Excel копировать весь лист vba
  • Excel копирования новую строку

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

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