Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/508: Рейтинг темы: голосов - 508, средняя оценка - 4.55
Анастасия_П
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 5
1

Поиск фрагментов текста в ячейке

10.04.2013, 12:24. Просмотров 105545. Ответов 43
Метки нет (Все метки)

Добрый день!
Помогите решить задачу. Дана таблица. В первом столбце наименования, содержащие одни и те же слова, но записаны по разному. Например: "коньяк Янтарный замок", "Янтарный замок коньяк 0,5", "коньяк Янтарный замок трехлетний 0,5", "водка казачок", "казачок водка 0,7л". Во второй столбец нужно ввести текст "10 янтарный замок", если ячейка содержит текст "янтарный замок" и если ячейка содержит текст "казачок", то ввести текст "11 казачок". Т.е. Если ячейка А2 содержи текст "янтарный замок", то в ячейку В2 ввести текст "10 янтарный замок" и если ячейка А2 содержи текст "казачок", то в ячейку В2 ввести текст "11 казачок".
Буду благодарна за помощь.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 12:24
Ответы с готовыми решениями:

Поиск фрагментов текста в ячейке
Добрый день! Нужна Ваша помощь. Видела похожие темы, но все равно не получилось сделать. Дана...

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

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

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

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

43
IvanOK
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
10.04.2013, 12:30 2
Анастасия_П, ближе к делу давайте сюда пример
1
Hugo121
6476 / 2530 / 454
Регистрация: 19.10.2012
Сообщений: 7,598
10.04.2013, 12:36 3
Можете переработать кучу готовых решений из темы Поиск и выделение в таблице по нескольким параметрам
Рекомендую моё
1
Анастасия_П
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 5
10.04.2013, 13:01  [ТС] 4
вот вложение
0
Вложения
Тип файла: xls Для форума.xls (34.0 Кб, 1522 просмотров)
10.04.2013, 13:01
Hugo121
6476 / 2530 / 454
Регистрация: 19.10.2012
Сообщений: 7,598
10.04.2013, 13:38 5
Хотя для таких 2-х условий можно формулами сделать - вот начало:

Visual Basic
1
=IF((FIND("янтарный",LOWER(A2),1)>0)+(FIND("замок",LOWER(A2),1)>0)=2,"10 янтарный замок","")
Сюда навесить обработку ошибки и ещё вложить аналогичный IF для казачков.
Ну или с допстолбцами сделать, чтоб голову меньше ломать - в соседний столбец вытянуть казачков, затем в третий собрать то, что без ошибок.
Кстати, пример не соответствует тексту вопроса - пример проще. Я делал по вопросу
Вообще я не формулист - наверняка есть решение проще.
1
Анастасия_П
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 5
10.04.2013, 13:44  [ТС] 6
я в вопросе сами наименования упростила, а в идеале они как в файле...
0
Казанский
14911 / 6312 / 1721
Регистрация: 24.09.2011
Сообщений: 9,977
10.04.2013, 13:50 7
Код
=ЕСЛИ(ЕОШ(ПОИСК("казачок";A2));ЕСЛИ(ЕОШ(ПОИСК("янтарный замок";A2));"?";"10 янтарный замок");"11 казачок")
В примере работает.

Добавлено через 3 минуты
Вот так логически проще "достраивать" формулу для других наименований:
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК("казачок";A2));"11 казачок";ЕСЛИ(ЕЧИСЛО(ПОИСК("янтарный замок";A2));"10 янтарный замок";"?"))
1
Hugo121
6476 / 2530 / 454
Регистрация: 19.10.2012
Сообщений: 7,598
10.04.2013, 13:58 8
В вопросе Вы как раз усложнили - то "янтарный замок", то "замок янтарный", поэтому я и предложил тот готовый макрос. И формулу такую длинную.
Но если порядок слов всегда правильный, то конечно всё проще.

Добавлено через 5 минут
Стоп, кажется мне очки пора доставать... Там небыло варианта "замок янтарный"?
0
Анастасия_П
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 5
11.04.2013, 12:47  [ТС] 9
Ураааа!!! Работает!!! Спасибо-преспасибо!!! Всем всем всем

Добавлено через 22 часа 27 минут
Формула не дает вносить много аргументов...Когда "достраиваю" формулу, так и пишет, что слишком много аргументов...

