Summen können in einer Pivot-Tabelle mit Bordmitteln berechnet werden – sehr schnell benötigt man darüber hinaus komplexere Berechnungen. In diesem Artikel stellen wir die SumX-Funktion vor – und ein Praxisbeispiel, in dem Sie diese perfekt verwenden können.

Summieren in einer Metrik

Im Artikel über Measures haben wir gezeigt, wie man einfache Metriken in Power Pivot anlegt. Beispielsweise das Summieren einer Spalte:

Die Maßzahl kann in eine Pivot-Tabelle eingefügt werden – und man erhält dasselbe Ergebnis wie bei der Verwendung einer Standard-Aggregation in der Pivot-Tabelle. Folgende Formel ergibt allerdings einen Fehler: Summe := SUM(Sales[VKPreis] * 1.1)

Die Aufgabe

Zur Verfügung stehen Aufträge aus dem ERP-System inkl. der Produktgruppen. Die Aufträge werden in verschiedenen Ländern berechnet – und somit in potentiell verschiedenen Währungen. In einer Analyse möchte man die Verkaufszahlen in der jeweiligen Landeswährung sowie in einer Standardwährung (hier EUR) analysieren. Die Aufträge sehen wie folgt aus: Auftragsdaten Die Währungen stehen in einer (vereinfachten) Tabelle zur Verfügung (üblicherweise wäre hier noch eine Datumseinschränkung, die wir der Einfachheit halber weglassen): Währungstabelle Als Produktgruppen werden folgende Einträge verwendet: Produktgruppen Das Datenmodell inkl. Kalendertabelle legen wir wie folgt an: Datenmodell

Verkäufe pro Währung…

…ist leicht darzustellen – einfach eine Pivot-Tabelle mit dem summierten VKPreis: einfache Pivot Tabelle

Tipp: HasOneValue()

Zwar kann man die Summe wie oben gesehen direkt in Pivot erstellen lassen – wir verwenden aber trotzdem die Formel:

Wozu? Nun, was, wenn der Benutzer EUR und GBP gleichzeitig auswählt? Klar, die Zahlen werden zusammengezählt. Das Ergebnis macht aber keinen Sinn. Daher erweitern wir die Formel um:

HASONEVALUE gibt genau dann “WAHR” zurück, wenn nur ein Wert laut aktuellem Filter im übergebenen Feld zur Verfügung steht. Wählt der Benutzer jetzt zwei Werte, sieht die Pivot-Tabelle wie folgt aus: Pivot mit HasOneValue Besser keine Zahlen, als Falsche!

Die Umrechnung in Standardwährung

Es fehlt die Umrechnung in EUR. Das lässt sich mit SUM() nicht mehr erreichen. Daher gibt es die Funktion SumX, die wie folgt definiert ist: SumX(

; ) Mit
übergeben wir die Tabelle oder einen Filter (ein Artikel über Filter kommt noch Smiley ). In geben wir die Berechnung für die Umrechnung an, in unserem Fall also:

Damit lässt sich die Pivot-Tabelle um den EUR-Wert ergänzen: Umrechnung mit SumX

Fazit

Der Charme der SumX-Funktion liegt einerseits in der Möglichkeit, Berechnungen anzugeben. Anderseits darin, dass über das ganze Datenmodell navigiert werden kann. Selbstverständlich kann statt der Related()-Funktion auch eine Lookup-Funktion angegeben werden. Mit der Filter-Funktion können weitere Einschränkungen im Modell unternommen werden – dazu aber mehr in einem der folgenden Artikel.