Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Заполнение счета ценами из прайса на многосоставные наименования

Автор gregory9791, 16.08.2023, 17:07

« назад - далее »

gregory9791

Имеется прайс с многосоставными (в данном случае двусоставными - наименование и подвид) названиями продуктов, причем есть продукты в нескольких вариантах (яблоко зел. и яблоко красн., например), а есть и с одним (например,репа обычная).

Задача: при вводе в счете в колонку "наименование" какого-либо продукта (например, "яблоко"), в колонке "подвид" должен выпадать список всех вариантов подвида конкретно по данному наименованию ("зел.", "красн."), и при выборе необходимого подвида в колонку "цена" проставляться цена из прайса.


Serge 007

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

gregory9791

Большое спасибо! Элегантное решение!
Думал делать через двойное использование ВПР, а Ваше решение гораздо проще! Как говориться, все гениальное - просто!

gregory9791

Сергей, а именованные диапазоны вводить вручную придётся?

Serge 007

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Hugo121

Только нужно следить чтоб не было дублей - а то цена просуммируется, т.е. будет двойной!
Можно индекс+поискпоз использовать, тогда просто возьмёт первую по условию.
=ИНДЕКС(Прайс!C2:C11;ПОИСКПОЗ(1;(Прайс!A2:A11=A2)*(Прайс!B2:B11=B2);0);1)формула массива!
webmoney: E265281470651 Z422237915069

Serge 007

Игорь, дельное замечание)

Но твою формулу можно немного сократить
В ИНДЕКС() нет смысла указывать столбец, если он один ;)
=ИНДЕКС(Прайс!C2:C11;ПОИСКПОЗ(1;(Прайс!A2:A11=A2)*(Прайс!B2:B11=B2);))
Или так ещё можно: =ПРОСМОТР(1;(Прайс!A2:A11=A2)*(Прайс!B2:B11=B2);Прайс!C2:C11)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Hugo121

ПРОСМОТР() даёт последнюю строку.
ИНДЕКС(ПОИСКПОЗ()) первую.
webmoney: E265281470651 Z422237915069

Serge 007

Разумеется)
Но если дублей нет, то первая и последняя строка будут совпадать
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390