Извлечь текст между словами
Narahon
Дата: Воскресенье, 18.11.2018, 13:01 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Всем привет! Возникла ситуация, под которую не получается написать правильную формулу, к сожалению. Всё то, что находил на форуме, не подходило под мою задачу Суть проблемы следующая, имеется текст из которого мне нужно выдернуть фразу находящуюся после слов "автомобиля " и перед вторым! предлогом " на". Задача усложняется тем, что текст везде разный, но искомая часть текста, всегда находиться между этими словами. Вот два примера текста из которого нужно вытащить информацию об автомобиле (марка, модель, года выпуска): 1. Багажник Евродеталь на крышу автомобиля Mitsubishi Libero 1999-2005 г. на стандартный рейлинг (прямоугольная дуга) 2. Багажник Атлант на крышу автомобиля Лада Гранта хэтчбек с 2011 г. на гладкую крышу (аэродинамическая дуга) Моих знаний не хватило, чтобы написать формулу, к сожалению(( Буду очень благодарен, если поможете решить проблемку) Заранее спасибо!
Всем привет! Возникла ситуация, под которую не получается написать правильную формулу, к сожалению. Всё то, что находил на форуме, не подходило под мою задачу Суть проблемы следующая, имеется текст из которого мне нужно выдернуть фразу находящуюся после слов "автомобиля " и перед вторым! предлогом " на". Задача усложняется тем, что текст везде разный, но искомая часть текста, всегда находиться между этими словами. Вот два примера текста из которого нужно вытащить информацию об автомобиле (марка, модель, года выпуска): 1. Багажник Евродеталь на крышу автомобиля Mitsubishi Libero 1999-2005 г. на стандартный рейлинг (прямоугольная дуга) 2. Багажник Атлант на крышу автомобиля Лада Гранта хэтчбек с 2011 г. на гладкую крышу (аэродинамическая дуга) Моих знаний не хватило, чтобы написать формулу, к сожалению(( Буду очень благодарен, если поможете решить проблемку) Заранее спасибо! Narahon
Ответить
Сообщение Всем привет! Возникла ситуация, под которую не получается написать правильную формулу, к сожалению. Всё то, что находил на форуме, не подходило под мою задачу Суть проблемы следующая, имеется текст из которого мне нужно выдернуть фразу находящуюся после слов "автомобиля " и перед вторым! предлогом " на". Задача усложняется тем, что текст везде разный, но искомая часть текста, всегда находиться между этими словами. Вот два примера текста из которого нужно вытащить информацию об автомобиле (марка, модель, года выпуска): 1. Багажник Евродеталь на крышу автомобиля Mitsubishi Libero 1999-2005 г. на стандартный рейлинг (прямоугольная дуга) 2. Багажник Атлант на крышу автомобиля Лада Гранта хэтчбек с 2011 г. на гладкую крышу (аэродинамическая дуга) Моих знаний не хватило, чтобы написать формулу, к сожалению(( Буду очень благодарен, если поможете решить проблемку) Заранее спасибо! Автор - Narahon Дата добавления - 18.11.2018 в 13:01
TimSha
Дата: Воскресенье, 18.11.2018, 13:10 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация:
94
±
Замечаний:
0% ±
Excel 2013 Pro +
Поможет ваш файл-пример. А без него формулой (ПСТР) берете из текста то, что находится между " на крышу" и " г. на". Как вариант...
Поможет ваш файл-пример. А без него формулой (ПСТР) берете из текста то, что находится между " на крышу" и " г. на". Как вариант... TimSha
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
Ответить
Сообщение Поможет ваш файл-пример. А без него формулой (ПСТР) берете из текста то, что находится между " на крышу" и " г. на". Как вариант... Автор - TimSha Дата добавления - 18.11.2018 в 13:10
Narahon
Дата: Воскресенье, 18.11.2018, 13:26 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Ответить
Сообщение Файлик во вложенииАвтор - Narahon Дата добавления - 18.11.2018 в 13:26
TimSha
Дата: Воскресенье, 18.11.2018, 13:52 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация:
94
±
Замечаний:
0% ±
Excel 2013 Pro +
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^ и пропуском 1, 3 столбов.
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^ и пропуском 1, 3 столбов. TimSha
"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
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^? и пропуском 1, 3 столбов.
Спасибо, это конечно решает проблему, но мне именно формулой было важно, так как извлекаемый текст я подставлял в другой массив текста....
Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^? и пропуском 1, 3 столбов.
Спасибо, это конечно решает проблему, но мне именно формулой было важно, так как извлекаемый текст я подставлял в другой массив текста....Narahon
Ответить
Сообщение Формулой лень... Сделал через данные - текст по столбам, с предварительной ч/з Ctrl+H расстановкой "крыши" - ^? и пропуском 1, 3 столбов.
Спасибо, это конечно решает проблему, но мне именно формулой было важно, так как извлекаемый текст я подставлял в другой массив текста....Автор - Narahon Дата добавления - 18.11.2018 в 14:01
Светлый
Дата: Воскресенье, 18.11.2018, 14:13 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Добрый день!Код
=ЛЕВБ(ПСТР(A2;ПОИСК("автомобиля";A2)+11;99);ПОИСК(". на ";ПСТР(A2;ПОИСК("автомобиля";A2)+11;99)))
Добрый день!Код
=ЛЕВБ(ПСТР(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
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Светлый , добрый день! Огромное Вам спасибо за помощь, очень сильно выручили, премного благодарен!
Светлый , добрый день! Огромное Вам спасибо за помощь, очень сильно выручили, премного благодарен!Narahon
Ответить
Сообщение Светлый , добрый день! Огромное Вам спасибо за помощь, очень сильно выручили, премного благодарен!Автор - Narahon Дата добавления - 18.11.2018 в 14:18
sv2014
Дата: Воскресенье, 18.11.2018, 20:39 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
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]
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
Сообщение отредактировал 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Немного упростил формулу:Код
=ПСТР(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2)+11;99)
Немного упростил формулу:Код
=ПСТР(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2)+11;99)
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Немного упростил формулу:Код
=ПСТР(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2)+11;99)
Автор - Светлый Дата добавления - 18.11.2018 в 21:23
bmv98rus
Дата: Воскресенье, 18.11.2018, 21:27 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация:
768
±
Замечаний:
0% ±
Excel 2013/2016
- опасно. не факт что всегда "г. на " и даже что "г на "
- опасно. не факт что всегда "г. на " и даже что "г на " bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение - опасно. не факт что всегда "г. на " и даже что "г на " Автор - bmv98rus Дата добавления - 18.11.2018 в 21:27
Светлый
Дата: Воскресенье, 18.11.2018, 21:44 |
Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Согласен, поэтому первый вариант сделал длиннее. Но по разнообразию вариантов примера вторая формула вполне приемлема.
Согласен, поэтому первый вариант сделал длиннее. Но по разнообразию вариантов примера вторая формула вполне приемлема. Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Согласен, поэтому первый вариант сделал длиннее. Но по разнообразию вариантов примера вторая формула вполне приемлема. Автор - Светлый Дата добавления - 18.11.2018 в 21:44
sv2014
Дата: Понедельник, 19.11.2018, 06:04 |
Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
Narahon , ещё вариант UDF в столбце AF [vba]Код
Function uuu$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "^(?:.+)автомобиля (.+)(?= на)(?:.+)$" uuu = .Replace(t, "$+") End With End Function
[/vba]
Narahon , ещё вариант UDF в столбце AF [vba]Код
Function uuu$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "^(?:.+)автомобиля (.+)(?= на)(?:.+)$" uuu = .Replace(t, "$+") End With End Function
[/vba]sv2014
Ответить
Сообщение 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
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Но по разнообразию вариантов
Тогда еще на основе упрощеннойКод
=ПРАВБ(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2))
Но по разнообразию вариантов
Тогда еще на основе упрощеннойКод
=ПРАВБ(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Но по разнообразию вариантов
Тогда еще на основе упрощеннойКод
=ПРАВБ(ЛЕВБ(A2;ПОИСК(". на ";A2));ПОИСК("автомобиля";A2))
Автор - _Boroda_ Дата добавления - 19.11.2018 в 10:56
Светлый
Дата: Понедельник, 19.11.2018, 15:34 |
Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Тогда еще на основе упрощенной
Первый пример удачно, остальные неправильно.
Тогда еще на основе упрощенной
Первый пример удачно, остальные неправильно.Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Тогда еще на основе упрощенной
Первый пример удачно, остальные неправильно.Автор - Светлый Дата добавления - 19.11.2018 в 15:34
_Boroda_
Дата: Понедельник, 19.11.2018, 16:11 |
Сообщение № 15
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация:
6479
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Точно. Стормозил
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Точно. Стормозил Автор - _Boroda_ Дата добавления - 19.11.2018 в 16:11