Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: runner от 17.02.2016, 12:26

Название: Вложенный ПОИСК
Отправлено: runner от 17.02.2016, 12:26
Добрый день!
Столкнулся с проблемой несрабатывания функции ПОИСК, в случае второго и больше вложения.
Не пойму, что не так? В справке каких-то ограничений не увидел. Можно ли как-то решить проблему?
Потребность есть и в бОльшем количестве поисковых фрагментов.
Название: Re: Вложенный ПОИСК
Отправлено: vikttur от 17.02.2016, 12:34
При возникновении ошибки в первом условии ЕСЛИ показывает ошибку, которую обрабатывает ЕСЛИОШИБКА.
=ЕСЛИ(ЕЧИСЛО(ПОИСК($B$1;A15));$B$1...
ЕСЛИОШИБКА не нужна
Название: Re: Вложенный ПОИСК
Отправлено: cheshiki1 от 17.02.2016, 12:43
в этом варианте 2 совпадения "Колодки барабанные стояночного тормоза" берем всегда первый?
Название: Re: Вложенный ПОИСК
Отправлено: runner от 17.02.2016, 12:47
ЕСЛИОШИБКА - для красивости, в данном случае, но может использоваться для продолжения обработки в другом направлении.

при совпадении по двум и более значениям - достаточно первого
Название: Re: Вложенный ПОИСК
Отправлено: runner от 17.02.2016, 12:54
Цитата: vikttur от 17.02.2016, 12:34
=ЕСЛИ(ЕЧИСЛО(ПОИСК($B$1;A15));$B$1...

Заработало!  :)
Спасибо!
Название: Re: Вложенный ПОИСК
Отправлено: zs от 17.02.2016, 15:16
Альтернативный вариант)
=ЕСЛИ(ДЛСТР(A15)-ДЛСТР(ПОДСТАВИТЬ(A15;$B$1;""))>0;$B$1;ЕСЛИ(ДЛСТР(A15)-ДЛСТР(ПОДСТАВИТЬ(A15;$B$2;""))>0;$B$2;ЕСЛИ(ДЛСТР(A15)-ДЛСТР(ПОДСТАВИТЬ(A15;$B$3;""))>0;$B$3;"")))
Название: Re: Вложенный ПОИСК
Отправлено: runner от 17.02.2016, 15:52
Тоже нормально работает, но формула подлиннее :)
   Вот если бы можно было задать такую подстановку по массиву с неограниченным числом слов поиска ... ::)
Название: Re: Вложенный ПОИСК
Отправлено: vikttur от 17.02.2016, 16:25
Можно:
=ИНДЕКС($B$1:$B$3;МИН(ЕСЛИ(ЕЧИСЛО(ПОИСК($B$1:$B$3;A5));СТРОКА($B$1:$B$3))))
формула массива, ввод тремя клавишами - Ctrl+Shift+Enter
Недостаток: на больших диапазонах (при большом количестве таких формул) возможно торможение при вычислениях.

Если не найдено ни одно из слов диапазона поиска, покажет первон слово, что не есть хорошо, поэтому нужна доп. проверка:
=ЕСЛИ(МИН(...)=0;"караул";ИНДЕКС($B$1:$B$3;МИН(...

Вариант проще, без усложнения или изменения формулы:
В диапазон искомых значений первым значением вписать, например, "не найдено". Главное - такое сочетание символов гарантированно не должно встречаться в текстах.
Название: Re: Вложенный ПОИСК
Отправлено: runner от 17.02.2016, 17:04
Просто супер!
И пусть ищет тридцать два слова по восьми тысячам строк - пойду кофе выпью :)
Название: Re: Вложенный ПОИСК
Отправлено: zs от 19.02.2016, 23:36
Если произвести работу по оформлению ячейки, то достаточно использовать формулу =A1
Название: Re: Вложенный ПОИСК
Отправлено: runner от 20.02.2016, 10:15
Цитата: zs от 19.02.2016, 23:36
Если произвести работу по оформлению ячейки,...

Хотелось бы подробностей - где посмотреть?

нашёл, что через УФ :)
Название: Re: Вложенный ПОИСК
Отправлено: runner от 20.02.2016, 10:57
В общем, работает, но ...
Трудоёмко, и нельзя использовать результат - только смотреть глазками... ни скопировать, ни отфильтровать...
Пока не представляю, где этот способ можно использовать.