Excel-Formel: IF mit boolescher Logik -

Inhaltsverzeichnis

Generische Formel

= IF(criteria1*criteria2*criteria3,result)

Zusammenfassung

In dem gezeigten Beispiel lautet die Formel in F8:

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

Hinweis: Dies ist eine Array-Formel und muss mit Strg + Umschalt + Eingabe eingegeben werden.

Erläuterung

Hinweis: In diesem Beispiel wird gezeigt, wie eine verschachtelte IF-Formel mithilfe einer booleschen Logik durch eine einzelne IF in einer Array-Formel ersetzt wird. Diese Technik kann verwendet werden, um die Komplexität in komplexen Formeln zu reduzieren. Das Beispiel dient jedoch nur zur Veranschaulichung. Dieses spezielle Problem könnte leicht mit SUMIFS oder SUMPRODUCT gelöst werden.

Die Formeln in F7 und F8 geben das gleiche Ergebnis zurück, haben jedoch unterschiedliche Ansätze. In Zelle F7 haben wir die folgende Formel unter Verwendung eines verschachtelten IF-Ansatzes:

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

So wertet Excel die IFs in SUM aus:

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

Im Wesentlichen "filtert" jede IF Werte in die nächste IF, und nur Größen, bei denen alle drei logischen Tests TRUE zurückgeben, "überleben" die Operation. Andere Größen werden FALSE und werden von SUM als Null bewertet. Das Endergebnis in SUM ist ein Array von Werten wie folgt:

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

FALSE-Werte werden auf Null ausgewertet, und die SUMME-Funktion gibt ein Endergebnis von 18 zurück.

In F8 haben wir diese Formel, die eine einzelne IF- und Boolesche Logik verwendet:

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

Jeder logische Ausdruck gibt ein Array von TRUE- und FALSE-Werten zurück. Wenn diese Arrays miteinander multipliziert werden, erzwingt die mathematische Operation Werte zu Einsen und Nullen in einem einzelnen Array wie folgt:

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

Das Array von 1s und 0s filtert irrelevante Daten heraus und das gleiche Ergebnis wird an SUM geliefert:

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

Nach wie vor gibt SUM ein Endergebnis von 18 zurück.

Interessante Beiträge...