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

Вход

Регистрация

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

 

= Мир MS Excel/найти слова в списке слов и проставить перед ними знак + - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » найти слова в списке слов и проставить перед ними знак + (Формулы/Formulas)
найти слова в списке слов и проставить перед ними знак +
aleksandr-1205 Дата: Среда, 25.05.2016, 19:17 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Здравствуйте! Подскажите, пжл, как можно сделать такую задачу: в столбце А есть список фраз, в столбце B находятся предлоги и союзы. Нужно в столбце C вывести все фразы из столбца А, но чтоб у них перед указанными словами в столбце B стоял знак +. Другими словами мне нужно проставить знак + перед предлогами и союзами в фразах. В столбце B предлоги могут иметь пробел до и после себя.
К сообщению приложен файл: 6957838.xlsx(10Kb)
 
Ответить
СообщениеЗдравствуйте! Подскажите, пжл, как можно сделать такую задачу: в столбце А есть список фраз, в столбце B находятся предлоги и союзы. Нужно в столбце C вывести все фразы из столбца А, но чтоб у них перед указанными словами в столбце B стоял знак +. Другими словами мне нужно проставить знак + перед предлогами и союзами в фразах. В столбце B предлоги могут иметь пробел до и после себя.

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 19:17
gling Дата: Среда, 25.05.2016, 19:37 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 325 ±
Замечаний: 0% ±

2010
Здравствуйте. Изобрел формулу массива. Но если несколько предлогов в тексте результат будет не правильный.
Код
=ЛЕВСИМВ(A2;СУММ(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0)))&"+"&ПСТР(A2;СУММ(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0));99)
если написать
Код
=ЛЕВСИМВ(A2;МАКС(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0)))&"+"&ПСТР(A2;МАКС(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0));99)
то будет + проставлять только перед одним последним предлогом в предложении;
Код
=ЛЕВСИМВ(A2;МИН(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);9^9)))&"+"&ПСТР(A2;МИН(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);9^9));99)
перед первым


Сообщение отредактировал gling - Среда, 25.05.2016, 21:45
 
Ответить
СообщениеЗдравствуйте. Изобрел формулу массива. Но если несколько предлогов в тексте результат будет не правильный.
Код
=ЛЕВСИМВ(A2;СУММ(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0)))&"+"&ПСТР(A2;СУММ(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0));99)
если написать
Код
=ЛЕВСИМВ(A2;МАКС(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0)))&"+"&ПСТР(A2;МАКС(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);0));99)
то будет + проставлять только перед одним последним предлогом в предложении;
Код
=ЛЕВСИМВ(A2;МИН(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);9^9)))&"+"&ПСТР(A2;МИН(ЕСЛИОШИБКА(ПОИСК($B$2:$B$8;A2;1);9^9));99)
перед первым

Автор - gling
Дата добавления - 25.05.2016 в 19:37
aleksandr-1205 Дата: Среда, 25.05.2016, 19:43 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
к сожалению, часто бывает, что несколько предлогов есть во фразе, например: "взять кредит под низкий процент в москве"
 
Ответить
Сообщениек сожалению, часто бывает, что несколько предлогов есть во фразе, например: "взять кредит под низкий процент в москве"

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 19:43
Светлый Дата: Среда, 25.05.2016, 21:38 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 56 ±
Замечаний: 0% ±

Excel 2007
Вот монстра создал. Два предлога плюсует. Не оптимизировал. Формула массива:
Код
=ИНДЕКС(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВот монстра создал. Два предлога плюсует. Не оптимизировал. Формула массива:
Код
=ИНДЕКС(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));));" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));))

Автор - Светлый
Дата добавления - 25.05.2016 в 21:38
aleksandr-1205 Дата: Среда, 25.05.2016, 21:46 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
почему то пишет #Н/Д
 
Ответить
Сообщениепочему то пишет #Н/Д

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 21:46
Светлый Дата: Среда, 25.05.2016, 21:52 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 56 ±
Замечаний: 0% ±

Excel 2007
почему то пишет #Н/Д

Формула массива (Ctrl+Shift+Enter)
Если образцы сделать без пробелов, формула покороче:
Код
=ИНДЕКС(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" "));))


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
почему то пишет #Н/Д

Формула массива (Ctrl+Shift+Enter)
Если образцы сделать без пробелов, формула покороче:
Код
=ИНДЕКС(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(ИНДЕКС(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&B$2:B$9&" ";" +"&B$2:B$9&" "));));" "&B$2:B$9&" ";" +"&B$2:B$9&" "));))

Автор - Светлый
Дата добавления - 25.05.2016 в 21:52
aleksandr-1205 Дата: Среда, 25.05.2016, 21:55 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
в образцах предлоги могут быть как с пробелами так и без, как с пробелом с одной стороны, так и с двух..
 
Ответить
Сообщениев образцах предлоги могут быть как с пробелами так и без, как с пробелом с одной стороны, так и с двух..

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 21:55
Manyasha Дата: Среда, 25.05.2016, 22:06 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
Предлагаю маленькую udf-ку
[vba]
Код
Function добавить_плюс(cell As Range, rng As Range)
    Dim res$
    res = cell.Value
    For Each r In rng.Cells
        res = Replace(res, " " & Trim(r.Value) & " ", " +" & Trim(r.Value) & " ")
    Next r
    добавить_плюс = res
