Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

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.

Ein Modifikator ist in < und > eingeschlossen und besteht aus einem oder mehreren Feldnamen, jeweils gefolgt von den auszuwählenden Werten. 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.

Wie unten beschrieben, gibt es verschiedene Möglichkeiten, eine Auswahl zu definieren.

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 häufigste Beispiel einer Auswahlformel basiert auf einer Liste mit Feldwerten, die in geschweiften Klammern eingeschlossen sind. Die Werte werden durch Kommas getrennt, zum Beispiel <Year = {2007, 2008}>. Die geschweiften Klammern definieren eine Elementgruppe, in der Elemente entweder explizite Feldwerte oder Suchvorgänge nach Feldwerten sein können.

Mit Ausnahme von Leerzeichen oder Sonderzeichen sind bei gelisteten Werten keine Anführungszeichen nötig. Die gelisteten Werte werden einfach mit den Feldwerten abgeglichen. Bei diesem Vergleich wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Falls die gelisteten Werte Leerzeichen oder Sonderzeichen enthalten oder falls Sie Platzhalterzeichen verwenden möchten, müssen Sie die Werte in Anführungszeichen einschließen. Einfache Anführungszeichen sollten verwendet werden, wenn die gelisteten Werte explizite Feldwerte sind. Dann werden Abgleiche (mit Unterscheidung zwischen Groß- und Kleinschreibung) zwischen den gelisteten Werten und den einzelnen Feldwerten durchgeführt.

Doppelte Anführungszeichen sollten für Suchvorgänge verwendet werden, d. h. Zeichenketten, die Platzhalter enthalten oder mit einem relationalen Operator oder einem Gleichheitszeichen beginnen. Beispielsweise wählt <Ingredient = {"*Garlic*"}> alle Zutaten aus, die die Zeichenkette 'Garlic' enthalten. Doppelte Anführungszeichen können durch Klammern ersetzt werden, zum Beispiel <Ingredient = {[*Garlic*]}>. Doppelte Anführungszeichen können auch durch einen Gravisakzent ersetzt werden, zum Beispiel <Ingredient = {`*Garlic*`}>. Bei den Suchvorgängen wird nicht zwischen Klein- und Großschreibung unterschieden.

Informationshinweis

In Vorgängerversionen von QlikView gab es keine Unterscheidung zwischen einfachen und doppelten Anführungszeichen; alle in Anführungszeichen stehenden Zeichenketten wurden als Suchvorgänge behandelt. Um Abwärtskompatibilität zu gewährleisten, funktionieren Dokumente, die mit älteren Versionen von QlikView erstellt wurden, genauso, wie sie das in Vorgängerversionen taten. Dokumente, die am QlikView November 2017 oder später erstellt wurden, unterscheiden auch weiterhin zwischen den beiden Anführungszeichentypen.

Aktiver Ausschluss

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

Beispiele und Ergebnisse:  

Beispielergebnisse
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.

InformationshinweisDie 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 der 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 UND-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.
Informationshinweis

Wenn Sie den Ausschluss von bestimmten Feldwerten in Objekten wie Textobjekten erzwingen möchten, müssen Sie die Skriptsyntax ändern. Wenn beispielsweise die Skriptanweisung wie folgt lautet:

=count({<ANDActor=>}DISTINCT Title)

ändern Sie sie wie folgt:

=count({<~ANDActor=, ANDActor=>} DISTINCT Title)

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com