Der kumulierte Verlauf im Jahr, Quartal, Monat
Im heutigen Beitrag möchte ich mich mit Ihnen dem Thema der kumulierten Verkaufserfolge widmen und analysieren, wie weit wir es in einem ausgewählten Jahr, Quartal oder Monat gebracht haben. Danach gehen wir auch darauf ein, wie wir die Zahlen vergleichbar machen können. Das könnte zum Beispiel derselbe Zeitraum im vorigen Jahr sein. Damit erschlagen Sie Fragen wie:
- Wo waren wir letztes Jahr zu diesem Zeitpunkt?
- Ist Q1 2018 besser oder schlechter als Q1 2019?
- Wie entwickelt sich der Monat im Vergleich zum vorigen?
Wie Sie wahrscheinlich schon in ihrem beruflichen Umfeld erfahren haben, sind solche Vergleiche durchaus üblich. Das ermöglicht es Trends schnell aufzudecken, um eventuell Maßnahmen zu ergreifen, die steigende Verkaufszahlen mit entsprechenden Lagerbeständen zu unterstützen oder schwächelnden Bereiche mehr Marketing-Ressourcen zur Verfügung zu stellen.
Wie könnte es anders sein, hat Power Pivot hierzu einige Funktionen im Rucksack, die alle zu der Gruppe der Time Intelligence Funktionen gehören. Um mit solchen zu arbeiten ist eine gut ausgerüstete Datumstabelle von Nöten. Diese habe ich in einem anderen Blogpost erstellt und zum Download zur Verfügung gestellt. Es wird nämlich ein konsistentes Datum für derlei Berechnungen benötigt. Denken Sie beispielsweise an eine Datenbank, die Aktiendaten enthält, dementsprechend aber auch nur Datumswerte beinhaltet, an denen auch Handel betrieben wurde. Wochenenden und Feiertage fehlen in der Datengrundlage und somit auch die Möglichkeit Time Intelligence mithilfe von Power Pivot einzusetzen.
Glücklicherweise haben wir bis hierher bereits alle Vorkehrungen getroffen diese in unserem Datenmodell vom Feinkosthandel Rheinland wirken zu lassen. Zu Beginn möchten wir eine sehr simple PivotTable mit unserem Measure [ORD_€], dem Auftragswert, herstellen. In die Zeilen ziehen wir dazu schon mal das Jahr, den Quartals – und Monatsnamen. Gerne benutzen wir auch einen Slicer, sodass wir zum Start die Jahre 2018 und 2019 betrachten.
Bevor wir zum nächsten Schritt schwenken, möchte ich einen kleinen Ausflug in die Vergangenheit machen. Sicherlich sind kumulierte Werte keine Neuheit in Excel und sie befinden sich seit längerem in Reports von Finanz-, Controlling- und anderen Abteilungen. Meist wurden solche Daten in einem relativ starrem Gitter eines normalen Excelarbeitsblatts erstellt, in eine PowerPoint Präsentation kopiert und dann an die Admiralität verschickt, sodass diese Entscheidungen treffen durfte. Da ich seit einigen Jahren schon mit Power Pivot arbeite, habe ich oftmals die “alte” Excel-Arbeitsweise vergessen oder verdrängt (wer weiß das schon) und bediene mich der Einfachheit wie Power Pivot mit der Aufgabe umgeht. Dabei habe ich die Dynamik die uns in die Hände gelegt wird noch gar nicht erwähnt. Sofern ihr Datenmodell es hergibt, können Sie die verschiedensten Ansichten im Handumdrehen per Slicer oder Berichtsfilter herstellen.
Der Start mit YTD (Year-to-Date)
Wie versprochen hat Power Pivot mehrere Möglichkeiten “to-Date” Measures zu errechnen. Wir verwenden DATESYTD für unser erstes Measure. Wie viele Time Intelligence Funktionen gibt DATESYTD eine Tabelle aus, die sich dann als Filter über die Beziehungen im Datenmodell ausbreiten kann. Der erste Parameter fordert dabei nach einer Spalte mit Datumsangaben, die wir gleich liefern werden. Der Zweite, optionale Parameter, lässt uns ein abweichendes Startdatum des Jahres festlegen. Das ermöglicht uns beispielsweise die Berechnung, wenn ein Geschäftsjahr nicht mit dem Kalenderjahr beginnt. Nun geht es aber los:
YTD_ORD_€:=CALCULATE([ORD_€];DATESYTD(d_Kalender[Datumsschlüssel]))
Im Gegensatz zu anderen Measures, die wir in anderen Blogposts thematisiert haben, ist [YTD_ORD_€] ein zugegeben kurzes, aber nicht minder Wichtiges. Also schieben wir dieses in den Wertebereich unserer PivotTable und betrachten die Ausgabe.
Das Measure tut seinen Dienst und das, wie erwartet, vollkommen richtig. Mit dem Start ins Jahr 2018 wird der Grundstein gelegt und dann weiter aufsummiert, sodass am Ende das Teilergebnis identisch ist. Wie ein Schweizer Uhrwerk wollen wir auch QTD (Quarter-to-Date) und MTD (Month-to-Date) als Measures mit der gleichen Nomenklatur erstellen:
QTD_ORD_€:=CALCULATE([ORD_€];DATESQTD(d_Kalender[Datumsschlüssel]))
MTD_ORD_€:=CALCULATE([ORD_€];DATESMTD(d_Kalender[Datumsschlüssel]))
Erneut geben wir unseren konsistenten Datumsschlüssel an DATES*TD weiter und verwerten [ORD_€] in unserer Verformelung. Dann schubsen wir beide in die Pivot:
Um besser sehen zu können, dass die Measures auch hier richtig funktionieren, habe ich die Teilergebnisse der Quartale eingeblendet. Wir sehen, dass auf dem Niveau des Jahresergebnisses beim Quartal der letzte Wert aus Q4 ausgegeben wird. Gleiches geschieht auf Quartalsteilergebnisniveau mit den Monaten. Wenn wir auf Monatsansicht sehen wollen würden wie der Auftragswert auf Tagesbasis steigt, müssten wir als weitere Dimension den Datumsschlüssel an sich in die Zeilen der PivotTable integrieren.
Im Rückblick vergangener Tage
Die zuvor berechneten Measures sind schon mal ein guter Indikator, um einen Verkaufstrend festzustellen. Was sicherlich aber noch fehlt sind Vergleichswerte. Denn als alleinstehende Measure helfen sie uns noch nicht so richtig. In diesem Unterkapitel machen wir uns auf den Weg den Vergleich zum vorigen Jahr herzustellen, sowie zu schauen wo wir zum “heutigen” Zeitpunkt im letzten Jahr waren. Jetzt kommt die zweite Time Intelligence Funktion aus dem Dickicht zum Vorschein, es ist SAMEPERIODLASTYEAR. Mit schulischen Grundkenntnissen in Englisch kommt man in der DAX-Syntax klar voran und kann sich das Ziel der ein oder anderen Funktion durchaus selbst erklären. SAMEPERIODLASTYEAR hievt somit das gleiche Datum vom Vorjahr aus den Untiefen der Datumstabelle.
Dies bietet uns die Möglichkeit folgende Measures fachgerecht zu schreiben:
PY_ORD_€:=CALCULATE([ORD_€];SAMEPERIODLASTYEAR(d_Kalender[Datumsschlüssel]))
PY_YTD_ORD_€:=
CALCULATE (
[ORD_€];
SAMEPERIODLASTYEAR ( DATESYTD ( d_Kalender[Datumsschlüssel] ) )
)
Erneut beziehen wir uns wie gewohnt auf den Datumsschlüssel. PY verwende ich in der Nomenklatur, um auszuweisen, dass es sich um das Vorjahr (Previous Year [PY]) handelt. Im ersten Measure wollen wir lediglich den gleichen Wert des Vorjahres in der finalen PivotTable sehen. Beim zweiten Measure geht es etwas mehr an Eingemachte, da wir hier ein kleine Verschachtelung zweier Funktionen durchführen müssen. Power Pivot soll uns hier den kumulierten [ORD_€] Wert des Vorjahres geben, sodass dieser am Ende mit dem aktuellen Jahr verglichen werden kann. Ein Blick auf die PivotTable:
Die PivotTable und die neuen Measures machen deutlich, dass bspw. in Zelle J9 der Vorjahreswert korrekt wiedergegeben wird.
Mit DIVIDE ins Verhältnis gebracht
Beliebt in so ziemlich jedem Report, der einen Fortschritt darstellen soll sind prozentuale Zuwächse oder Abnahmen, je nachdem wie es dem Geschäft geht. Zum Ende des Posts werde ich ein Measure mit DIVIDE exemplarisch erzeugen, Sie dürfen selbstredend noch weitere hinterherschieben. Wir erstellen folgendes Measure, wobei YoY für Year-over-Year steht:
YoY_ORD_€:=DIVIDE(([ORD_€]-[PY_ORD_€]);[PY_ORD_€])
Wie es die Regeln vorschreiben, recyclen wir unsere vorherigen Measures fachgerecht und sehen was uns dies gebracht hat. Ich habe den Filter auf 2019 gesetzt, das neue Measure hinzugefügt und per Bedingter Formatierung in Szene gesetzt:
Wir erkennen, dass der Feinkosthandel Rheinland seine Hausaufgaben gemacht hat und in Wachstum investiert hat. Diese Raten sind zugegeben etwas astronomisch, aber erfüllen den Zweck die Wirkweise unserer Measures darzustellen. Wie zuvor angedeutet können Sie gerne auch ein YoY_YTD_ORD_€ Measure für sich erzeugen.
Ganz kurz noch. Das aktuelle Auftragsbuch hat als letztes Auftragseingabedatum den 23.10.2019. Unser Geschäft bricht im vierten Quartal nicht zusammen, es liegen lediglich noch nicht viele Aufträge für November und Dezember vor. Daumen gedrückt fürs Weihnachtsgeschäft.
Allseits viel Erfolg und Durchhaltevermögen!
#Formelwissen: DIVIDE, SAMEPERIODLASTYEAR, DATESYTD
No responses yet