外部集合運算式和貨幣符號展開
在較大的運算式中使用一個 (或多個) 貨幣符號展開時,在將結果插入運算式的其餘部分之前,將隔離評估每個貨幣符號展開。此評估方法的含義之一是貨幣符號展開運算式以外的集合運算式不會影響結果。這會對運算式內的資訊所進行的雙重評估產生影響。
範例 – 如何評估包含外部集合運算式和貨幣符號展開的運算式
假設您有以下範例運算式:
在上面的運算式中,有一個集合運算式用來選擇 2024 的 Year 值:{<Year={2024}>}。評估整個範例運算式時,不會套用此集合運算式。
而是會先評估貨幣符號運算式 $(=Sum(Sales))。
對於此範例,假設 Sum(Sales) 的評估結果為 1500311。評估運算式 {<Year={2024}>} $(=Sum(Sales)) 時,此數字會插入到周圍的運算式中。此評估順序會產生以下部分評估的設定 (請注意,這不是有用的 Qlik Sense 運算式,僅用於示範評估順序):
接下來,運算式 {<Year={2024}>} 1500311 會作為一個整體來評估。集合運算式 {<Year={2024}>} 沒有任何影響,因為其右側的運算式只是一個數字,而不是任何類型的彙總運算式。
因此,使用上面範例中給定的 Sum(Sales) 值,整個運算式 {<Year={2024}>} $(=Sum(Sales)) 的評估結果將為 1500311。
從部分建立運算式
在運算式中使用貨幣符號展開會產生雙重評估影響。您可以使用部分建立運算式,以受益於這種雙重評估影響。
範例
假設您有以下範例運算式:
在第一輪評估中,會評估貨幣符號展開 $(='Sum(' & 'Sales' & ')')。在此步驟中,三個字串組合成一個字串 'Sum(Sales)'。由於這是一個字串而不是運算式,因此這時不會評估內部的運算式。
在此評估階段,運算式設定為由 Qlik Sense 解譯,如下所示:
{<Year={2024}>} Sum(Sales)
在此情況下,外部集合分析運算式將套用於 Sum 彙總,因為我們現在已經產生了一個標準運算式,而不僅僅是一個數字 (如第一個範例中的情況)。請注意,引號字元取用了第一輪評估,以便為第二輪評估保留運算式 (並使用 & 串連)。
變數查閱
使用變數貨幣符號展開進行變數查閱時,變數的內容會在評估內容之前插入到周圍的運算式中。
範例
假設您有以下範例運算式:
在此範例中,變數 Var1 的內容將在評估該內容之前插入到周圍的運算式中。
結果 A – 沒有等號的變數定義
如果 Var1 定義為 Sum(Sales),則展開後將如下所示 (請注意,下面的設定是部分評估的運算式):
因此,對於此範例,將套用外部集合運算式 {<Year={2024}>}。
結果 B – 有等號的變數定義
另一方面,如果 Var1 中的定義以等號開頭 (即 =Sum(Sales)),則不會套用外部集合運算式。這是因為等號導致變數運算式以隔離方式提前評估。這會導致類似於第一個範例的結果,其中有一個外部集合運算式要與數字一起評估,但不會傳回有用的結果。