如何在自由式表格中实现TOPN排名

<< Click to Display Table of Contents >>

当前位置:  脚本 > 常用脚本案例 

如何在自由式表格中实现TOPN排名

Previous pageReturn to chapter overviewNext page

某零售商利用自由式表格对本周的产品利润做了统计,如下表所示。

9case1

但是,该表没有体现各产品的利润排行,而且分析数据时,无法根据需要,只查看利润最高或最低的N项数据。

现在,我们可以通过脚本,让分析者自己定义,TOP N的值。

我们首先对自由式表格中的利润数据进行排序。

1.选中该自由式表格的“产品名称”列。

2.在计算>排序中,设置排序方式。这里我们设置“高级排序”。

3.设置按“利润”总和进行升序排列,如下图所示。

9case2

4.确定后,产品按照利润,从小到大进行排列,如下图所示。

9case3

下面为产品添加排名顺序。

5.选中“产品名称”,右键选择“在前方插入列”。

9case4

6.选中空白列的第二行,在右侧窗格的【计算】>【类型】中选择“脚本表达式(数据集)”。

9case5

7.在弹出的对话框中,输入下面的脚本。

该脚本表示,该列的数值为行数。在表格中,行号从0开始。也就是说我们看到的第一行,其实行号为零。那么本例中,我们从第二行开始排序,排名正好和行号相同。

ridx

 

9case7

添加排名后,效果如图所示。

9case8

接下来,我们添加一个文本参数组件,并通过文本参数组件,灵活控制TOPN中N的值。

8.添加一个文本组件,并绑定“产品名称”。通过“精确不同值计算”,得出一共有多少产品,并显示在文本组件中。

9case9

9.添加一个文本参数组件到仪表盘。

10.在顶部菜单栏,更多>脚本窗口中,点击“变化时运行”,并输入如下脚本。

该脚本表示,将按输入的值,筛选出TOP数据。当输入的N值,小于0或者大于最大行数时,显示全部的数据。

if(文本参数1.value>0){

自由式表格1.maxRows=文本参数1.value

}else{

自由式表格1.maxRows=文本1.value

}

 

9case10

11.设置成功后,在文本参数中输入值,就可以筛选出前N条数据。

9case11