Modifikatoren für Auswahlformeln

Auswahlformeln lassen sich durch Modifikatoren verändern. Dabei wird eine zusätzliche oder geänderte Auswahl mit in die Auswahlformel aufgenommen.

Der Modifikator ist in spitzen Klammern (< und >) eingeschlossen und besteht aus mindestens einem Feldnamen, jeweils gefolgt von einer Auswahl von Feldwerten. Hier ein Beispiel: <Year={2007,2008},Region={US}>. Feldnamen und Feldwerte können wie gewohnt in Anführungszeichen gesetzt werden, z. B. <[Sales Region]={’West coast’, ’South America’}>.

Ein Auswahlmodifikator modifiziert die Auswahl des vorhergehenden Auswahlidentifikators. Wird kein Auswahlidentifikator referenziert, ist der aktuelle Auswahlstatus implizit.

Es gibt verschiedene Möglichkeiten, die Auswahl zu definieren:

  • Basierend auf einem anderen Feld
  • Basierend auf Elementgruppen (eine Liste mit Feldwerten im Modifikator)
  • Aktiver Ausschluss

Diese Methoden werden in den folgenden Unterabschnitten ausführlicher beschrieben.

Basierend auf einem anderen Feld

Ein einfaches Beispiel ist eine Auswahl, die auf den ausgewählten Werten eines anderen Felds basiert: <OrderDate = DeliveryDate>. Durch diesen Modifikator werden die ausgewählten Werte des Felds 'DeliveryDate' als Auswahl im Feld 'OrderDate' verwendet. Wenn dies viele distinkte Werte sind – mehrere Hundert –, erfordert diese Operation viel Rechenleistung und sollte vermieden werden.

Basierend auf Elementsätzen

Das gängigste Beispiel einer Auswahlformel ist eine Formel, die auf einer Liste von in geschweiften Klammern stehenden Feldwerten basiert. Die Werte sind durch Kommas getrennt. Beispiel: <Year = {2007, 2008}>. Die geschweiften Klammern definieren eine Elementgruppe, wobei die Elemente entweder explizite Feldwerte oder Feldwertsuchvorgänge sein können.

Sofern die aufgelisteten Werte keine Leer- oder Sonderzeichen enthalten, sind keine Anführungszeichen erforderlich. Die Werte in der Liste werden einfach mit den Feldwerten abgeglichen. Bei diesem Vergleich wird die Groß- und Kleinschreibung nicht berücksichtigt.

Falls die aufgelisteten Werte Leer- oder Sonderzeichen enthalten oder Sie Wildcards verwenden möchten, müssen Sie die Werte in Anführungszeichen setzen. Einfache Anführungszeichen sollten verwendet werden, wenn es sich bei den aufgelisteten Werten um explizite Feldwerte handelt. In diesem Fall finden Abgleiche zwischen den Werten in der Liste und den einzelnen Feldwerten statt, bei denen die Groß- und Kleinschreibung berücksichtigt wird.

Doppelte Anführungszeichen sollten für Suchvorgänge verwendet werden, d. h. für Strings, die Wildcards enthalten oder mit einem relationalen Operator oder einem Gleichheitszeichen beginnen. Mit <Ingredient = {"*Garlic*"}> werden beispielsweise alle Zutaten ausgewählt, die den String „Garlic“ enthalten. Doppelte Anführungszeichen können durch eckige Klammern ersetzt werden. Beispiel: <Ingredient = {[*Garlic*]}>. Doppelte Anführungszeichen können auch durch Graviszeichen ersetzt werden. Beispiel: <Ingredient = {`*Garlic*`}>. Bei Suchvorgängen wird die Groß- und Kleinschreibung nicht berücksichtigt.

Hinweis:

In früheren Versionen von Qlik Sense wurde nicht zwischen einfachen und doppelten Anführungszeichen unterschieden. Alle in Anführungszeichen gesetzten Strings wurden als Suchvorgänge behandelt. Aus Gründen der Abwärtskompatibilität funktionieren mit älteren Versionen von Qlik Sense erstellte Apps weiterhin wie in früheren Versionen. In Apps, die mit Qlik Sense November 2017 oder höher erstellt wurden, wird der Unterschied zwischen den beiden Typen von Anführungszeichen berücksichtigt.

Aktiver Ausschluss

Für Felder im AND-Modus besteht die Möglichkeit des aktiven Ausschlusses. Um Werte aktiv auszuschließen, muss vor dem Feldnamen eine Tilde '~' stehen.

Hinweis: AND-Modus wird nur bei Verwendung von Qlik Engine API unterstützt.

Examples and results:  

Beispiele Ergebnisse
sum( {1<Region= {USA} >} Sales ) Liefert den Umsatz für die Region USA, ohne die aktuelle Auswahl zu berücksichtigen
sum( {$<Region = >} Sales ) Liefert den Umsatz für die aktuelle Auswahl, aber ohne die Auswahl im Feld 'Region'
sum( {<Region = >} Sales )

Entspricht dem Beispiel direkt darüber. Wird kein Modifikator verwendet, wird $ angenommen.

Hinweis: Die Syntax in den beiden vorangehenden Beispielen wird interpretiert als "keine Auswahl" im Feld 'Region', d. h. Berechnung erfolgt für alle Regionen, die nicht durch eine andere Auswahl ausgeschlossen sind. Dies ist nicht dasselbe wie <Region = {}> (oder eine andere Syntax, bei welcher der Text rechts des Gleichheitszeichens in einer leeren Elementgruppe resultiert). Letzteres wird als keine Region interpretiert.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Liefert den Umsatz für die aktuelle Auswahl, jedoch mit neuen Auswahlen in 'Year' und 'Region'.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Das Feld Ingredient ist im AND-Modus.

Liefert den Umsatz für die aktuelle Auswahl, aber ohne die Datensätze, bei denen der String 'garlic' im Feld für Zutaten auftaucht.

sum( {$<Year = {“2*”}>} Sales ) Liefert den Umsatz für die aktuelle Auswahl im Feld 'Year', aber nur für Jahre, die mit einer 2 beginnen, d. h. die Jahre ab 2000.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Wie oben, jetzt jedoch auch mit den 1980er-Jahren.
sum( {$<Year = {“>1978<2004”}>} Sales ) Liefert den Umsatz für die aktuellen Auswahlen, jedoch mit einer numerischen Suche zur Untersuchung des Jahresbereichs, für die der Umsatz addiert wird.