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: 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): Als Produktgruppen werden folgende Einträge verwendet: Das Datenmodell inkl. Kalendertabelle legen wir wie folgt an:
Verkäufe pro Währung…
…ist leicht darzustellen – einfach eine Pivot-Tabelle mit dem summierten VKPreis:
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: 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(
;Damit lässt sich die Pivot-Tabelle um den EUR-Wert ergänzen:
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.
Kommentar hinterlassen