Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

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

Автор 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 R41892628200

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 R41892628200

Serge 007

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