![](https://cdn.wiki-base.com/5115987/excel_formula_if_with_boolean_logic__2.png.webp)
Обща формула
= IF(criteria1*criteria2*criteria3,result)
Обобщение
В показания пример формулата във F8 е:
(=SUM(IF((color="red")*(region="East")*(quantity>7),quantity)))
Забележка: това е формула на масив и трябва да се въведе с control + shift + enter.
Обяснение
Забележка: Този пример демонстрира как да заменим вложена IF формула с единична IF във формула на масив, използвайки логическа логика. Тази техника може да се използва за намаляване на сложността на сложните формули. Примерът обаче е само за илюстрация. Този конкретен проблем може лесно да бъде решен с SUMIFS или SUMPRODUCT.
Формулите във F7 и F8 връщат един и същ резултат, но имат различни подходи. В клетка F7 имаме следната формула, използвайки вложен IF подход:
(=SUM(IF(color="red",IF(region="east",IF(quantity>7,quantity)))))
Ето как Excel оценява IFs вътре в 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)))
По същество всеки IF „филтрира“ стойности в следващия IF и само количества, при които и трите логически теста връщат TRUE „оцеляват“ в операцията. Други количества стават FALSE и се изчисляват от SUM като нула. Крайният резултат вътре в SUM е масив от стойности като този:
=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))
Стойностите FALSE се оценяват на нула и функцията SUM връща краен резултат от 18.
Във F8 имаме тази формула, която използва единичен IF и булева логика:
=SUM(IF((color="red")*(region="East")*(quantity>7),quantity))
Всеки логически израз връща масив от TRUE и FALSE стойности. Когато тези масиви се умножат заедно, математическата операция принуждава стойности към единици и нули в един масив като този:
IF((0;0;0;0;0;0;1;0;1),quantity)
Масивът от 1s и 0s филтрира неподходящи данни и същия резултат се доставя на SUM:
=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))
Както и преди, SUM връща краен резултат от 18.