lyhzsys 发表于 2014-4-15 09:12:32

报表中关于求名次的几个问题

本帖最后由 通达林河水 于 2016-7-30 15:54 编辑 <br /><br />在报表中求名次,如A列是得分,B列是名次,在EXCEL中,一般用RANK(A2,A$2:A$500)来进行降序排序,但是在报表中却出现问题:
1、报表中支持取名次的函数RANK(),但是发现RANK()取得的名次是升序的,第三个参数无论用0还是1,都是升序,与EXCEL的不一样,是否可介绍下RANK()函数的用法。如果用RANK(A2,A$2:A2)生成50条记录,然后导出到EXCEL中研究,发现第一条记录的公式变为:RANK(A51,A$2:A51),第二条记录的公式则变成了:RANK(A3,A$2:A3),结果凌乱了。如果用RANK(A2,A$2:A$501)生成100条记录,因为总记录数是动态的,只有尽可能多地选择,这儿假设500条记录为最多,故设置为A$2:A$501,因为RANK()在OA报表中是升序排序,所以它从500条中减去为空的,然后再开始排序,名次也是乱的,不可使用。
2、报表支持COUNTIF()函数,因此用COUNTIF(A$2:A$500,">"&A2),能正常排序,但是由于每个记录要统计500个数据,报表运行速度很慢。希望能用取数公式,手动执行,但是表达式中不支持求名次,是不是有其他解决办法?

通达林河水 发表于 2014-4-15 10:35:39

本帖最后由 通达林河水 于 2016-7-30 15:54 编辑 <br /><br />rank(A51,A2:A51,0),第三个参数为0时降序排列,为1时升序排列,默认为升序排列。

lyhzsys 发表于 2014-4-15 16:56:41

本帖最后由 通达林河水 于 2016-7-30 15:54 编辑 <br /><br />请问第一条记录应该怎么填呢?还是要加$?

通达林河水 发表于 2014-4-15 17:31:35

本帖最后由 通达林河水 于 2016-7-30 15:54 编辑 <br /><br />$只是绝对定位,看需要吧。
页: [1]
查看完整版本: 报表中关于求名次的几个问题