使用公式进行不间断排名

  • 文档创建者:axing
  • 编辑次数:3次
  • 最近更新:Kevin-s 于 2019-06-18
  • 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

    点击下载模板


    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!