Dynamische Kundenklassifizierung mit QlikView

Es gibt viele graphische Hilfsmitteln in QlikView um seine Kunden zu klassifizieren. Sei es die Anzeige einer fix gerechneten Klassifizierung aus dem Quellsystem, ein Balkendiagramm in dem man mit der Maus die relevanten Kunden selektiert, oder eine ABC-Analyse. Manchmal möchte der Anwender die Kunden aber erst an der Oberfläche anhand von dynamischen Grenzen auswählen können.

Das Schöne an QlikView ist, dass es die Detaildatensätze im Arbeitsspeicher hält. Anstatt also nur eine vorberechnete Klassifizierung aus dem Quellsystem anzeigen zu können, kann man anhand der aktuellen Selektion dynamisch Kunden wählen. Unterhalb zwei Beispiele wie man solche Anforderungen in QlikView userfreundliche lösen kann.

1. Selektiere Kunden anhand eines Umsatzbereiches

Will der Anwender also alle Kunden filtern, die im August 2015 zwischen 1.500 und 5.000€ Umsatz gemacht haben, kann er das prinzipiell mit dem Feature "Erweiterte Suche" tun. Jedoch ist einiges an Tipparbeit nötig und auch die Formel-Syntax ist oft nicht ganz einfach. Deswegen stellen wir unseren Anwendern hierfür zwei Inpuvariablen (für die Umsatzgrenzen) und eine Schaltfläche bereit, welche die Drecksarbeit übernehmen:

Ein Klick auf den Button selektiert Kunden mit Umsatz im Aug 2015 zwischen 1,500 und 5,000€
Nach dem Klick sieht man die Syntax der Erweiterten Suche in der Auswahlstatus-Box. Es wurden acht Kunden selektiert.


Mit dieser Auswahl an Kunden kann der Anwender nun weiter analysieren: Wählt er zum Beispiel den September, sieht er, dass erst zwei der acht Kunden im aktuellen Monat Umsatz generiert haben.


Die Syntax der dynamischen Suche auf das Feld "Firma" wird in der "Auswahl in Feld"-Aktion der Schaltfläche weggekapselt:

='=sum(Umsatz) >= $(vSuchwertMin) and sum(Umsatz) <= $(vSuchwert)'

2. Klassifiziere Kunden anhand eines durchschnittlichen Bestellwertes

Abhängig von z.B. der Produktkategorie kann der durchschnittliche Bestellwert eines Kundens stark variieren: der Bestellwert bei Ersatzteilen ist niedriger, als wenn man eine ganze Maschine kauft. Insofern ist eine vorberechnete Klassifizierung im Vorsystem oft nicht ausreichend, da dort die Klassifizierung zumeist über alle Bestellungen des Kunden vorgenommen wird.

In unserem Beispiel sehe wir, dass im Jahr 2015 in der Kategorie "Milchprodukte" neun Kunden existieren, die einen durchschnittlichen Bestellwert größer 700€ haben. Das sind für den Anwender die "A Kunden" in dieser Kategorie. Die Grenzen für die ABC-Kunden kann über die Inputbox frei definiert werden.

9 Kunden haben einen durchschnittlichen Bestellwert von mehr als 700€ im Jahr 2015 für Milchprodukte

Eine Auswahl in der Listbox liefert uns die "A Kunden". Man sieht auch, dass nach Klassifizierung des Vorsystems zwei dieser Kunden eigentlich als "B Kunden" firmieren. Klar, denn diese Klassifizierung ist nicht dynamisch anhand der aktuellen Userselektion und Umsatzgrenzen.
 

Ändert man die Produktkategorie nun auf "Getränke", sieht man, dass hier die Klassifizierung anders aussieht: wir hätten bei gleicher 700€-Grenze mit "QUICK-Stop" nur einen der neun Kunden als "A Kunden"! Vier der anderen Kunden sind in dieser Kategorie überhaupt nur C-Kunden.



Die Implementierung der Selektion ist mit einer dynamische Listbox gelöst. Die AGGR-Funktion berechnet dynamisch anhand des Feld Firma und der Bestell-Nrs die ABC-Klassifizierung.

=aggr(
 if(
  avg(
   aggr(
    sum(Umsatz),Firma,[Bestell-Nr]
   )
  ) < $(vSmall), dual('C Kunde: Umsatz <$(vSmall)',1),
  if(
   avg(
    aggr(
     sum(Umsatz),Firma,[Bestell-Nr]
    )
   )< $(vMedium), dual('B Kunde: $(vSmall) < Umsatz < $(vMedium)',2), 
   
   dual('A Kunde: Umsatz >= $(vMedium)',3))
  ) 
  
  
,Firma)

Das gesamte Beispiel finden Sie hier.

PS: die AGGR in AGGR wäre hier nicht unbedingt notwendig. sum(Umsatz)/count(Distinct Bestell-Nr) ginge auc; aber schön das zu zeigen :-)

2 Response to "Dynamische Kundenklassifizierung mit QlikView"

  1. Andrey says:

    Hallo Roland,

    danke für den Blogpost!
    Ich habe angelehnt an dein Beispiel folgende interessante Beobachtung gemacht.
    1. Man wählt zuerst Jahr=2015, Monat=Aug und klickt dann auf den Button "Wähle alle Kunden mit 1500 bis 5000 Umsatz"
    Dann werden wie angezeigt 8 Kunden ausgewählt. Wenn man jetzt auf Monat=Sep wechselt, bleiben davon nur 2 Kunden in der Auswahl mit dem entsprechenden Umsatz für den Monat September 2015
    Soweit wie im Beispiel oben.
    2. Man wählt Jahr=2015, Monat=Sep und klickt dann auf den Button "Wähle alle Kunden mit 1500 bis 5000 Umsatz"
    Dann werden auch 2 Kunden ausgewählt, jedoch andere als im 1. Beispiel und mit entsprechend anderen Umsätzen!

    D.h. es spielt schon eine Rolle, ob man den Zeitraum zuerst eingegrenzt hat und dann die "Advanced Search" auf Firmen gestartet hat oder umgekehrt.
    Aber: aus der Auswahlstatus-Box ist es dabei leider nicht ersichtlich, welche Auswahl zuerst und welche danach gemacht wurde, dasselbe gilt auch für ein Text-Objekt mit =GetCurrentSelections()
    Ich kann also im Allgemeinen beim ersten Blick auf das Dashboard nicht zu 100% richtig erkennen wie ich die aktuelle Auswahl von Anfang an neu erstelle, stimmt das?
    Oder weisst du ob es dazu eine Lösung / ein Workaround gibt?

    Danke und Grüsse
    Andrey

    Hallo Andrey!
    Ja, du hast recht. Ist mir auch schon aufgefallen.

    1)
    In der Current Selection Box sind die Felder nicht sinnvoll gereiht (nichtmal Alphabetisch), sondern anhand des Field-Index welches das Feld bei Laden bekommt (Eigenschaften des Dokuments|Tabellen|Felder|#).

    2)
    Die Current Selection Box zeigt den "dynamischen" Suchausdruck an, hat aber in Wirklichkeit die Firmen fix selektiert. Es wird also nicht der Suchausdruck bei jedem Klick neu evaluiert. --> könnte man wohl als Bug einmelden, dass es besser wäre wenn die Current Selektion "x on Y Firmen selektiert" anzeigen würde!

    Am besten ist noch die Aussage von:

    =GetSelectedCount(Firma,true())

    Durch den zweiten Parameter IncludeExcluded=true() werden immer 13 selektierte Firmen angezeigt, auch wenn du Monat wechselst!

Kommentar veröffentlichen

heldendaten GmbH,2017