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

Вход

Регистрация

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

 

= Мир MS Excel/Выборка из списка по параметрам (QUERY) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Выборка из списка по параметрам (QUERY)
Faraway Дата: Вторник, 27.04.2021, 12:49 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте.
Я столкнулся с задачкой, с которой не знаю как справится, нашел частичное решение, которое работает, но не так как хотелось бы.
Вот в ЭТОМ документе я создал подходящие условия, возможно у кого-то будет идея или достаточно знаний для решения данного вопроса. А то что на этом форуме такие есть - я уже несколько раз убеждался.
Перехожу к сути проблемы.
У меня есть прайс со списком позиций. Позиции там самые разные, искать что либо сложно. Вот и пришла идея создать страничку с формулой, которая поможет найти желаемое.
Я написал для этого формулу:
Код
=ЕСЛИ(A2="";""; QUERY(F1:G;" SELECT F, G WHERE F matches '.*"&A6&".*' OR F matches '.*"&A7&".*' OR F matches '.*"&A8&".*' AND F matches '.*"&A4&".*'"))

До этого вида я дошел после решения нескольких проблем, а именно, формула зависима от регистра, по этому мне пришлось добавить дополнительные ячейки, в которых текст переходит в прописные символы, первый символ прописный и строчный, это ячейки A6, A7, A8.
Далее, когда я ищу какой то ролик, я прописываю в поисковой ячейке "рол" и мне выводит список роликов с разными параметрами. Я решил добавить еще один параметр а ячейку A4, в которой указываю дополнительный параметр, например материал колеса, либо диаметр и выдача по идее должна отсеять мне варианты под запрос, но не всегда так происходит.
Вот какая проблема у меня по пути:
Когда я ввожу "рол", кроме РОЛиков выдает так же и поРОЛон. Все правильно, формула так и настроена, чтоб выводит все варианты, где встречается РОЛ (не имеет значения будет это в начале, середине или конце записи). Далее я вношу дополнительный параметр "3", чтоб отсеять из выдачи ненужное и что замечаю - поРОЛон отсеивает значения, оставив только те, где встречается 3, а ролики - игнорируют дополнительное условие и делают полную выдачу всех вариантов (и где есть 3 и где нет 3).
Предполагаю, что причина в том, что запрос РОЛ в поролоне стоит посредине фразы, а в роликах - в начале. Формула, которая ищет только по начальному сожержимому, которая отброссит поролон - не решит проблему, так как искомое не всегда начинается именно с искомого слова, к примеру "резиновый РОЛИК 30.04".
Можно ли как то поправить формулу, чтоб она работала корректно, тоесть выдавала все значения, в которых встречается значение указанное в основном запросе, и при необходимости из полученного результата оставляла только то, что содержит еще и в дополнительном запросе. Доп запрос при этом тоже может быть в любом месте названия позиции?
Списибо!


Сообщение отредактировал Faraway - Вторник, 27.04.2021, 12:52
 
Ответить
СообщениеЗдравствуйте.
Я столкнулся с задачкой, с которой не знаю как справится, нашел частичное решение, которое работает, но не так как хотелось бы.
Вот в ЭТОМ документе я создал подходящие условия, возможно у кого-то будет идея или достаточно знаний для решения данного вопроса. А то что на этом форуме такие есть - я уже несколько раз убеждался.
Перехожу к сути проблемы.
У меня есть прайс со списком позиций. Позиции там самые разные, искать что либо сложно. Вот и пришла идея создать страничку с формулой, которая поможет найти желаемое.
Я написал для этого формулу:
Код
=ЕСЛИ(A2="";""; QUERY(F1:G;" SELECT F, G WHERE F matches '.*"&A6&".*' OR F matches '.*"&A7&".*' OR F matches '.*"&A8&".*' AND F matches '.*"&A4&".*'"))

До этого вида я дошел после решения нескольких проблем, а именно, формула зависима от регистра, по этому мне пришлось добавить дополнительные ячейки, в которых текст переходит в прописные символы, первый символ прописный и строчный, это ячейки A6, A7, A8.
Далее, когда я ищу какой то ролик, я прописываю в поисковой ячейке "рол" и мне выводит список роликов с разными параметрами. Я решил добавить еще один параметр а ячейку A4, в которой указываю дополнительный параметр, например материал колеса, либо диаметр и выдача по идее должна отсеять мне варианты под запрос, но не всегда так происходит.
Вот какая проблема у меня по пути:
Когда я ввожу "рол", кроме РОЛиков выдает так же и поРОЛон. Все правильно, формула так и настроена, чтоб выводит все варианты, где встречается РОЛ (не имеет значения будет это в начале, середине или конце записи). Далее я вношу дополнительный параметр "3", чтоб отсеять из выдачи ненужное и что замечаю - поРОЛон отсеивает значения, оставив только те, где встречается 3, а ролики - игнорируют дополнительное условие и делают полную выдачу всех вариантов (и где есть 3 и где нет 3).
Предполагаю, что причина в том, что запрос РОЛ в поролоне стоит посредине фразы, а в роликах - в начале. Формула, которая ищет только по начальному сожержимому, которая отброссит поролон - не решит проблему, так как искомое не всегда начинается именно с искомого слова, к примеру "резиновый РОЛИК 30.04".
Можно ли как то поправить формулу, чтоб она работала корректно, тоесть выдавала все значения, в которых встречается значение указанное в основном запросе, и при необходимости из полученного результата оставляла только то, что содержит еще и в дополнительном запросе. Доп запрос при этом тоже может быть в любом месте названия позиции?
Списибо!

Автор - Faraway
Дата добавления - 27.04.2021 в 12:49
Gustav Дата: Четверг, 29.04.2021, 02:26 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Попробуйте в ячейке C1 на листе Лист8 такую формулу:
[vba]
Код
=FILTER(F2:G; SEARCH(A2;F2:F); SEARCH(A4;F2:F))
[/vba]
Формула безразлична к регистру символов, поэтому можете хоть "РоЛ", хоть "рОл" написать.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПопробуйте в ячейке C1 на листе Лист8 такую формулу:
[vba]
Код
=FILTER(F2:G; SEARCH(A2;F2:F); SEARCH(A4;F2:F))
[/vba]
Формула безразлична к регистру символов, поэтому можете хоть "РоЛ", хоть "рОл" написать.

Автор - Gustav
Дата добавления - 29.04.2021 в 02:26
Faraway Дата: Суббота, 01.05.2021, 10:30 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Gustav, Спасибо! Формула на много проще оказалась, чем я насочинял, и главное - работает лучше!
 
Ответить
СообщениеGustav, Спасибо! Формула на много проще оказалась, чем я насочинял, и главное - работает лучше!

Автор - Faraway
Дата добавления - 01.05.2021 в 10:30
  • Страница 1 из 1
  • 1
Поиск:

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