Formuła Excela: JEŻELI z logiką boolowską -

Spisie treści

Formuła ogólna

= IF(criteria1*criteria2*criteria3,result)

Podsumowanie

W pokazanym przykładzie formuła w F8 to:

(=SUM(IF((color="red")*(region="East")*(quantity>7),quantity)))

Uwaga: to jest formuła tablicowa i należy ją wprowadzić za pomocą Ctrl + Shift + Enter.

Wyjaśnienie

Uwaga: W tym przykładzie pokazano, jak zastąpić zagnieżdżoną formułę JEŻELI pojedynczym JEŻELI w formule tablicowej przy użyciu logiki boolowskiej. Technika ta może być stosowana do zmniejszania złożoności złożonych formuł. Jednak przykład służy wyłącznie do celów ilustracyjnych. Ten konkretny problem można łatwo rozwiązać za pomocą SUMIFS lub SUMPRODUCT.

Formuły w F7 i F8 zwracają ten sam wynik, ale mają inne podejście. W komórce F7 mamy następującą formułę, wykorzystującą zagnieżdżone podejście JEŻELI:

(=SUM(IF(color="red",IF(region="east",IF(quantity>7,quantity)))))

Oto jak program Excel ocenia wartości IF wewnątrz funkcji 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)))

W istocie, każdy IF „filtruje” wartości do następnego JEŻELI i tylko te wielkości, dla których wszystkie trzy testy logiczne zwracają PRAWDA „przetrwają” operację. Inne wielkości stają się FAŁSZEM i są oceniane przez SUMA jako zero. Ostateczny wynik wewnątrz SUMA to tablica wartości, takich jak:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Wartości FALSE dają zero, a funkcja SUMA zwraca wynik końcowy równy 18.

W F8 mamy tę formułę, która używa pojedynczego IF i logiki boolowskiej:

=SUM(IF((color="red")*(region="East")*(quantity>7),quantity))

Każde wyrażenie logiczne zwraca tablicę wartości PRAWDA i FAŁSZ. Kiedy te tablice są pomnożone razem, operacja matematyczna przekształca wartości na jedynki i zera w pojedynczej tablicy w następujący sposób:

IF((0;0;0;0;0;0;1;0;1),quantity)

Tablica jedynek i zer odfiltrowuje nieistotne dane i ten sam wynik jest dostarczany do SUMA:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Jak poprzednio, SUMA zwraca wynik końcowy równy 18.

Interesujące artykuły...