Qlik Sense Variance Waterfall für Bestände
Blog

Qlik Sense Variance Waterfall für Bestände

3 min read Jan 24, 2023

Im "Visualization Bundle" wird das Variance Waterfall Chart mitinstalliert. Die Darstellung ist damit viel dynamischer als das normale Wasserfalldiagramm, weil nicht für jeden Balken eine eigene Expression geschrieben werden muss.

Für normale YTD-Darstellungen in einer Vertriebsapplikation ist das Chart recht straight forward. Das Variance Waterfall Chart nutzt die gleichen Formeln wie das normale Wasserfalldiagramm und läuft zusätzlich über das "Monat"-Feld. Im Beispiel unterhalb sieht man so auf einen Blick, dass die Monate Jänner, Februar und März noch besser als das Vorjahr waren, bevor sich dann in den Folgemonaten der Umsatz YTD schlechter entwickelt hat.

undefined

Zuletzt hatten wir jedoch die Anforderung, mit diesem Charttyp die Veränderung von Beständen darzustellen. Beispiele dafür wären: Lagerbestände, Entwicklung Anzahl Kunden pro Monat, usw.

Für diese Anforderung scheint das Chart nicht unbedingt geschaffen, weil es das Konzept von Start-Bestand und End-Bestand nicht wirklich kennt und es keine Differenz zum Vormonat bildet. Man sieht das ganz gut, wenn man sich den Javascript Code der Extension von Qlik ansieht.

Mittels dimensionality(), below() und firstsortedvalue() kann man auch diese Anforderung darstellen. Die Formeln sind nur ein wenig komplizierter. Zum Test gibt es die Werte rechts als Tabelle. 


undefined

STARTFORMEL:

rangesum(FirstSortedValue(distinct aggr(nodistinct sum(Bestand),Monat), Monat,1),-0)

ENDFORMEL:
if (dimensionality() = 0,
//Höhe Balken Zielmonat
rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand),Monat), -Monat,1))
,
//Wert des Vormonats
    alt(
      below(
        rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand),Monat), -Monat,1),-0)
        ,1)

    ,

        //im letzten Monate keinen Unterschied zeichnen
        rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand ),Monat), -Monat,1))
    )

)

Als Dimension nutzen wir ein eigenes Feld "MonatWasserfall", welches um einen Monat zum tatsächlichen Datum verschoben ist. Damit ist die Beschriftung dann schlüssiger.


Weil Bestände oft sehr hoch und die Veränderungen verhältnismäßig klein sein können, haben wir auch noch die Funktion eingebaut, dass ein Anwender selbst den Skala-Start definieren kann. Gibt er in das Inputfeld 400.000 ein, beginnt die Y-Achse nicht mehr bei 0 und das Chart sieht folgendermaßen aus:

undefined

Gibt der User gar keinen Wert ein, dann wählen wir mit der Formel =if(len(vSkala)=0, min (aggr(sum(Bestand),Datum)) * 0.95 ,vSkala) den Skalenwert dynamisch und geben ihn als Fußnote aus.

undefined

Alternativ zur vorgestellten Lösung könnte ein As-Of-Ansatz im Datenmodell funktionieren wo immer das Vormonat "mitselektiert" wird. Das bleibt zu testen. Wer für unsere Lösung herausfindet, wie man den letzten roten Balken im Jänner 2021 mit dem Wert 0 loswerden kann, darf sich gerne melden!


Sie mögen, was Sie lesen?

Melden Sie sich zu unserem Newsletter an und bleiben Sie up-to-date.

Über den Autor

Roland Vecera

Data Solution Architect

LinkedIn