找文章 / 找答案
永洪社区YVP
  • 发帖数144
  • 粉丝3

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

  • 解答问题超厉害

    经常帮助其他会员答疑
精选问答 更多内容

自由表格间计算排名是否有先后

芒果小矮人青铜一 显示全部楼层 发表于 2021-11-5 17:12:00 |阅读模式 打印 上一主题 下一主题
1
已解决

自由表格间计算排名是否有先后

4728 10
本帖最后由 芒果小矮人 于 2021-11-9 17:08 编辑

问题:格间计算是否存在计算方式不同的执行先后顺序;
现状:是这样,有a,b两个原有的计算列数据,①我现在对a,b数据分别进行打分,分别进行得分排名
②用格间计算求出综合得分=a得分+b得分
③再对综合得分进行排名

a得分排名、b得分排名、正确,综合得分排名错误,三者都用同样的格间计算
【这是我得分排名的书写:
var i
var j=1
for(i=1;i<rsize-1;i++)
{
    if(cell(i,8)>cell(ridx,8)){
    j++
}
}
j


1636104623(1).jpg

测试数据.zip

7.02 KB, 下载次数: 27

最佳答案

永洪社区YVP
美滋滋 白银二 关注Ta

2021-11-05 17:12:01

我这边复现了楼主的问题,并且解决了问题,应该是格间之间有依赖关系计算时,用相同的循环变量导致的问题。 附件是我的范例,供参考
查看完整内容
回复

使用道具 举报

精彩评论10

美滋滋白银二 显示全部楼层 发表于 2021-11-5 17:12:01
我这边复现了楼主的问题,并且解决了问题,应该是格间之间有依赖关系计算时,用相同的循环变量导致的问题。
附件是我的范例,供参考

排序范例.zip

13.47 KB, 下载次数: 51

回复

使用道具 举报

永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-11-5 17:24:46
正在使用的BI系统版本是?可以截下部分数据截图吗
回复

使用道具 举报

芒果小矮人青铜一 显示全部楼层 发表于 2021-11-5 17:31:47
永洪Tech-wj 发表于 2021-11-5 17:24
正在使用的BI系统版本是?可以截下部分数据截图吗

版本9.0,数据截图放在原文了
回复

使用道具 举报

永洪Tech-CIDX白银二 显示全部楼层 发表于 2021-11-5 18:02:14
芒果小矮人 发表于 2021-11-5 17:31
版本9.0,数据截图放在原文了

使用这个格间计算,计算排名:
if(ridx == 1){//数据行数为自由表的1行,表头为0行(行数从0开始数)
1
}else{
    if(cell(ridx - 1,cidx - 1)  == cell(ridx,cidx - 1)){
        cell(ridx-1,cidx)
    }else{
        Number(cell(ridx-1,cidx)) +1
    }
}
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2021-11-8 15:13:44
我觉得楼主写的格间计算脚本没什么问题啊。
从截图上来看,确实不对,能不能截图看一下具体的格间计算脚本内容?
回复

使用道具 举报

芒果小矮人青铜一 显示全部楼层 发表于 2021-11-9 10:08:50
歪打正着 发表于 2021-11-8 15:13
我觉得楼主写的格间计算脚本没什么问题啊。
从截图上来看,确实不对,能不能截图看一下具体的格间计算脚本 ...

这是排名的格间计算(列数是固定数字,a,b排名格间计算都一样)
var i
var j=1
for(i=1;i<rsize-1;i++)
{
    if(cell(i,3)>cell(ridx,3)){
    j++
}
}
j
这是分数的格间计算(列数是固定数字,a,b分数格间计算都一样)
var i;
var intMax = 0;
for (i=1; i< rsize ;i++) {
    if (i == 1) {
        intMax = cell(i,3)
    }else{
        if (cell(i,3) > intMax) {
            intMax = cell(i,3)
        }   
    }
}
cell(ridx,cidx-2)/intMax*100*0.3
这是总得分的格间计算
cell(ridx,cidx-1)+cell(ridx,cidx-6)+cell(ridx,cidx-9)
现在除了最后一列的排名(总得分的排名)错误外,其他所有数据计算结果都正确
回复

使用道具 举报

芒果小矮人青铜一 显示全部楼层 发表于 2021-11-9 10:09:54
永洪Tech-wj 发表于 2021-11-5 18:02
使用这个格间计算,计算排名:
if(ridx == 1){//数据行数为自由表的1行,表头为0行(行数从0开始数)
1

这个公式只是排序的吗,计算结果没有对扩展列数据从最大值开始标记呀
回复

使用道具 举报

环环白银三 显示全部楼层 发表于 2021-11-9 14:35:53
a+b不要用格间计算来做呢,建计算列相加,绑这个计算列来做
回复

使用道具 举报

芒果小矮人青铜一 显示全部楼层 发表于 2021-11-9 14:58:19
永洪Tech-chunyu 发表于 2021-11-9 14:35
a+b不要用格间计算来做呢,建计算列相加,绑这个计算列来做

a和b都是格间计算的结果值,怎么绑定计算列呢
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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