找文章 / 找答案
  • 发帖数4
  • 粉丝2

此人很懒,什么也没有留下

精选问答 更多内容

自由式报表 格间计算结果列 排名计算

洪七公青铜一 显示全部楼层 发表于 2020-7-30 16:43:29 |阅读模式 打印 上一主题 下一主题
永洪BI版本8.5.0.1

自由式报表制作界面

自由式报表制作界面


数据详情界面

数据详情界面

如图所示,根据账户净增数 进行排名,账户净增数 为格间计算得到的结果列,如何做??
另在自由式报表中选中 度量 ,在右侧 计算 里面怎么也找不到动态计算,请问这个动态计算在哪??
回复

使用道具 举报

精彩评论3

mu婉清青铜二 显示全部楼层 发表于 2020-7-30 19:45:44
格间计算得到的列不能使用动态计算哈,这个建议将“账户净增数”用表达式来做,绑定表达式到自由表,再对其使用动态计算做排名计算
回复 支持 反对

使用道具 举报

洪七公青铜一 显示全部楼层 发表于 2020-7-31 14:34:56
先说自由式表格里面的动态计算,要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

回复 支持 反对

使用道具 举报

翻滚吧巨人铂金四 显示全部楼层 发表于 2020-7-31 19:14:56
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部