[ABI 5.1] 多层级排名如何实现?

11585
3

小灰灰1 数据达人Lv4

发表于2020-8-13 13:18

悬赏1

已解决

楼主

比如在现在这个报表的基础上,如何实现全校排名?
年级排名可以通过F3$$引用到班级层级,也就是它的上一层级数据,
那么如果再往上两层甚至三层呢?应该如何实现排名计算?


比如我在最前面加了一列学校名称,那么我后面计算学校内成绩排名的时候,可以用B3$.find(self.leftcell.value)+1.rank(F3)来实现,是这个意思么?
其中,B3是班级对应的单元格?

最近看过此主题的会员

Ly_LJY

esen_4Y5MQ1CAA5

esen_4XL2IVJCG8

单行道

MYoung

chestnut

最佳答案

xxxl

发表于2020-8-13 13:18

只看该作者

取消 关注该作者的回复

您看一下这个设置

每个浮动列的浮动范围

下面的辅助行=GRID1.D2$.join(",")的作用是取到小类数值,
然后在中类排名中取辅助行的数据用=asstr(GRID1.D3).split(",").rank(D2) 去掉逗号然后再排名,
最后大类的排名则是=GRID1.D2$$.rank(D2)就是最外层的排名了。最后的效果



3个回答

只看楼主

xxxl 数据领袖Lv6

发表于2020-8-13 13:31

只看该作者

取消 关注该作者的回复

沙发

B3$.find(self.leftcell.value)+1就行了 find是返回数组字符所在数组的序号,因为从0开始所有+1   
放在浮动区域

小灰灰1 数据达人Lv4

发表于2020-8-13 14:01

只看该作者

取消 关注该作者的回复

板凳

xxxl 发表于 2020-8-13 13:31
B3$.find(self.leftcell.value)+1就行了 find是返回数组字符所在数组的序号,因为从0开始所有+1   
放在浮 ...

假设A3是学校名称,B3是年级,C3是班级,F3是总成绩,
那么这里如果是直接F3$.find(self.leftcell.value)+1的话,结果应该是不对的,他是找的还是年级的排名吧?
F3$对应是班级吧?他左边应该是年级,我理解的是否有问题?

xxxl 数据领袖Lv6

发表于2020-8-13 13:18

只看该作者

取消 关注该作者的回复

地板

您看一下这个设置



每个浮动列的浮动范围

下面的辅助行=GRID1.D2$.join(",")的作用是取到小类数值,
然后在中类排名中取辅助行的数据用=asstr(GRID1.D3).split(",").rank(D2) 去掉逗号然后再排名,
最后大类的排名则是=GRID1.D2$$.rank(D2)就是最外层的排名了。最后的效果



登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号