Below - 图表函数
Below() 用于评估表格中列段数据内当前行下面的行的表达式。要计算的行取决于 offset 值,如果存在,则默认计算直接下面的行。对于除表格以外的图表,Below() 用于计算图表的等效垂直表中当前列下面的行的值。
语法:
Below([TOTAL] expr [ , offset [,count ]])
返回数据类型: 双
参数:
参数 | 说明 |
---|---|
expr | 表达式或字段包含要度量的数据。 |
offset |
指定 offsetn 大于 1 后,将表达式评估从当前行开始向下移动 n 行。 指定 0 偏移量可以计算当前行上的表达式的值。 指定负偏移量数值后,使 Below 函数效果类似于具有相应正偏移量数值的 Above 函数。 |
count |
通过指定第三个参数 count 大于 1,函数将返回一连串 count 值,每个值对应一个从原始单元格开始向下计数的 count 表格行。 此时,可以将该函数用作任何特殊范围函数的参数。 范围函数 |
TOTAL |
如果表格是单维度或如果将 TOTAL 限定符用作参数,则当前列段数据总是与整列相等。 |
在列段数据的最后一行中返回 NULL 值,因为该行下面没有其他行。
限制:
-
递归调用将返回 NULL 值。
-
当在图表的任何表达式中使用此图表函数时,不允许对图表中的 y 值进行排序或按表中的表达式列进行排序。因此,这些排序替代项会自动禁用。当您在可视化或表格中使用此图表函数时,可视化的排序将返回到此函数的排序输入。
示例和结果:
示例 1:
在示例 1 的屏幕截图中显示的表格中,表格可视化内容通过维度 Customer 和以下度量进行创建:Sum(Sales) 和 Below(Sum(Sales))。
对于包含 Divadip 的 Customer 行,列 Below(Sum(Sales)) 列返回 NULL,因为其下没有行。Canutility 行的结果显示 Divadip 的 Sum(Sales) 值,Betacab 的结果显示 Canutility 的 Sum(Sales) 值,以此类推。
此表格还显示了更复杂的度量,您可在标记以下内容的列中看到:Sum(Sales)+Below(Sum(Sales))、Below +Offset 3 和 Higher?。这些表达式的工作方式如以下段落所述。
对于标有 Sum(Sales)+Below(Sum(Sales)) 的列,Astrida 的行将显示行 Betacab + Astrida (539+587) 的 Sum(Sales) 值的相加结果。Betacab 行的结果将显示 Canutility + Betacab (539+683) 的 Sum(Sales) 值的相加结果。
使用表达式 Sum(Sales)+Below(Sum(Sales), 3) 创建的标有 Below +Offset 3 的度量具有参数 offset(已设置为 3),并且能够获取当前行下面三行中的值。它将当前 Customer 的 Sum(Sales) 值添加到下面三行 Customer 的值中。后三个 Customer 行的值是 NULL 值。
标记 Higher? 的度量通过以下表达式创建:IF(Sum(Sales)>Below(Sum(Sales)), 'Higher')。此表达式将度量 Sum(Sales) 当前行的值与其下一行进行比较。如果当前行的值较大,则输出文本“Higher”。
对于包含多个维度的图表,表达式(包含 Above、Below、Top 和 Bottom 函数)的结果取决于 Qlik Sense 对列维度进行排序的顺序。Qlik Sense 根据最后排序的维度得出的列段数据计数函数的值。可以在排序下的属性面板中控制列排序顺序,并且列不一定按顺序显示在表格中。有关更多信息,请参阅 Above 函数中的示例:2。
示例 2: |
结果 | ||
---|---|---|---|
Below 函数可用作范围函数的输入。例如:RangeAvg (Below(Sum(Sales),1,3))。 |
在 Below() 函数的参数中,将 offset 设置为 1,并将 count 设置为 3。函数在列段数据(其中有一行)当前行正下方的三行中查找表达式 Sum(Sales) 的结果。这三个值用作 RangeAvg() 函数的输入,用于查找所提供的数字范围中的平均值。 以 Customer 为维度的表格为 RangeAvg() 表达式提供了以下结果。 |
||
|
示例中所使用的数据: