Heute bin ich auf die “Detail Rows Expression” aufmerksam geworden, mit der man für ein Measure hinterlegen kann, welche Detaildatentabelle zurückgegeben wird. Wie du das Ganze zusammen mit Power BI und Excel nutzen kannst, beschreibe ich in diesen kurzen Blogbeitrag.
Als Ausgangsbasis nutze ich das Adventure Works DAX Beispiel Datenset, das du dir unter dem folgenden Link https://github.com/microsoft/powerbi-desktop-samples/ herunterladen kannst.
Zuerst müssen wir das implizite Measure in ein explizites Measure umwandeln. Dieses mache wir, indem wir die Spalte “Sales Amount” umbenennen (“_” Prefix) und so den Measurenamen freigeben. Anschließend erstellen wir ein neues Measure mit der DAX Formel.
Sales Amount = SUM(Sales[_Sales Amount])
Definition der Detaildatentabelle
Im nächsten Schritt entwerfen wir im DAX Studio unsere Detaildatentabelle, die zurückgegeben werden soll, wenn die “Detail Rows Expression” ausgeführt wird.
Mit SELECTCOLUMNS wählen wir die für uns relevanten Spalten aus der zugrunde liegenden Faktentabelle “Sales”. Mit der RELATED Funktion können wir auch auf Spalten der verknüpften Dimensionstabellen zugreifen.
EVALUATE
SELECTCOLUMNS (
Sales,
"Order Number", RELATED('Sales Order'[Sales Order]),
"Order Line Number", RELATED('Sales Order'[Sales Order Line]),
"Customer", RELATED ( Customer[Customer] ),
"Product", RELATED ( 'Product'[Product] ),
"Quantity", Sales[Order Quantity],
"Line Amount", [Sales Amount]
)
Dieses DAX Statement können wir nun mit dem Tabular Editor als “Detail Rows Expression” für das Measure “Sales Amount” hinterlegen.
DETAILROWS in DAX Studio
Nachdem die Änderung im Power BI Datenmodell gespeichert wurde, können wir das Ergebnis mit der DAX Funktion DETAILROWS in DAX Studio testen.
EVALUATE
CALCULATETABLE (
DETAILROWS ( [Sales Amount] ),
'Date'[Date] = DATE ( 2020, 6, 1 )
)
Nutzung in Excel
Der Endanwender kann hiervon über die Funktion “In Excel analysieren” aus dem Power BI Service heraus profitieren.
So wird jetzt aus der Excel Pivot-Tabelle, wenn man über das Kontextmenü die Funktion “Details anzeigen” auf dem Measure aufruft, die zuvor mit DAX definierte Detaildatentabelle angezeigt.
Das war es auch schon. ? Wenn du mehr über das Thema erfahren willst, empfehle ich dir folgende Links.
- https://dax.guide/detailrows/
- YouTube: SQLBI – DETAILROWS
- https://www.sqlbi.com/articles/controlling-drillthrough-using-detail-rows-expressions-in-dax/
- https://docs.microsoft.com/de-de/analysis-services/tutorial-tabular-1400/as-supplemental-lesson-detail-rows?WT.mc_id=DP-MVP-5004288&view=asallproducts-allversions