Добавлено через 15 минут
Цитата Сообщение от Казанский Посмотреть сообщение
Вот так логически проще "достраивать" формулу для других наименований:Код Code
1
=ЕСЛИ(ЕЧИСЛО(ПОИСК("казачок";A2));"11 казачок";ЕСЛИ(ЕЧИСЛО(ПОИСК("янтарный замок";A2));"10
Формула не дает вносить много аргументов...Когда "достраиваю" формулу, так и пишет, что слишком много аргументов...
0
Казанский
14911 / 6312 / 1721
Регистрация: 24.09.2011
Сообщений: 9,977
11.04.2013, 14:34 10
Лучший ответ Сообщение было отмечено chumich как решение

Решение

Составьте на другом листе таблицу соответствия фрагмент-номер в ст. А и В, в ст. С "протяните" формулу, которая склеит эти данные.
В основной таблице используйте такую формулу
Код
=ИНДЕКС(Лист1!$C$1:$C$99;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ("*"&Лист1!$A$1:$A$99&"*";A2;));))
Это формула требует ввода как формула массива, т.е. нажатием Ctrl+Shift+Enter, и отображается в фигурных скобках.
В таком виде она рассчитана на таблицу номеров длиной до 99 записей. При необходимости поменяйте 99 на другое число.
2
Вложения
Тип файла: xls Для форума1.xls (49.5 Кб, 1012 просмотров)
Анастасия_П
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 5
12.04.2013, 09:56  [ТС] 11
Все работает, благодарю
0
Витушка
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 4
16.10.2013, 21:10 12
Доброго всем вечера!
У меня похожая задача, помогите, плиз, написать формулу для следующих условий. Если в тексте столбца А "Назначение платежа" листа "отчет" содержится слово из столбца А листа "списки", то в столбце В "Филиал" на листе "отчет" должно встать соответствие из столбца В листа "списки". Для примера написала что должно получиться. Выбирать фильтром очень долго(
0
Витушка
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 4
16.10.2013, 21:15 13
пример прилагаю
0
Вложения
Тип файла: xlsx формула.xlsx (9.3 Кб, 373 просмотров)
Fairuza
5297 / 2708 / 492
Регистрация: 23.11.2010
Сообщений: 8,898
16.10.2013, 21:57 14
Формула Казанский прекрасно работает и для Вашего примера
Код
=ЕСЛИОШИБКА(ИНДЕКС(списки!B$1:B$6;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ("*"&списки!A$1:A$6&"*";A2;));));"-")
0
Витушка
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 4
16.10.2013, 22:49 15
Я понимаю, что я дурак. Мучаюсь уже час. Но мне не ввести формулу массива(((Если не сложно, можно вставить ее в файл? А?
0
Fairuza
5297 / 2708 / 492
Регистрация: 23.11.2010
Сообщений: 8,898
16.10.2013, 22:56 16
копируете формулу, вставляете куда надо и сразу же - держите зажатыми Ctrl и Shift, нажимаете Enter.
0
Fairuza
5297 / 2708 / 492
Регистрация: 23.11.2010
Сообщений: 8,898
16.10.2013, 22:57 17
потом протягиваете ее вниз.

к тому же Вам ответили на другом форуме))))
1
Вложения
Тип файла: xlsx формула.xlsx (9.6 Кб, 372 просмотров)
Витушка
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 4
16.10.2013, 23:43 18
Урррааааа! Получилось. Просто чудеса. Но все не так просто, задача на самом деле сложнее. Боялась что не разберусь и сначала проблему озвучила попроще. А Может быть получится вообще одной формулой обойтись. Смысл в том, что если в столбце А листа "отчет" не нашлось фрагмента, соответствующего столбцу А листа "списки", просматривается столбец В, если не находится и в нем, то столбец С. Если поможете, будет очень здорово!! Файл приложила
0
Вложения
Тип файла: xlsx формула.xlsx (10.3 Кб, 367 просмотров)
OlesyaSh
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 6
19.11.2014, 10:18 19
Добрый день!
Во-первых, спасибо за формулу:
Код
=ИНДЕКС(Лист1!$C$1:$C$99;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ("*"&Лист1!$A$1:$A$99&"*";A25;));)) :)
У меня возникла проблема, антологичная выше описанным: по фрагменту текста найти слово в массиве и заменить название, на то, которое требуется по справочнику. Мне нужно сделать эту формулу, через ЕСЛИОШИБКА. Тоже есть пример.

НО! Копирую формулу значение принимает верное. Ввожу руками, результат не корректный... Что делаю не так не понятно. Когда, ввожу "",слежу, чтобы стояла английская раскладка на клавиатуре.


Очень хочется понять как работает эта формула, в в целом, и где допускаешь ошибку...
0
Вложения
Тип файла: xlsx Поставщики (для форума).xlsx (21.7 Кб, 121 просмотров)
Fairuza
5297 / 2708 / 492
Регистрация: 23.11.2010
Сообщений: 8,898
19.11.2014, 10:33 20
Формула не выдает ошибку, она возвращает 0, если нет замены.
0
Вложения
Тип файла: xlsx Поставщики (для форума).xlsx (22.2 Кб, 193 просмотров)
19.11.2014, 10:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 10:33

Макрос на поиск фрагментов столбца Б в строке А
Вечер добрый! У меня такая проблема. Есть столбец А, там 15000 строк. Есть столбец Б там 400...

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

Разделение текста в ячейке
Привет всем. Пытаюсь разделить текст в ячейке "20х20х1,8 труба ПРОФ" на четыре столбца: "20",...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.