Формула на Excel: IF с логическа логика -

Съдържание

Обща формула

= 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.

Интересни статии...