Предположим, у вас есть следующие именованные диапазоны :
- Col_P1 - диапазон данных параметра 1;
- Col_P2 - диапазон данных параметра 2;
- Col_P3 - диапазон данных параметра 3;
- Col_P4 - диапазон данных параметра 4;
- Col_P5 - диапазон данных параметра 5;
- Col_Cost - диапазон данных всех расходов;
Формула, которую вы вводите в ячейку L2
:
{=SUMPRODUCT(IF((Col_P1=I2),(Col_P1=I2),(Col_P1="*"))*IF((Col_P2=J2),(Col_P2=J2),(Col_P2="*"))*IF((Col_P3=K2),(Col_P3=K2),(Col_P3="*"))*IF(ISNUMBER(FIND(Col_P4,H2)),ISNUMBER(FIND(Col_P4,H2)),(Col_P4="*"))*IF(ISNUMBER(FIND(Col_P5,H2)),ISNUMBER(FIND(Col_P5,H2)),(Col_P5="*"))*Col_Cost)}
Это формула массива , которую необходимо подтвердить, нажав Ctrl + Shift + Введите в строке формул.
Логика заключается в том, чтобы использовать функцию IF для сравнения каждого параметра в соответствующем диапазоне, а затем умножить сопоставленный результат на соответствующую стоимость и сложить их.
Такздесь потенциальная проблема, , еслипо вашим критериям возвращается несколько совпадений, стоимость будет равна сумме всех совпадений .
Последствия зависят от ваших предпочтений.Если для нескольких совпадений вы хотите вернуть среднюю стоимость , вы можете разделить результат из вышеприведенной формулы на результат из следующей формулы массива:
{=SUMPRODUCT(IF((Col_P1=I2),(Col_P1=I2),(Col_P1="*"))*IF((Col_P2=J2),(Col_P2=J2),(Col_P2="*"))*IF((Col_P3=K2),(Col_P3=K2),(Col_P3="*"))*IF(ISNUMBER(FIND(Col_P4,H2)),ISNUMBER(FIND(Col_P4,H2)),(Col_P4="*"))*IF(ISNUMBER(FIND(Col_P5,H2)),ISNUMBER(FIND(Col_P5,H2)),(Col_P5="*")))}
, что составляет 90%аналогично первой формуле, но без последнего массива Col_Cost
.
Если вы хотите вернуть наименьшее или наибольшее совпадение из нескольких совпадений, обновите сообщение, чтобы я мог соответствующим образом переписать свое решение.
Приветствия:)