历史版本3 :不并列连续排名 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

使用帆软内置公式 SORT( ) 进行排名时,相同的数据排名一致,后面的数据则跳号排名。

如下图,98 分都是第 3 名,97 分则跳到了第5名。如何实现第四列一样的连续不间断排名呢(相同的数据根据先后顺序排名依次递增,排名不跳号)?

222


2. 解决思路编辑

1)第一种,先把数据数据排序,再利用 seq( ) 公式生成连续的序号。

2)第二种,先使用 SORT( ) 进行排名,再加上前面出现同样数据的次数。


3. 解决方法编辑

1)创建内置数据集如下:

222

2)报表设计如下,B2 单元格设置为列表,A2 单元格填写公式=seq( ),并设置左父格为 B2。

222

3)增加 C 列,填入公式SORT(B2) + COUNT(GREPARRAY(GREPARRAY(B2[!0;!0], index < A2), item = $B2))

222

4)保存预览,效果如下:

222

可以看到,seq( ) 和 SORT(B2) + COUNT(GREPARRAY(GREPARRAY(B2[!0;!0], index < A2), item = $B2))公式的排名结果是一样的。

实际项目中,需要排名的数据可能没有排序,或者有其他列已经排过序,影响了排名数据列的顺序。这时候seq( )就只是个普通的序号,失去了排名作用,而SORT(B2) + COUNT(GREPARRAY(GREPARRAY(B2[!0;!0], index < A2), item = $B2))则无论什么情况仍然正常排名


4. 移动端编辑

4.1 PC 端预览效果

保存模板,点击分页预览,实现效果如描述中所示。


4.2 移动端预览效果

1)App 效果

222

2)H5 效果

222


5. 已完成模板编辑

已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\function\使用公式进行不间断排名.cpt

点击下载模板