Power Pivot für die DatenanalyseKomplexe Bedingungen in Power Pivot mit IF, AND und OR
Mit der IF-Funktion in Power Pivot können Daten anhand von einfachen Bedingungen ausgewertet werden. Doch in der Praxis sind Entscheidungen oft komplexer und beruhen nicht nur auf einer einzelnen Bedingung.
Hier kommen die Kombinationen IF + AND und IF + OR ins Spiel.
Mit diesen logischen Verknüpfungen lassen sich mehrere Bedingungen gleichzeitig prüfen.
Grundlage für das folgende Beispiel ist dieses Datenmodell. Die drei Tabellen mit den Kunden, Produkten und Bestellungen sind über Beziehungen durch KundeID und ProduktID miteinander verknüpft.
Klassifizierung nach Region und Umsatz: IF + AND
Sie möchten Bestellungen dann als „Großauftrag Inland“ kennzeichnen, wenn zwei Bedingungen erfüllt sind:
- Der Umsatz ist größer als 500 EUR.
- Die Region des Kunden ist „Deutschland“.
- Andere Aufträge sollen als „Sonstiger Auftrag“ klassifiziert werden.
Sie fügen in tbl_Bestellungen eine neue Spalte Auftragsklasse ein mit dieser Formel:
= IF(
AND(
tbl_Bestellungen[Menge] * RELATED(tbl_Produkte[Einzelpreis]) > 500;
RELATED(tbl_Kunden[Region]) = "Deutschland"
);
"Großauftrag Inland";
"Sonstiger Auftrag"
)
Anmerkung: Zur besseren Verständlichkeit wurde die Formel versetzt über mehrere Zeilen dargestellt.
Erläuterung:
- IF leitet die Bedingungsabfrage ein.
- AND prüft, ob zwei Bedingungen erfüllt sind.
- Nur wenn Umsatz = Menge * Einzelpreis > 500 und
- Region = "Deutschland", wird „Großauftrag Inland“ ausgegeben.
- In allen anderen Fällen erscheint „Sonstiger Auftrag“.
Die Funktion AND in DAX erlaubt nur zwei logische Ausdrücke! Wenn mehr als zwei Bedingungen gebraucht werden, dann verwenden Sie den logischen Operator &&.
Anstelle der Funktion AND nutzt man in DAX fast immer den Operator &&. Sie können damit beliebig viele Bedingungen in einer Abfrage verknüpfen.
Das Beispiel sähe somit wie folgt aus:
= IF( tbl_Bestellungen[Menge] * RELATED(tbl_Produkte[Einzelpreis]) > 500 && RELATED(tbl_Kunden[Land]) = "Deutschland"; "Großauftrag Inland"; "Sonstiger Auftrag")
Mit den Operatoren && können Sie beliebig viele Bedingungen in der AND-Funktion kombinieren.
Kundenkennzeichnung mit OR-Bedingung: IF + OR
Angenommen, Sie möchten alle Kunden hervorheben, die entweder in den Regionen „Deutschland“ oder „Österreich“ ansässig sind.
Sie fügen in tbl_Kunden eine neue Spalte Kundenklasse ein mit dieser Formel:
=IF(
OR(tbl_Kunden[Land]="Deutschland"; tbl_Kunden[Land]="Österreich"
);
"DACH-Kunde";
"Sonstiger Kunde"
)
Anmerkung: Zur besseren Verständlichkeit wurde die Formel versetzt über mehrere Zeilen dargestellt.
Erläuterung:
- IF leitet die Bedingungsabfrage ein.
- OR prüft, ob mindestens eine Bedingung erfüllt ist.
- Land = "Deutschland" oder Land = "Österreich"
- Kunden aus Deutschland oder Österreich werden als „DACH-Kunde“ markiert.
- Alle anderen als „Sonstiger Kunde“.
Genau wie bei AND erlaubt OR nur zwei logische Ausdrücke. Anstelle der Funktion können Sie in DAX den Operator || nutzen. Sie können damit beliebig viele Bedingungen in einer OR-Funktion verknüpfen.
Nun soll noch die Schweiz der Kundenklasse DACH-Kunde zugeordnet werden. Die Formel für mehr als zwei OR-Bedingungen lautet:
=IF(
(tbl_Kunden[Land]="Deutschland" || tbl_Kunden[Land]="Österreich" || tbl_Kunden[Land]="Schweiz"
);
"DACH-Kunde";
"Sonstiger Kunde"
)
Fazit
Mit den DAX-Funktionen AND und OR können jeweils nur zwei logische Abfragen übergeben werden.
Mit den Operatoren && und || können Sie beliebig viele Bedingungen kombinieren.
- Nutzen Sie AND, wenn mehrere Bedingungen gleichzeitig erfüllt sein müssen.
- Nutzen Sie OR, wenn mindestens eine Bedingung ausreichen soll.
Mit IF in Kombination mit AND oder && und OR oder || können Sie Ihre Modelle noch flexibler gestalten. Sie sind nicht mehr auf einfache Ja-/Nein-Entscheidungen beschränkt, sondern können mehrere Kriterien gleichzeitig berücksichtigen.
Damit lassen sich Ihre Auswertungen noch stärker an die betrieblichen Anforderungen anpassen.
In der folgenden Excel-Vorlage finden Sie die Daten und Tabellen für das in dieser Anleitung gezeigte Beispiel.
