Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2023, 16:45   #1
Ttruff
Новичок
Джуниор
 
Регистрация: 29.08.2023
Сообщений: 4
По умолчанию ИНДЕКС и ПОИСКПОЗ с несколькими критериями

Добрый день.

Прошу помощи в следующем:
1. В файле примера, на вкладке ИД_параметры, 4 массива данных, из которых необходимо собирать данные во вкладку Расчет.
2. Во вкладке расчет пользователь выбирает то, что выделено голубым цветом, и получает результаты в коричневом и зеленом полях.
3. В ячейке D7 и D8 реализован поиск по первому массиву данных. Сбоку от них показана попытка привязать к этой формуле остальные 3 массива, но дальше excel не дает просто нарастить конструкцию посредством ЕСЛИ.

Вопрос, как привязать к формуле остальные (любое кол-во) массивы?

Спасибо))
Вложения
Тип файла: xlsx Расчет кол-ва крепежа фланцев_2023.xlsx (35.2 Кб, 5 просмотров)
Ttruff вне форума Ответить с цитированием
Старый 30.08.2023, 00:03   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Добрый день.
В ИНДЕКС() можно указывать номер области:
ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])
И кстати если в ПОИСКПОЗ искать 1 в перемножении условий то туда можно добавить и заголовок.
Но сложная формула получается, ночью не напишу ))
P.S. Хотя вот на 3 параметра включая тип фланца (формула массива):
Код:
=ПОИСКПОЗ(1;
(ИД_параметры!$A$4=$D$2)*(DN_01=$D$3)*(PN_01=$D$4)
+
(ИД_параметры!$H$4=$D$2)*(DN_02=$D$3)*(PN_01=$D$4)
+
(ИД_параметры!$O$4=$D$2)*(DN_03=$D$3)*(PN_01=$D$4)
+
(ИД_параметры!$V$4=$D$2)*(DN_04=$D$3)*(PN_01=$D$4);0)
Учитывает выбранные значения
Тип фланца
Размер фланца
Давление

4-е строки потому что там столько диапазонов данных, можно легко добавлять если понадобится.
Допишите в ИНДЕКС() функционал определения к какому диапазону (номеру области) обращаться в зависимости от того какой тип фланца выбрал юзер, а номер строки уже даёт ПОИСКПОЗ()
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.08.2023 в 20:52.
Hugo121 вне форума Ответить с цитированием
Старый 31.08.2023, 13:28   #3
Ttruff
Новичок
Джуниор
 
Регистрация: 29.08.2023
Сообщений: 4
По умолчанию

Hugo121, Спасибо за ответ, и за подсказку по формуле!
Но ваша формула почему-то отказывается работать, начиная с DN50, что нелогично, но факт.

И у меня не получается внедрить определение диапазона. Пробовал двумя способами, но очевидно, делаю не то.
Вложения
Тип файла: xlsx Расчет кол-ва крепежа фланцев_2023_rev1.xlsx (36.9 Кб, 2 просмотров)

Последний раз редактировалось Ttruff; 31.08.2023 в 13:35.
Ttruff вне форума Ответить с цитированием
Старый 31.08.2023, 14:47   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Один мой косяк, второй Ваш да и тоже мой, не уследил...
1 - последний аргумент тоже должен меняться, а я всюду PN_01 оставил, нужно поправить на 2, 3, 4
2 - диапазоны должны быть одного размера, а там четвёртый короче, его только до 40 и хватает.
Определение области для ИНДЕКСа можно ВПРой например сделать.

Вот так работает со второй областью в F2:
Код:
=ИНДЕКС((Крепеж_01;Крепеж_02);ПОИСКПОЗ(1;
(ИД_параметры!$A$4=$D$2)*(DN_01=$D$3)*(PN_01=$D$4)
+
(ИД_параметры!$H$4=$D$2)*(DN_02=$D$3)*(PN_02=$D$4)
+
(ИД_параметры!$O$4=$D$2)*(DN_03=$D$3)*(PN_03=$D$4)
+
(ИД_параметры!$V$4=$D$2)*(DN_04=$D$3)*(PN_04=$D$4);0);1;$F$2)
Нужно доработать чтоб вместо F2 стояла формула.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 31.08.2023 в 14:57.
Hugo121 вне форума Ответить с цитированием
Старый 31.08.2023, 15:29   #5
Ttruff
Новичок
Джуниор
 
Регистрация: 29.08.2023
Сообщений: 4
По умолчанию

Hugo121, да я невнимателен, пропустил про PN_01 в формуле, а про диапазоны и не сообразил.

Т.е. в ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])

добавленная Вами 1, это номер столбца, а $F$2 это номер области? ((ИД_параметры!$V$4=$D$2)*(DN_04=$D $3)*(PN_04=$D$4);0);1;$F$2))
Т.е. и для одномерного массива этот аргумент обязателен (в данном случае)?

P.S. Спасибо! все работает!

Последний раз редактировалось Ttruff; 31.08.2023 в 15:48.
Ttruff вне форума Ответить с цитированием
Старый 31.08.2023, 15:58   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну можно и не указывать 1, оставить аргумент пустым:
*(PN_04=$D$4);0);;$F$2)
Номер области как сделали?
Т.к. уже есть лист ИД_параметры, то думаю там можно выделить часть двух столбцов для ВПР под это дело, будет проще настраивать.
Хотя ВПР на небольшое количество пар можно и полностью в строке формул прописать.
P.S. ПОИСКПОЗ($D$2;ИД_параметры!U176:U17 9;0) только сейчас заметил, очень годится, только я в неё 0 добавил.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 31.08.2023 в 21:17.
Hugo121 вне форума Ответить с цитированием
Старый 01.09.2023, 09:51   #7
Ttruff
Новичок
Джуниор
 
Регистрация: 29.08.2023
Сообщений: 4
По умолчанию

Для будущих искателей, выкладываю файл с итоговыми формулами.
Все благодарности в адрес Hugo121)))
Вложения
Тип файла: xlsx Расчет кол-ва крепежа фланцев_2023_rev1.xlsx (38.4 Кб, 7 просмотров)
Ttruff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ИНДЕКС + ПОИСКПОЗ - выдаёт #Н/Д Дмитрий- Microsoft Office Excel 2 19.01.2023 12:00
Формула массива с несколькими критериями Обыватель Microsoft Office Excel 4 27.09.2019 11:14
Функция ИНДЕКС и ПОИСКПОЗ magana Microsoft Office Excel 9 01.04.2013 10:15
Комбинация функций ИНДЕКС и ПОИСКПОЗ SaLacoste Microsoft Office Excel 5 08.12.2011 11:11
Заминка с ИНДЕКС + ПОИСКПОЗ Acro Microsoft Office Excel 3 07.12.2011 16:24