Top.Mail.Ru
Ответы

Excel. Подстановка значения в зависимости от нескольких независимых критериев.

Задача: автоматически подставлять значение по группе перекрестных условий, опираясь на значение из таблиц*.
Допустим, есть такая таблица:

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

Решил примитивно и в лоб: IF() и IFS(). Для СБ всё просто, но получается безобразие (функция не дописана, просто принцип):
Базовый норматив для А1:

12345678
 =IFS(K3<=4;6; 
K3=5;7; 
AND(K3>=6;K3<=7);8,5; 
AND(K3>=8;K3<=9);9; 
AND(K3>=10;K3<=12);11; 
AND(K3>=13;K3<=15);12; 
AND(K3>=16;K3<=20);14 
) 

Ну и дописывать такие же блоки AND() согласно таблице нормативов не проблема.
Пересчёт по фактическому формату (графа Нв, синяя):

1
 =SUM(COUNT(E3)*1;COUNT(F3)*0,4;COUNT(G3)*0,2;COUNT(H3)*0,1)*O3 

Коэффициенты при COUNT - это пересчёт формата. Терпимо.
Для чертежей же таблица нормативов посложнее. Формула чертежа А4:

12345678910
 =IF(NOT(ISBLANK(H4)); 
IFS( 
$L5<=5;0,32; 
$L5=6;0,4; 
AND($L5>=7;$L5<=8);0,4; 
AND($L5>=9;$L5<=10);0,48; 
AND($L5>=11;$L5<=13);0,54; 
AND($L5>=14;$L5<=17);0,62; 
AND($L5>=11;$L5<=13);0,54 
);) 

Тоже дописать остальные можно.
Выбор в графу Нв просто как =MAX(O:R). Не очень корректно, если форматов у чертежа больше одного, но не страшно - берем якобы самый сложный, остальное в подарок. =)


Вопрос: Как сделать лучше проще в рамках встроенных функций? Через VBA успеется. Там то как раз всё ясно. Понимаю что можно как-то через =INDEX() и =MATCH().. но не соображу никак как задать такие условия без костылей. В идеале: нужные таблицы из нормативов размещаются в этой же книге, на них даётся ссылка в формуле и в зависимости от кода документа ссылка просто меняется. Нормативные таблицы можно перелопатить под некий общий шаблон. Например, разделить нижнее и верхнее значение критериев на два столбца и убрать лишние графы.

Источники:
Типовые нормативы откуда взяты таблицы: rulaws. ru/acts/Tipovye-normativy-vremeni-na-razrabotku-konstruktorskoy-dokumentatsii/
Файл-пример из вопроса: https://cloud.mail.ru/public/7DYb/GxBsp1gKd

Дополнен

Сгенерировал гибридное решение, файл обновлен.

Используются именованные диапазоны(NV_ASM,NV_DET_DIMS), на отдельном листе и общая графа CRT, которая для каждого кода документа своя. Для деталей и СБ формула будет:

=IFS(D3="СБ";VLOOKUP(L3;NV_ASM;5;1);D3="-";VLOOKUP(L3;NV_DET_DIMS;MATCH(1;INDEX(1-ISBLANK(E3:I3);1;0);0)+1;1))
Сойдёт.

Для ГЧ решение сделал в файле, но это для мазохистов точно: там два критерия с диапазонами, т.е. LOOKUP-ом надо искать в обоих направлениях. И критериев задавать тоже два в одной ячейке. Не надо так.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок

Добавьте столбик с нижней границей диапазона и тогда сможете воспользоваться формулой впр с параметром соответствия 1
я добавил формулы на листах т11 и т12
https://cloud.mail.ru/public/eGFJ/Ad8qgHRkt

Аватар пользователя
Высший разум

лист "Изделие" ячейка R4

повтор условия .
это опечатка или какое-то новое свойство функции?

Аватар пользователя
Ученик

Мусор, а не "человек."