在表达式中使用变量的示例
Qlik Sense 中的变量是一个已命名实体,包含一个数据值。当在表达式中使用变量时,它将会被其值或变量的定义所取代。
示例:
变量 x 包含文本字符串 Sum(Sales)。
您可在图表中定义表达式 $(x)/12。效果与拥有图表表达式 Sum(Sales)/12 完全相同。
但是,如果您将变量值(举例)从 x 更改至 Sum(Budget),图表中的数据将立即使用 Sum(Budget)/12 表达式重新计算。
如何解释名称
建议不对 Qlik Sense 中的字段和函数将变量命名为相同的名称。 但如果您这样执行,则必须知道如何在表达式中使用它们。
示例:
字符串 XXX 表示字段、变量、函数或度量。XXX 可以解释为这些之一,具体取决于您创建表达式的方式。
表达式 | XXX 可以解释为 |
---|---|
XXX | 度量、变量或字段 |
$(XXX) | 变量 |
Count(XXX) | 字段或变量 |
XXX() | 函数 |
命名实体时,避免将同一名称指定给多个字段、变量或度量。解决同名实体之间的冲突有严格的优先顺序。这种顺序反映在使用这些实体的任何对象或上下文中。该优先顺序如下:
-
在聚合中,字段优先于变量。度量标签在聚合中不相关,并且没有排定优先级。
-
在聚合外部,度量标签优先于变量,而变量又优先于字段名称。
-
此外,在聚合外部,度量可以通过引用其标签来重用,除非标签实际上是计算标签。在这种情况下,度量的重要性降低,以减少自引用的风险,并且在这种情况下,名称将始终首先解释为度量标签,其次解释为字段名称,再次解释为变量名称。
变量计算
可以通过多种方法在 Qlik Sense 中使用变量计算值,结果取决于定义变量以及在表达式中调用变量的方式。
此例需要以下数据加载到数据加载编辑器中:
我们来从变量对话框定义两个变量:
- 名称 vSales 定义'Sum(Sales)'
- 名称 vSales2 定义'=Sum(Sales)'
在第二个变量中,在表达式前面添加一个等号。这可以使得在扩展变量和计算表达式之前计算变量。
如果按此方法使用 vSales 变量(如在度量中),则结果将为字符串 Sum(Sales),即没有执行任何计算。
如果在表达式中添加货币符号扩展和调用 $(vSales),则该变量已扩展且显示Sales的总和。
最后,如果调用 $(vSales2),则将会在扩展变量之前计算其值。这意味着所显示的结果是Sales的总和。使用 =$(vSales) 和 =$(vSales2) 作为度量表达式之间的区别如此图表显示的结果所示:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
如图表所示,$(vSales) 生成维度值的部分和,而 $(vSales2) 却生成总和。