<< Click to Display Table of Contents >> 如何在自由式表格中实现TOPN排名 |
某零售商利用自由式表格对本周的产品利润做了统计,如下表所示。
但是,该表没有体现各产品的利润排行,而且分析数据时,无法根据需要,只查看利润最高或最低的N项数据。
现在,我们可以通过脚本,让分析者自己定义,TOP N的值。
我们首先对自由式表格中的利润数据进行排序。
1.选中该自由式表格的“产品名称”列。
2.在计算>排序中,设置排序方式。这里我们设置“高级排序”。
3.设置按“利润”总和进行升序排列,如下图所示。
4.确定后,产品按照利润,从小到大进行排列,如下图所示。
下面为产品添加排名顺序。
5.选中“产品名称”,右键选择“在前方插入列”。
6.选中空白列的第二行,在右侧窗格的【计算】>【类型】中选择“脚本表达式(数据集)”。
7.在弹出的对话框中,输入下面的脚本。
该脚本表示,该列的数值为行数。在表格中,行号从0开始。也就是说我们看到的第一行,其实行号为零。那么本例中,我们从第二行开始排序,排名正好和行号相同。
ridx
添加排名后,效果如图所示。
接下来,我们添加一个文本参数组件,并通过文本参数组件,灵活控制TOPN中N的值。
8.添加一个文本组件,并绑定“产品名称”。通过“精确不同值计算”,得出一共有多少产品,并显示在文本组件中。
9.添加一个文本参数组件到仪表盘。
10.在顶部菜单栏,更多>脚本窗口中,点击“变化时运行”,并输入如下脚本。
该脚本表示,将按输入的值,筛选出TOP数据。当输入的N值,小于0或者大于最大行数时,显示全部的数据。
if(文本参数1.value>0){
自由式表格1.maxRows=文本参数1.value
}else{
自由式表格1.maxRows=文本1.value
}
11.设置成功后,在文本参数中输入值,就可以筛选出前N条数据。