
Общая формула
= IF(criteria1*criteria2*criteria3,result)
Резюме
В показанном примере формула в F8:
(=SUM(IF((color="red")*(region="East")*(quantity>7),quantity)))
Примечание: это формула массива, и ее необходимо вводить с помощью Ctrl + Shift + Enter.
Объяснение
Примечание. В этом примере показано, как заменить вложенную формулу IF на один IF в формуле массива с использованием логической логики. Этот метод можно использовать для уменьшения сложности сложных формул. Однако этот пример предназначен только для иллюстрации. Эту конкретную проблему можно легко решить с помощью СУММЕСЛИМН или СУММПРОИЗВ.
Формулы в F7 и F8 возвращают один и тот же результат, но используют разные подходы. В ячейке F7 у нас есть следующая формула, использующая подход вложенного ЕСЛИ:
(=SUM(IF(color="red",IF(region="east",IF(quantity>7,quantity)))))
Вот как Excel оценивает IF внутри SUM:
=IF((TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE), IF((TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE), IF((FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE),quantity)))
По сути, каждая ЕСЛИ «фильтрует» значения в следующую ЕСЛИ, и только те величины, где все три логических теста возвращают ИСТИНА, «выживают» в операции. Остальные величины становятся ЛОЖНЫМИ и оцениваются СУММ как ноль. Конечный результат внутри SUM - это массив значений вроде этого:
=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))
Значения ЛОЖЬ равны нулю, а функция СУММ возвращает окончательный результат 18.
В F8 у нас есть эта формула, которая использует единственное ЕСЛИ и логическую логику:
=SUM(IF((color="red")*(region="East")*(quantity>7),quantity))
Каждое логическое выражение возвращает массив значений TRUE и FALSE. Когда эти массивы умножаются вместе, математическая операция приводит значения к единицам и нулям в одном массиве следующим образом:
IF((0;0;0;0;0;0;1;0;1),quantity)
Массив единиц и нулей отфильтровывает нерелевантные данные, и тот же результат передается в SUM:
=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))
Как и прежде, СУММ возвращает окончательный результат 18.