Qlik Sense Calendar Measures & "Minicharts" in Tabellen


Unsere Kunden fragen häufiger, ob sie in Qlik Sense Tabellen auch Graphiken (Ampeln, Bars, Sparklines) darstellen können. Die Qlik verweist dann gerne auf Extensions, womit wir jedoch gemischte Erfahrungen gemacht haben (kein Support, Limitierung auf bestimmte Qlik Sense Versionen, Paging nicht sauber implementiert, etc.).


Nehmen wir die neuen "Calendar Measures" in Qlik Sense 3.2 zum Anlass, um zu sehen was man mit den Boardmitteln der aktuellen Qlik Sense Objekte erreichen kann!
 
Qlik Sense "Mini Diagramme" und Sparklines - mit Boardmitteln. Ist das möglich?

Calendar Measures

Mit Qlik Sense 3.2 sind Calendar Measures als neues Feature hinzugekommen. Sie verbinden einige Features die in voherigen Qlik Sense Versionen enthalten waren (Declare Statement für Kalender, Datamanger automatische Datumserkennung) mit einem Feature, welches wir schon lange kennen: Set Analysis!

Laut Doku muss man sich den Kalender über den Datamanager generieren lassen. Dieser erzeugt das Declare Statement im Script.

Qlik Sense Datamanager Date
Datamanager erkennt Bestelldatum als Datum und generiert Kalender

Das Measure, welches ein Calender Measure werden soll, rechtsklicken und "Kalenderkennzahlen erstellen"wählen.

Qlik Sense Calendar Measure Create
Neuer Menüpunkt

Es erscheint der neue Dialog bei dem man "mehrmals" die Zeitraum-Dropbox klicken kann um alle Masteritems zu genieren.  In der Vorschau sieht man bereits: Im Grunde werden Set Analysis Expressions am Declare-Kalender erzeugt.

Qlik Sense Calendar Measure Dialog
Calendar Measure Dialog

Alles im allem ist dieses Qlik Sense 3.2 Feature "ganz OK". Aber wer heute schon seinen eigenen Kalender hat, der bleibt damit momentan noch flexibler!

Limitationen die ich momentan sehe:
  • Laut Doku darf man in das Declare-Statement nicht mit dem Script Editor anlegen.  Ich habe es mir im Datenmanager generieren lassen, und dann sehr wohl modifiziert (statt today() das Jahr 1998, damit das YTD vom "aktuellen Jahr" in meiner Nordwind Demo funktioniert). Prinzipiell schient das also möglich, man muss wohl mit dem Qlik Support klären, ob wir das auch dürfen.
  • Der Wizard generiert nur einige Felder, braucht man zB ein YTD vom Vorvorjahr, muss man das Masteritem wieder manuell machen.
  • Die erzeugen Formeln sind nicht "dynamisch". Wählt der User also das Jahr 2015, sieht er im Vorjahresvergleich nicht 2015 und 2014, sondern weiterhin 2017 und 2016. Das kann man sehen, wenn man sich das Declare Statement des Kalenders im Skript ansieht.
  • Declare mit großen Datenmengen hat/hatte ein Performance Problem. Das müsste man in Qlik Sense 3.2 wieder testen.
  • Es werden viele Master Items generiert; ich hatte gehofft, dass man das SET via Parameter an das Masteritem übergeben kann. Ähnlich wie bei Variablen wären die $-Parameter gut gewesen, dann könnte man die Masteritems auch besser gruppieren.
  • Wenn man weitere Set Modifier (zb Source={BUDGET}) in seiner Expressionbenötigt, muss man alle MasterItems manuell nacharbeiten. Ein weiteres Inputfield direkt im Wizard wäre nett gewesen.
Naja, zumindest kann man jetzt eine Nordwinddemo mit YTD-Vergleich ohne jedliches Skripten bauen, und das soll hier auch die Grundlage für unser weiteres Beispiel sein :-)

Charts in Qlik Sense Pivot & Straight Table

Nachdem wir jetzt also YTD und YTD-Vorjahr Masteritems haben, möchten wir diese vergleichen. Eine Prozentzahl können wir natürlich als Zahl in einer Tabelle ausgeben. Aber wie sieht es mit Graphiken aus?

Die beschriebene Applikation finden Sie Online unter demo.heldendaten.net und als Download hier.

Ampel 

Ampeln sind in Straight Table und Pivottable möglich. Man nimmt einfach das Unicode-Zeichen, dass einem am meisten an eine Ampel erinnert und färbt es ein :-) Es gibt sogar eine Unicode Ampel 🚦, die lässt sich aber nicht gut färben, deswegen würde ich sagen ein Block █ ist am Besten! In Qlik Sense kann das dann folgendermaßen aussehen:

Expression: ='█'
ColorCode:  if(column(1) >=column(3), green(), lightred())

Qlik Sense Ampel Traffic Light

Nachteil in der Pivottabelle: dadurch, dass alle Spalten immer gleich breit sind, wirkt die Ampel manchmal ein wenig verloren!

Linear Gauge

Einen Schritt weiter muss man die Idee spinnen, um eine Linear Gauge zu schaffen. Um einen Prozentwert darzustellen kann man mehrere Blöcke █ mit der repeat-Funktion aneinanderreihen. 70% sind dann sieben Blöcke ███████ . Sieht aus wie ein kleines Balkendiagramm.

Expression: =repeat('█', 
                   rangemax(rangemin( ceil(((column(1)/column(2))-1)*10),10),1) 
                  )
ColorCode:       =if([Steigerung]>2, argb(255,0,150,0),
            if([Steigerung]>1, argb(255,0,200,0),
                     if([Steigerung]>0.5, yellow(),lightred())))
 

Qlik Sense Linear Gauge Bar

Die Rangemin/max-Funktionen dienen dazu, dass man minimal einen und maximal zehn Blöcke zeichnet. Negative Werte als "Butterfly" darzustellen ist schwierig, aber das war es in QlikView auch.

Minichart

Schaffen wir mit diesem Ansatz auch ein Minichart oder gar eine Sparkline? Jein! Zumindest die Unterart "Whiskers" von QlikView kann man andeuten. Zum Beispiel für die Fragestellung: habe ich im Vergleich zum Vormonat mehr oder weniger Umsatz gemacht.

Qlik View Mini Chart Whiskers
QlikView Mini Chart Whiskers

Dazu nutzen wir die neue "Sortable Aggr" und zwei verschiedene Blocktypen: ▀ (upper half) und ▄ (lower half)

Expression: 
=concat(
        aggr(
             if(sum(Umsatz) > above(sum(Umsatz)),
               '▀',if(not isnull(above(sum(Umsatz))),'▄',' ')
             )
             ,Kategoriename, (Bestellmonat,(NUMERIC, ASCENDING))
        )
 ,'',Bestellmonat)

Qlik Sense Mini Chart Whiskers


Das Kombidiagramm unterhalb zeigt die Details: wir haben im März 1998 weniger Getränke verkauft als im Feb 1998, im April weniger als im März, und im Mai weniger als im April. Deswegen sind 3 "lower"-Blöcke ▄▄▄ am Ende der Whiskers zu sehen.

Für eine vollwertige Sparkline kommt man mit UniCode-Characters wohl nicht viel weiter. Aber bis das Feature zur Verfügung steht, ist es vielleicht eine gangbare Alternative zu einer Extension!

PS: Alle Formeln sollten eigentlich auch in QlikView 12 funktionieren. Dort würde ich aber jeweils das angestammte Feature hernehmen :-)







heldendaten GmbH,2017