Evaluate - 脚本函数
Evaluate() 用于确定是否可将输入文本字符串作为有效的 Qlik Sense 表达式来计算值,如果可以,则以字符串形式返回该表达式的值。如果输入字符串不是有效的表达式,则返回 NULL。
语法:
Evaluate(expression_text)
返回数据类型: 双
信息注释此字符串函数不可用于图表表达式。
函数示例和结果
Evaluate( 5 * 8 )
|
返回 40 |
示例 - 评估基础知识
概述
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载脚本
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 函数的输出演示了如何使用函数计算值。