先说自由式表格里面的动态计算,要8.6以上版本 才有。。。
就算有了,也实现不了格间计算后的列排名。
最终还是自我探索,经过代码测试后,终究还是搞定了这个问题
排序代码
实现效果
如图所示:
var arr=[];
for(i=2;i<rsize-1;i++){
if (cell(i,0)!='片区小计'){
arr.push(cell(i,cidx-1))}}
rank(cell(ridx,cidx-1),arr,0)
代码解释:
var arr=[]; 创建1个空列表,用来存放前1列的内容
for 循环 用来 取前1列每个单元格内容,放入arr列表中
rsize表示 总行数 ,最后1行为 全部的合计, 因此 从i=2行开始取值,到rsize-1行结束
if (cell(i,0)!='片区小计') 当遇到 小计行的内容,不放入arr 列表中
for 循环执行完成后,得到需要排名内容的列表。
最后 用rank函数排名。
rank(参数1,参数2,参数3):参数3=0时为降序排名, 参数3=1时为升序排名
最后验证结果,与预期结果一致。
perfect
|