Äußere Auswahlformeln mit Dollarzeichen-Erweiterungen
Wenn eine (oder mehrere) Dollarzeichen-Erweiterungen in einer größeren Formel verwendet werden, wird jede Dollarzeichen-Erweiterung isoliert ausgewertet, bevor das Ergebnis in den Rest der Formel eingefügt wird. Eine Auswirkung dieser Auswertungsmethode ist, dass Auswahlformeln außerhalb einer Formel mit Dollarzeichenerweiterung das Ergebnis nicht beeinflussen. Dadurch entsteht ein Effekt, bei dem die Informationen innerhalb einer Formel doppelt ausgewertet werden.
Beispiel: Auswertung von Formeln, die eine äußere Auswahlformel und Dollarzeichen-Erweiterungen enthalten
Angenommen, es liegt folgende Beispielformel vor:
Innerhalb der obigen Formel ist eine Auswahlformel vorhanden, um Year-Werte für 2024 auszuwählen: {<Year={2024}>}. Wenn diese ganze Beispielformel ausgewertet wird, wird diese Auswahlformel nicht angewendet.
Stattdessen wird zuerst die Dollarzeichen-Formel $(=Sum(Sales)) ausgewertet.
Nehmen wir für dieses Beispiel an, dass Sum(Sales) ein Ergebnis von 1500311 liefert. Beim Auswerten der Formel {<Year={2024}>} $(=Sum(Sales)) wird diese Zahl in die umgebende Formel eingefügt. Diese Auswertungsreihenfolge ergibt die folgende teilweise ausgewertete Konfiguration (beachten Sie, dass dies keine nützliche Qlik Sense Formel ist und nur gezeigt wird, um die Reihenfolge der Auswertung zu demonstrieren):
Als nächstes wird die Formel {<Year={2024}>} 1500311 als Ganzes ausgewertet. Die Auswahlformel {<Year={2024}>} hat keine Auswirkung, da die Formel rechts davon einfach eine Zahl und keine Art von aggregierter Formel ist.
Wenn Sie also den oben im Beispiel angegebenen Wert Sum(Sales) verwenden, würde das ausgewertete Ergebnis für die gesamte Formel {<Year={2024}>} $(=Sum(Sales)) 1500311 lauten.
Erstellen einer Formel aus Teilen
Die Verwendung der Dollarzeichen-Erweiterung in einer Formel führt zu einem Doppelauswertungseffekt. Sie können diesen Effekt der Doppelauswertung nutzen, indem Sie eine Formel mithilfe von Teilen aufbauen.
Beispiel
Angenommen, es liegt folgende Beispielformel vor:
In der ersten Bewertungsrunde wird die Dollarzeichen-Erweiterung $(='Sum(' & 'Sales' & ')') bewertet. In diesem Schritt werden die drei Strings zu einem einzigen String 'Sum(Sales)' kombiniert. Da es sich um einen String und nicht um eine Formel handelt, wird die darin enthaltene Formel zu diesem Zeitpunkt nicht ausgewertet.
In diesem Stadium der Auswertung ist die Formel so festgelegt, dass sie von Qlik Sense wie folgt interpretiert wird:
{<Year={2024}>} Sum(Sales)
In diesem Fall wird die äußere Auswahlformel auf die Aggregierung Sum angewendet, da wir jetzt eine normale Formel und nicht nur eine Zahl (wie im ersten Beispiel) erstellt haben. Beachten Sie, dass die Anführungszeichen in der ersten Auswertungsrunde genutzt wurden, sodass die Formel für die zweite Auswertungsrunde erhalten blieb (und mit & zusammengefasst wurde).
Variablen-Lookup
Wenn Sie eine Variablen-Dollarzeichen-Erweiterung für ein Variablen-Lookup verwenden, wird der Inhalt der Variable in die umgebende Formel eingefügt, bevor dieser Inhalt ausgewertet wird.
Beispiel
Angenommen, es liegt folgende Beispielformel vor:
In diesem Beispiel wird der Inhalt der Variablen Var1 in die umgebende Formel eingefügt, bevor dieser Inhalt ausgewertet wird.
Ergebnis A: Variablendefinition ohne Gleichheitszeichen
Wenn Var1 als Sum(Sales) definiert ist, sieht sie nach der Erweiterung wie folgt aus (beachten Sie, dass die folgende Konfiguration eine teilweise ausgewertete Formel ist):
In diesem Beispiel wird also die äußere Auswahlformel {<Year={2024}>} angewendet.
Ergebnis B: Variablendefinition mit Gleichheitszeichen
Wenn die Definition in Var1 hingegen mit einem Gleichheitszeichen beginnt – also =Sum(Sales) – wird die äußere Auswahlformel nicht angewendet. Der Grund dafür ist, dass das Gleichheitszeichen dazu führt, dass die Variablenformel vorab und isoliert berechnet wird. Dies führt zu einem ähnlichen Ergebnis wie im ersten Beispiel, in dem neben einer Zahl eine äußerer Auswahlformel ausgewertet werden muss, was kein brauchbares Ergebnis liefert.