Abbildung von P&L Strukturen in Power BI in Staffelform mit dem Summary Table

In den letzten beiden Blogbeiträgen haben wir gezeigt, wie die P&L mit dem Standard Matrix Visual auch in Staffelform abgebildet werden kann. Eine Schwachstelle dabei ist derzeit noch, daß die Zeilen der Tabelle nicht gezielt formatiert werden können und daher die Staffelergebnisse mit Leerzeilen o.ä. strukturiert werden müssen. Genau dieses Manko adressiert das Custom Visual Summary Table, das auch sonst einige interessante Eigenschaften hat und jedenfalls näher betrachtet werden sollte.

Der hier beschriebene Lösungsansatz gilt analog auch für die Darstellung von Deckungsbeitragsrechnungen, Bilanzen und Cash-Flow-Rechnungen.

1. Ausgangssituation

Mit dem folgenden P&L Erfassungssheet werden im Showcase Group Forecast unserer cloud-basierten Datensammlungstechnologie data1.io die monatlichen Finanzdaten der Tochtergesellschaften der Sigma Group eingesammelt ...

... und stehen über die ODATA-Schnittstelle in Power BI als Faktentabelle ("Facts") zur Verfügung (Erlöse werden mit positivem und Aufwendungen mit negativem Vorzeichen geliefert, sodaß die Datensätze der P&L summierbar sind):

Die P&L Strukturen werden zuerst als sogenannte asymmetrische Hierarchie in einer Dimension abgebildet und wie hier gezeigt wurde, kann mit einem DAX-Statement diese Hierarchie folgendermaßen dargestellt werden:

Aufgrund der ungewohnten Sicht ("die P&L steht auf dem Kopf") trifft diese Darstellung bei vielen Informationskonsumenten nur auf geringe Akzepanz. Daher haben wir im letzten Blogbeitrag gezeigt, wie auch die gewohnte Staffelform mit dem Standard Matrix Visual dargestellt werden kann:

Allerdings sind die Formatierungsmöglichkeiten im Matrix Visual derzeit sehr beschränkt, sodaß eine selektive Formatierung der Ergebniszeilen derzeit nicht möglich ist. Dieses Manko kann mit dem Summary Table überwunden werden.

2. Erweiterung des Datenmodells

Wir benötigen - zusätzlich zur Faktentabelle und zur P&L Dimensionstabelle - einen P&L Table mit der Staffelstruktur der Ergebniszeilen. Im Vergleich zu der zuletzt gezeigten Umsetzungsvariante ist dieser aber sehr simpel aufgebaut:

Der P&L Table ist wieder ein Disconnected Table, steht also in keiner direkten Verbindung mit einer anderen Tabelle:

Die Measures zur "Besiedelung" des P&L Tables mit Werten (trotz der fehlenden Beziehung) sind bereits aus den beiden letzten Blogbeiträgen bekannt und entsprechen dem allgemeinen Pattern für KPI Tables:

Sum Measure = SUM(Facts[Value])
Current Period = 
VAR varSelection = SELECTEDVALUE('P&L Table'[Metric KEY])

RETURN
    SWITCH(
        TRUE();
        varSelection = "Gross Profit"; 
            CALCULATE([Sum Measure];'Dim P&L'[Level 6]="Gross Profit");
        varSelection = "Operating Profit";
            CALCULATE([Sum Measure];'Dim P&L'[Level 5]="Operating Profit");
        varSelection = "Finance Profit";
            CALCULATE([Sum Measure];'Dim P&L'[Level 5]="Finance income")
            + CALCULATE([Sum Measure];'Dim P&L'[Level 5]="Finance costs");
        varSelection = "Profit before income taxes";
            CALCULATE([Sum Measure];'Dim P&L'[Level 4]="Profit before income taxes");
        varSelection = "Profit from continuing operations";
            CALCULATE([Sum Measure];'Dim P&L'[Level 3]="Profit from continuing operations");
        varSelection = "Profit & Loss";
            CALCULATE([Sum Measure];'Dim P&L'[Level 1]="Profit & Loss");
        varSelection = "Profit & Loss in %";
            FORMAT(
                DIVIDE(
                    CALCULATE([Sum Measure];'Dim P&L'[Level 1]="Profit & Loss");
                    CALCULATE([Sum Measure];'Dim P&L'[Metric NAME]="Revenue")
                );
                "0.0 %")
                ;
        If(varSelection <> Blank();
            CALCULATE(' Measures'[Sum Measure];
                FILTER('Dim P&L';'Dim P&L'[Metric KEY]=varSelection)
            );
        ""
        )
    )
