QlikView´s Set Analysis ist ein unglaublich mächtiges Werkzeug zur Berechnung von verschiedensten Inhalten. Mit unter wird die Syntax verschiedener Formeln jedoch schnell unübersichtlich und kompliziert. Aus diesem Grund soll auf den folgenden Seiten eine Reihe von nützlichen Musterformeln und Syntaxvarianten vorgestellt werden.
Summe der Umsätze eines bestimmten Jahres, mit fixer Eingabe des Jahres
=Sum({<Year = {'1978'}> } Sales)
Summe der Umsätze ab einem bestimmten Jahr an, mit fixer Eingabe des Jahres
=Sum({<Year = {">=1978"}> } Sales)
Summe der Umsätze zwischen zwei Datumsangaben, die als Variable angegeben werden.
=Sum({<Date = {">=$(=vDateMin)<=$(=vDateMax)"}>}Sales)
Datum formatieren und anders ausgeben anhand des Beispiels:
vDatum = '12.03.2015'
=Day(vDatum) --> 12
=Month(vDatum) --> 3
=Year(vDatum) --> 2015
=Date(vDatum, 'YY-MM-DD') --> 15-03-12
Mit der Funktion =makedate() können sie ein Datum aus Tag, Monat und Jahr zusammensetzen und erstellen. Damit wird es möglich, Monatserste oder Vormonat bzw. Vorjahresstand leicht und unkompliziert darzustellen.
=makedate(Year(vDatum)-1, Month(vDatum), Day(vDatum)) --> 12.03.2014
Wenn Sie den Monatsersten oder Monatsletzten aus einem Datum ermitteln wollen, können Sie auch folgende Formeln anwenden.
=MonthStart(vDatum) --> 01.03.2015
=MonthEnd(vDatum) --> 31.03.2015
Mit dem Keyword TOTAL können Sie Dimensionen in ihrer Formelberechnung ignorieren. Sie können bestimmte Dimensionen ausschließen oder auch pauschal all Dimensionen.
Alle Dimensionen ausschließen (auch wenn in einem Diagramm Dimensionen verwendet werden)
=Sum(TOTAL Sales)
Bestimmte Dimensionen ausschließen (z.B. wenn Sie die Umsätze pro Jahre darstellen wollen, dabei aber unabhängig von den Kunden bleiben wollen)
=SUM (TOTAL <Kunden> Sales)
Die IF Anweisung ist eine der zentralen Formeln in den verschiedenen Programmen zur Datenverarbeitung. Mit ihr können Sie prüfen, ob eine Bedingung wahr ist und je nach Ergebnis der Prüfung das weitere Vorgehen für die Ergebnisse (Wahr / Falsch) festlegen.
=IF (PRÜFWERT > 0, 'Das Ergebnis ist positiv', Das Ergebnis ist negativ')
Das QlikView eine nahezu unerschöpfliche Auswahl an praktischen Formeln und Funktionen bereithält ist längst bekannt. Eine wichtige und sehr hilfreiche Formel ist die Formel zur Berechnung der Nettoarbeitstage zwischen zwei Datumsangaben. Dies ist vor allem für Applikationen in Unternehmen sinnvoll, da hier oft bei der Berechnung vom Umsatz- oder Produktivitätsquoten die Anzahl der tatsächlichen Arbeitstage herangezogen werden soll. Da diese Anzahl jeden Monat unterschiedlich ist, macht es Sinn hier die Berechnung direkt in QlikView vorzunehmen um am Ende das Ergebnis der Nettoarbeitstage zu erhalten.
=Networkdays(Startdatum, Enddatum)
Bsp.:
=Networkdays('22.06.2015','02.07.2015') (Ergebnis = 9)
AGGR ist eine sehr nützliche Aggregationsfunktion in QlikView. AGGR erzeugt eine temporäre Tabelle der Ergebnisse, mit einem Ausdruck, der durch eine oder mehrere Dimensionen gruppiert werden kann. Es ist ähnlich dem " Group by " in SQL.
Bsp.: Zeigt die Summe der Umsätze pro Region an
=aggr(Sum(Umsatz),Region)
Der Befehl "DISTINCT" wird in Formeln eingesetzt um bestimmte Datensätze ohne Duplikate zu zählen, summieren etc.
In Excel ist diese Funktion vielen als "Duplikate entfernen" bekannt. Gleiches vollzieht der DISTINCT Befehl in Qlikview. Er kann sowohl im Load Script als auch in Formeln von Diagrammen eingesetzt werden.
Bsp.: Zählt die Anzahl der eindeutigen Kundennummern an
=count(DISTINCT Kundennummer)
Mit der Formel Filename() kannst du den Dateinamen einer Datei im Skript auslesen. Das kann sinnvoll sein wenn verschiedene Excel Dateien in ein Datenmodell geladen werden sollen. So kann man am Ende im Bericht über die Selektion von Daten erkennen aus welcher Datei diese ursprünglich geladen wurden. Außerdem kann dies sinnvoll sein, wenn das Speicherdatum der Datei im Dateinamen steht und dieses für die Daten im Datenmodell verwendet werden soll.
=Filename()
Die Formeln Right() und Left() dienen dazu, eine bestimmte Anzahl von Zeichen aus einer Zeichenkette "abzuschneiden".Das ist notwendig, wenn nur ein bestimmter Teil einer Zeichenkette verwendet werden soll. Ein Beispiel kann sein, dass aus einem Datenamen die .CSV Endung abgeschnitten werden soll um nur den eigentlichen Namen zu bekommen. Bei systematischen Einträgen, die nach einem bestimmten Muster erstellt werden, kann es auch sinnvoll sein, nur einen bestimmten Teil eines Springs zu verwenden. Falls z.B. in einem Feld immer erst eine durchlaufende 10 stellige Nummer geführt wird und danach die Namen der Kunden stehen, dann kann es sinnvoll sein, die ersten 10 Stellen abzuschneiden sie als Schlüsselfeld im Bericht zu verwenden.
Für dieses Beispiel sähe die entsprechende Formel wie folgt aus:
=Left(DeinFeld, 10)