End Function
[/vba]
К сообщению приложен файл: 6957838-1-1-.xlsm(16Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеПредлагаю маленькую udf-ку
[vba]
Код
Function добавить_плюс(cell As Range, rng As Range)
    Dim res$
    res = cell.Value
    For Each r In rng.Cells
        res = Replace(res, " " & Trim(r.Value) & " ", " +" & Trim(r.Value) & " ")
    Next r
    добавить_плюс = res
End Function
[/vba]

Автор - Manyasha
Дата добавления - 25.05.2016 в 22:06
aleksandr-1205 Дата: Среда, 25.05.2016, 22:11 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Предлагаю маленькую udf-ку

почему то не перед всеми предлогами ставит +, например предлог "в"
[moder]Я последний раз поправляю за Вами пост.
В следующий раз за нарушение Правил форума получите последнее замечание![/moder]


Сообщение отредактировал Manyasha - Среда, 25.05.2016, 22:16
 
Ответить
Сообщение
Предлагаю маленькую udf-ку

почему то не перед всеми предлогами ставит +, например предлог "в"
[moder]Я последний раз поправляю за Вами пост.
В следующий раз за нарушение Правил форума получите последнее замечание![/moder]

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 22:11
Светлый Дата: Среда, 25.05.2016, 22:11 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 56 ±
Замечаний: 0% ±

Excel 2007
Тогда оставить СЖПРОБЕЛЫ
Базовая формула (один +):
Код
ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));))

Если все A2 заменить на эту же формулу, будет плюсовать два предлога (как в первом моём ответе). Если заменить ещё раз, на три предлога будет работать.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеТогда оставить СЖПРОБЕЛЫ
Базовая формула (один +):
Код
ИНДЕКС(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ");ПОИСКПОЗ(МАКС(ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" ")));ДЛСТР(ПОДСТАВИТЬ(A2;" "&СЖПРОБЕЛЫ(B$2:B$10)&" ";" +"&СЖПРОБЕЛЫ(B$2:B$10)&" "));))

Если все A2 заменить на эту же формулу, будет плюсовать два предлога (как в первом моём ответе). Если заменить ещё раз, на три предлога будет работать.

Автор - Светлый
Дата добавления - 25.05.2016 в 22:11
Manyasha Дата: Среда, 25.05.2016, 22:30 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
Поправила пост выше, файл перевложила.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеПоправила пост выше, файл перевложила.

Автор - Manyasha
Дата добавления - 25.05.2016 в 22:30
aleksandr-1205 Дата: Среда, 25.05.2016, 22:41 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Поправила пост выше, файл перевложила.

подскажите, пжл, а можно сделать так, чтоб проставлять знак + перед словами, указанными в столбце B (там не будет пробелов ни до слова ни после слова), но при этом в исходной фразе предлоги могут быть как вначале (в каком банке купить) так и в конце (купить банке каком в)


Сообщение отредактировал aleksandr-1205 - Среда, 25.05.2016, 22:44
 
Ответить
Сообщение
Поправила пост выше, файл перевложила.

подскажите, пжл, а можно сделать так, чтоб проставлять знак + перед словами, указанными в столбце B (там не будет пробелов ни до слова ни после слова), но при этом в исходной фразе предлоги могут быть как вначале (в каком банке купить) так и в конце (купить банке каком в)

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 22:41
Manyasha Дата: Среда, 25.05.2016, 22:55 | Сообщение № 13
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
aleksandr-1205, тогда так
[vba]
Код
Function добавить_плюс(cell As Range, rng As Range)
    Dim res$
    res = " " & cell.Value & " "
    For Each r In rng.Cells
        res = Replace(res, " " & Trim(r.Value) & " ", " +" & Trim(r.Value) & " ")
    Next r
    добавить_плюс = Trim(res)
End Function
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеaleksandr-1205, тогда так
[vba]
Код
Function добавить_плюс(cell As Range, rng As Range)
    Dim res$
    res = " " & cell.Value & " "
    For Each r In rng.Cells
        res = Replace(res, " " & Trim(r.Value) & " ", " +" & Trim(r.Value) & " ")
    Next r
    добавить_плюс = Trim(res)
End Function
[/vba]

Автор - Manyasha
Дата добавления - 25.05.2016 в 22:55
aleksandr-1205 Дата: Среда, 25.05.2016, 23:08 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
aleksandr-1205, тогда так

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


Сообщение отредактировал aleksandr-1205 - Среда, 25.05.2016, 23:30
 
Ответить
Сообщение
aleksandr-1205, тогда так

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

Автор - aleksandr-1205
Дата добавления - 25.05.2016 в 23:08
Мир MS Excel » Вопросы и решения » Вопросы по Excel » найти слова в списке слов и проставить перед ними знак + (Формулы/Formulas)
Страница 1 из 11
Поиск:

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