RowNo - 图表函数
RowNo() 用于返回表格中当前列段数据的当前行数。对于位图图表,RowNo() 用于返回图表的等效垂直表内的当前行数。
如果表格或表格等同物有多个垂直维度,当前列段数据将只包括值与所有维度列的当前行相同的行,但按内部字段排序显示最后维度的列除外。
信息注释如果在图表的任何表达式中使用此图表函数,则不允许对图表中的y值进行排序或按表中的表达式列进行排序。因此,这些排序替代项会自动禁用。当您在可视化或表格中使用此图表函数时,可视化的排序将返回到此函数的排序输入。
语法:
RowNo([TOTAL])
返回数据类型: 整数
参数:
TOTAL
|
如果表格是单维度或如果将 TOTAL 限定符用作参数,则当前列段数据总是与整列相等。
定义聚合范围
|
示例:使用 RowNo 的图表表达式
加载脚本
将以下数据作为数据加载编辑中的内联加载载入,以创建以下图表表达式示例。
Temp:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB|1|25| 25
Canutility|AA|3|8|15
Canutility|CC|5|4|19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
有关使用内联加载的详细信息,请参见内联加载。
图表表达式
在 Qlik Sense 工作表中创建表可视化,以 Customer 和 UnitSales 为维度。添加 RowNo( ) 和 RowNo(TOTAL) 为度量,分别标记为段中的行以及 Row Number。在表格中添加以下表达式作为度量:
If( RowNo( )=1, 0, UnitSales / Above( UnitSales ))
结果
Customer |
UnitSales |
Row in Segment |
Row Number |
If( RowNo( )=1, 0, UnitSales / Above( UnitSales )) |
Astrida |
4 |
1 |
1 |
0 |
Astrida |
9 |
2 |
2 |
2.25 |
Astrida |
10 |
3 |
3 |
1.1111111111111 |
Betacab |
2 |
1 |
4 |
0 |
Betacab |
5 |
2 |
5 |
2.5 |
Betacab |
25 |
3 |
6 |
5 |
Canutility |
4 |
1 |
7 |
0 |
Canutility |
8 |
2 |
8 |
2 |
Divadip |
1 |
1 |
9 |
0 |
Divadip |
4 |
2 |
10 |
4 |
解释
Row in Segment 列显示列段数据的结果 1、2 和 3,该列段数据包含客户 Astrida 的 UnitSales 值。然后,再次从 1 开始为下一个列段数据的行进行编号,即 Betacab。
Row Number 列由于 RowNo() 的参数 TOTAL 而忽略维度,并对表中的行进行计数。
此表达式会为每个列段数据中的第一行返回 0,因此列会显示:
0、2.25、1.1111111、0、2.5、5、0、2、0 和 4。
有关表达式的更多信息,请参阅在可视化中使用表达式。