Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

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

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечь текст между словами (Формулы/Formulas)
Извлечь текст между словами
Narahon Дата: Воскресенье, 18.11.2018, 13:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем привет!
Возникла ситуация, под которую не получается написать правильную формулу, к сожалению. Всё то, что находил на форуме, не подходило под мою задачу
Суть проблемы следующая, имеется текст из которого мне нужно выдернуть фразу находящуюся после слов "автомобиля " и перед вторым! предлогом " на".
Задача усложняется тем, что текст везде разный, но искомая часть текста, всегда находиться между этими словами.
Вот два примера текста из которого нужно вытащить информацию об автомобиле (марка, модель, года выпуска):
1. Багажник Евродеталь на крышу автомобиля Mitsubishi Libero 1999-2005 г. на стандартный рейлинг (прямоугольная дуга)
2. Багажник Атлант на крышу автомобиля Лада Гранта хэтчбек с 2011 г. на гладкую крышу (аэродинамическая дуга)

Моих знаний не хватило, чтобы написать формулу, к сожалению((

Буду очень благодарен, если поможете решить проблемку) Заранее спасибо!
 
Ответить
СообщениеВсем привет!
Возникла ситуация, под которую не получается написать правильную формулу, к сожалению. Всё то, что находил на форуме, не подходило под мою задачу
Суть проблемы следующая, имеется текст из которого мне нужно выдернуть фразу находящуюся после слов "автомобиля " и перед вторым! предлогом " на".
Задача усложняется тем, что текст везде разный, но искомая часть текста, всегда находиться между этими словами.
Вот два примера текста из которого нужно вытащить информацию об автомобиле (марка, модель, года выпуска):
1. Багажник Евродеталь на крышу автомобиля Mitsubishi Libero 1999-2005 г. на стандартный рейлинг (прямоугольная дуга)
2. Багажник Атлант на крышу автомобиля Лада Гранта хэтчбек с 2011 г. на гладкую крышу (аэродинамическая дуга)

Моих знаний не хватило, чтобы написать формулу, к сожалению((

Буду очень благодарен, если поможете решить проблемку) Заранее спасибо!

Автор - Narahon
Дата добавления - 18.11.2018 в 13:01
TimSha Дата: Воскресенье, 18.11.2018, 13:10 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 615
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
если поможете

Поможет ваш файл-пример.
А без него формулой (ПСТР) берете из текста то, что находится между " на крышу" и " г. на". Как вариант... ;)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
Сообщение
если поможете

Поможет ваш файл-пример.
А без него формулой (ПСТР) берете из текста то, что находится между " на крышу" и " г. на". Как вариант... ;)

Автор - TimSha
Дата добавления - 18.11.2018 в 13:10
Narahon Дата: Воскресенье, 18.11.2018, 13:26 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Поможет ваш файл-пример.


Файлик во вложении
К сообщению приложен файл: 8529165.xlsx(10.0 Kb)
 
Ответить
Сообщение
Поможет ваш файл-пример.


Файлик во вложении

Автор - Narahon
Дата добавления - 18.11.2018 в 13:26
TimSha Дата: Воскресенье, 18.11.2018, 13:52 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 615
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
Формулой лень... ;) Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^ и пропуском 1, 3 столбов.
К сообщению приложен файл: 0915426.xlsx(22.9 Kb)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)

Сообщение отредактировал TimSha - Воскресенье, 18.11.2018, 13:52
 
Ответить
СообщениеФормулой лень... ;) Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^ и пропуском 1, 3 столбов.

Автор - TimSha
Дата добавления - 18.11.2018 в 13:52
Narahon Дата: Воскресенье, 18.11.2018, 14:01 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^? и пропуском 1, 3 столбов.


Спасибо, это конечно решает проблему, но мне именно формулой было важно, так как извлекаемый текст я подставлял в другой массив текста....
 
Ответить
Сообщение
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^? и пропуском 1, 3 столбов.


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

Автор - Narahon
Дата добавления - 18.11.2018 в 14:01
Светлый Дата: Воскресенье, 18.11.2018, 14:13 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 198 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Код
=ЛЕВБ(ПСТР(A2;ПОИСК("автомобиля";A2)+11;99);ПОИСК(". на ";ПСТР(A2;ПОИСК("автомобиля";A2)+11;99)))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеДобрый день!
Код
=ЛЕВБ(ПСТР(A2;ПОИСК("автомобиля";A2)+11;99);ПОИСК(". на ";ПСТР(A2;ПОИСК("автомобиля";A2)+11;99)))

Автор - Светлый
Дата добавления - 18.11.2018 в 14:13
Narahon Дата: Воскресенье, 18.11.2018, 14:18 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Светлый, добрый день!
Огромное Вам спасибо за помощь, очень сильно выручили, премного благодарен!
 
Ответить
СообщениеСветлый, добрый день!
Огромное Вам спасибо за помощь, очень сильно выручили, премного благодарен!

Автор - Narahon
Дата добавления - 18.11.2018 в 14:18
sv2014 Дата: Воскресенье, 18.11.2018, 20:39 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация: 60 ±
Замечаний: 0% ±

Excel 2013
Narahon, ещё вариант функции в Z1 и Z2 и UDF в AB и в AC и UDF aaa

[vba]
Код
Function aaa$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "автомобиля (.+)(?= на)"
  aaa = Mid(.Execute(t)(0), 12)
End With
End Function
[/vba]

[vba]
Код
Function vvv$(t$)
  vvv = Split(Split(t, "автомобиля")(1), "на")(0)
End Function
[/vba]

[vba]
Код
Function bbb$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "автомобиля (.+) на"
  bbb = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]

[vba]
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($A1;"автомобиля";ПОВТОР(" ";99));99));"на";ПОВТОР(" ";99));99))
[/vba]
К сообщению приложен файл: example_18_11_2.xls(38.0 Kb)


Сообщение отредактировал sv2014 - Воскресенье, 18.11.2018, 21:21
 
Ответить
СообщениеNarahon, ещё вариант функции в Z1 и Z2 и UDF в AB и в AC и UDF aaa

[vba]
Код
Function aaa$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "автомобиля (.+)(?= на)"
  aaa = Mid(.Execute(t)(0), 12)
End With
End Function
[/vba]

[vba]
Код
Function vvv$(t$)
  vvv = Split(Split(t, "автомобиля")(1), "на")(0)
End Function
[/vba]

[vba]
Код
Function bbb$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "автомобиля (.+) на"
  bbb = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]

[vba]
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($A1;"автомобиля";ПОВТОР(" ";99));99));"на";ПОВТОР(" ";99));99))
[/vba]

Автор - sv2014
Дата добавления - 18.11.2018 в 20:39
Светлый Дата: Воскресенье, 18.11.2018, 21:23 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 198 ±
Замечаний: 0% ±

Excel 2010
Немного упростил формулу:
Код
=ПСТР(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2)+11;99)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеНемного упростил формулу:
Код
=ПСТР(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2)+11;99)

Автор - Светлый
Дата добавления - 18.11.2018 в 21:23
bmv98rus Дата: Воскресенье, 18.11.2018, 21:27 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация: 238 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата Светлый, 18.11.2018 в 21:23, в сообщении № 9 ()
". на ",
- опасно. не факт что всегда "г. на " и даже что "г на "
 
Ответить
Сообщение
Цитата Светлый, 18.11.2018 в 21:23, в сообщении № 9 ()
". на ",
- опасно. не факт что всегда "г. на " и даже что "г на "

Автор - bmv98rus
Дата добавления - 18.11.2018 в 21:27
Светлый Дата: Воскресенье, 18.11.2018, 21:44 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 198 ±
Замечаний: 0% ±

Excel 2010
- опасно
Согласен, поэтому первый вариант сделал длиннее. Но по разнообразию вариантов примера вторая формула вполне приемлема.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
- опасно
Согласен, поэтому первый вариант сделал длиннее. Но по разнообразию вариантов примера вторая формула вполне приемлема.

Автор - Светлый
Дата добавления - 18.11.2018 в 21:44
sv2014 Дата: Понедельник, 19.11.2018, 06:04 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация: 60 ±
Замечаний: 0% ±

Excel 2013
Narahon, ещё вариант UDF в столбце AF

[vba]
Код
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "^(?:.+)автомобиля (.+)(?= на)(?:.+)$"
  uuu = .Replace(t, "$+")
End With
End Function
[/vba]
К сообщению приложен файл: example_19_11_2.xls(39.5 Kb)
 
Ответить
СообщениеNarahon, ещё вариант UDF в столбце AF

[vba]
Код
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "^(?:.+)автомобиля (.+)(?= на)(?:.+)$"
  uuu = .Replace(t, "$+")
End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 19.11.2018 в 06:04
_Boroda_ Дата: Понедельник, 19.11.2018, 10:56 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата Светлый, 18.11.2018 в 21:44, в сообщении № 11 ()
Но по разнообразию вариантов

Тогда еще на основе упрощенной
Код
=ПРАВБ(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2))


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата Светлый, 18.11.2018 в 21:44, в сообщении № 11 ()
Но по разнообразию вариантов

Тогда еще на основе упрощенной
Код
=ПРАВБ(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2))

Автор - _Boroda_
Дата добавления - 19.11.2018 в 10:56
Светлый Дата: Понедельник, 19.11.2018, 15:34 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 198 ±
Замечаний: 0% ±

Excel 2010
Тогда еще на основе упрощенной

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


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Тогда еще на основе упрощенной

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

Автор - Светлый
Дата добавления - 19.11.2018 в 15:34
_Boroda_ Дата: Понедельник, 19.11.2018, 16:11 | Сообщение № 15
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Точно. Стормозил


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

Автор - _Boroda_
Дата добавления - 19.11.2018 в 16:11
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечь текст между словами (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!