Immer wieder gibt es die Anforderung die Verkaufszahlen, nach Altersklassen der Kunden auszuwerten. Dabei ist es wichtig, das Alter zum Zeitpunkt des Kaufes zu ermitteln und nicht das aktuelle Alter des Kunden zu verwenden. In diesem Blogbeitrag zeige ich dir, wie du mit DAX das Kundenalter zum Zeitpunktes Kaufes ermittelst und in Power BI auswerten kannst.
Dieser Betrag basiert auf dem Blogartikel von Lars Schreiber „Das Kundenalter zum Zeitpunkt des Kaufes ermitteln“. Da aber viele Power BI Benutzer gerne mit DAX arbeiten, beschreibe ich hier diesen Lösungsweg.
Als Basis verwende ich die Beispieldaten von Lars, diese können nach einer Newsletter-Anmeldung auf seinem Blog heruntergeladen werden. Das Datenmodell beinhaltet eine Kundentabelle mit 2 Kunden und eine Umsatztabelle mit jeweils 4 Einträgen je Kunde.
Im ersten Schritt bestimmen wir das Kundenalter zum Zeitpunktes des Kaufes. Hierfür fügen wir eine Neue (DAX) Spalte in die Umsatztabelle ein und berechnen die Differenz zwischen Kaufdatum und Geburtsdatum des zugeordneten Kunden.
Alter =
ROUNDDOWN (
DIVIDE (
DATEDIFF ( RELATED ( Kunden[Geburtstag] ), Umsaetze[Datum], DAY ),
365
),
0
)
Zur Ermittlung der Altersklassen, erweitern wir das Datenmodell um die Tabelle Altersklassifizierung. Diese können wir über diesen DAX Ausdruck generieren lassen.
Altersklassifizierung =
ADDCOLUMNS (
SELECTCOLUMNS (
GENERATESERIES ( 0, MAX ( Umsaetze[Alter] ), 1 ),
"Alter", [Value]
),
"5-Jahresintervall",
ROUNDDOWN ( DIVIDE ( [Alter], 5 ), 0 ) * 5 & " - "
& ROUNDDOWN ( DIVIDE ( [Alter], 5 ), 0 ) * 5 + 5,
"10-Jahresintervall",
ROUNDDOWN ( DIVIDE ( [Alter], 10 ), 0 ) * 10 & " - "
& ROUNDDOWN ( DIVIDE ( [Alter], 10 ), 0 ) * 10 + 10
)
Die zuvor in der Umsatztabelle erstellte Spalte Alter dient als Schlüsselspalte, um die Tabelle Altersklassifizierung mit der Umsatztabelle zu verbinden.
Über die Spalten 5-Jahresintervall und 10-Jahresintervall, aus der Tabelle Altersklassifizierung, kann nun der Umsatz in den entsprechenden Altersklassen angezeigt werden.