Last Year = CALCULATE(
    [Current Period];
    SAMEPERIODLASTYEAR(Facts[DATE].[Date])
)

3. Custom Visual "Summary Table"

Der Summary Table wird wie alle Custom Visuals über die Funktion Get more visuals hinzugefügt ...

... einfach nach dem Summary Table suchen und mit Add hinzufügen:

Jetzt einfach ein neues Summary Table Visual anlegen und mit dem Feld Metric NAME aus dem P&L Table sowie den beiden Measures Current Period und Last Year belegen. Um das Visual "zum Leben zu erwecken" muss im nächsten Schritt ...

... aus dem Drei-Punkte-Menü rechts oben der Befehl Edit aufgerufen werden:

Das Visual wechselt in den Focus Mode und zeigt einen Editor zur Erstellung und Formatierung des Summary Tables. Aus dem Datenfeld und den beiden Measures wurde eine Rohtabelle mit den ersten 7 P&L Positionen und 2 Datenspalten erstellt:

Mit dem Schieber Code View kann das JSON-Statement eingesehen werden, mit dem der Summary Table intern arbeitet. Am Ende ist der Code-Block zu finden, der die letzte Zeile im Summary Table erzeugt:

Dieser Codeblock wird jetzt so oft kopiert und eingefügt, wie wir noch P&L Positionen brauchen und entsprechend wird der Text in der ersten beiden Zeilen des Codeblocks angepasst bis die vollständige P&L Positionenstruktur abgebildet ist:

Jetzt können im Bereich Reuseable styles entweder die bestehenden Formatvorlagen angepaßt werden oder auch eigene Formatvorlagen hinzufügt werden:

  • rowResultLinearis1 = border-top:1px;border-top-color:#c8c8c8;border-top-style:solid;background-color:#eee
  • rowResultLinearis2 = border-top:1px;border-top-color:#c8c8c8;border-top-style:solid;background-color:#f2c80f

Diese Formatvorlagen werden jetzt den gewünschten Ergebniszeilen der P&L zugewiesen und so die gewünschte Formatierung des Summary Tables erreicht wird:

Hier der fertige Summary Table im Produktivbetrieb:

3. Evaluierung

Offen ist für uns derzeit die Frage, wie die Werte für die Positon Profit & Loss in % (= letzte Zeile im P&L Table) zur Anzeige gebracht werden können.

Der Nachteil des Visuals liegt in der statischen Zeilen- als auch Spaltenstruktur, die - nach unserem Kenntnisstand - nur manuell gewartet werden kann und automatische Anpassungen oder Drilldowns daher nicht möglich sind.

Der Vorteil des Summary Tables gegenüber dem Standard Matrix Visual liegt eindeutig in den hervorragenden Formatierungsmöglichkeiten, die zur gewohnten Darstellung der P&L, des Balance Sheets, der Cash Flow Rechnung und von Deckungsbeitragsrechnungen in der Praxis häufig benötigt werden:

Weiters könnten - wir haben das hier nicht demonstriert - auch berechnete Spalten und berechnete Zeilen angelegt werden und damit Measures eingespart werden.

Zusammengefasst ist der Summary Table nach unserer Einschätzung eine solide Möglichkeit, um Ergebnisrechnungen in Staffelform schön formatiert (und statisch) darzustellen. Der Ersteller des Visuals, Fredrik Hedenström, gehört zudem zu den von uns als vertrauenswürdig und nachhaltig eingeschätzten Entwicklern von Custom Visuals.

Power BI Camp - Präsenztrainings in Wien und Nürnberg!

DAX & Datenmodellierung, Power Query und Dashboarding mit Power BI - als einzelnes Modul oder als ganze Trainingswoche!

Die Termine für 2020 sind bereits abgeschlossen, nächste Termine voraussichtlich im Frühjahr 2021.

Gruppen ab 4 Teilnehmer können auch im Rahmen eines Inhouse Training ausgebildet werden.
Termine 2021
Share on linkedin
Share on twitter
Share on facebook

Leave a Replay

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!