Evaluate - 指令碼函數
Evaluate() 會尋找輸入文字字串是否能夠評估為有效的 Qlik Sense 運算式,如果可以,則以字串形式傳回運算式的值。如果輸入字串不是有效的運算式,則會傳回 NULL。
語法:
Evaluate(expression_text)
傳回的資料類型: 雙值
資訊備註此字串函數不可用於圖表運算式。
函數範例和結果
Evaluate( 5 * 8 )
|
傳回 40 |
範例 - Evaluate 基礎事項
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
Example:
Load
ExpressionText
, Evaluate(ExpressionText) as Evaluated
, Evaluate(ExpressionText)*4 as Evaluatedx4
;
Load * Inline
[ExpressionText
4
5+3
100/5
123*2
329-9
0123456789012345678
1234567890123456789
0123456.5512
0123456.5512479994578952364859346469
Today()
Bob
];
結果
會在資料表格中載入下列欄位:
-
ExpressionText
-
Evaluated
-
Evaluatedx4
Results table
ExpressionText |
Evaluated |
Evaluatedx4 |
4 |
4 |
16 |
5+3 |
8 |
32 |
100/5 |
20 |
80 |
123*2 |
246 |
984 |
329-9 |
320 |
1280 |
0123456789012345678 |
0123456789012345678 |
4.9382715604938e+17 |
1234567890123456789 |
1234567890123456789 |
4.9382715604938e+18 |
0123456.5512 |
0123456.5512 |
493826.2048 |
0123456.5512479994578952364859346469 |
0123456.5512479994578952364859346469 |
493826.204992 |
Today() |
11/5/2024 |
182404 |
Bob |
- |
- |
Evaluate 函數的輸出傳回所有 ExpressionText 字串的值,最後一列除外。無法評估字串 Bob,因此該函數不會傳回任何值 - NULL。已評估所有列,例如第二列新增 5 和 3 以傳回 8。某些 ExpressionText 字串按原樣傳回字串,因為該字串已評估為數字。例如,字串 0123456789012345678 評估為相同的數字。
雖然 Qlik Sense 對數值有 14 位數精確度限制,但 Evaluate 函數可將 18 位數字串評估為數字並在指令碼中套用乘法。這對於處理指令碼中的大量數字非常實用。
範例 - Evaluate 使用情境
概述
銷售資料的資料集包含產品、價格和折扣。此範例衍生出產品的折扣價格。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
載入指令碼
Example:
LOAD
Product,
Price,
[Discount (%)],
Price * (1 - Evaluate([Discount (%)] / 100)) AS DiscountedPrice
INLINE [
Product, Price, Discount (%)
Laptop, 1000, 15
Smartphone, 800, 10
Tablet, 600, 20
Headphones, 200, 5
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
Product
-
Price
-
Discount %
-
DiscountedPrice
Results table
Product |
Price |
Discount % |
DiscountedPrice |
Headphones |
200 |
5 |
190 |
Tablet |
600 |
20 |
480 |
Smartphone |
800 |
10 |
720 |
Laptop |
1000 |
15 |
850 |
Evaluate 函數的輸出示範如何使用該函數運算值。