永洪社区

标题: 计算包含错误维度计算列和聚合计算列不能混合使用,请... [打印本页]

作者: squall0828    时间: 2023-4-13 13:25
标题: 计算包含错误维度计算列和聚合计算列不能混合使用,请...
请问用if函数新建计算列提示“计算包含错误维度计算列和聚合计算列不能混合使用,请分开书写”
公式大概是这样写的
if(编号=="100042"and sum(数量)<=1000000) then 成本总额+1
else 成本总额 end



作者: yhdata_lyaa    时间: 2023-4-13 13:30
编号=="100042"and sum(数量)<=1000000)混用了呢
,维度计算列和聚合计算列不能混合使用
作者: squall0828    时间: 2023-4-13 13:32
公式要怎么写
作者: yhdata_lyaa    时间: 2023-4-13 13:39
想实现什么,数据是什么样的,截图看看
作者: squall0828    时间: 2023-4-13 13:42
大概是这样的,我有几列数据,分别是编码、数量、金额;当编码是100042及数量总和1000000内,那么金额在原来基础上加1,如果数量总和大于1000000,那么金额就等于他本身
作者: Gnoc    时间: 2023-4-26 16:38
squall0828 发表于 2023-4-13 13:42
大概是这样的,我有几列数据,分别是编码、数量、金额;当编码是100042及数量总和1000000内,那么金额在原 ...

请问解决了吗?
作者: yhdata_lyaa    时间: 2023-4-26 16:55
squall0828 发表于 2023-4-13 13:42
大概是这样的,我有几列数据,分别是编码、数量、金额;当编码是100042及数量总和1000000内,那么金额在原 ...

总和1000000内?有3条数据 怎么确定在哪条数据上+1呀,这个不符合逻辑呢

作者: DX188    时间: 2023-4-27 11:29
本帖最后由 DX188 于 2023-4-27 11:32 编辑

用咖啡数据模拟了下你的需求,算是符合你的结果。不过需要添加一张辅助表,脚本请参考:
var data=getViewData("填报参数1",DATA)
var data1=getData("自由表填报2",DATA)


for(var i=0;i<data.size();i++){

    for(var j=0;j<data1.size();j++){

    if(data.get(i+1,0)==data1.get(j,0)&&data1.get(j,1)<500){

            data.set(i,3,data.get(i+1,2)+1)
        }
    }
}
用了张自由表作为辅助表,自由表是汇总数据,因原数据比较多,所以预先做了过滤,只展示一个月的数据做模拟。模拟中以每个省的利润<500为标准。辅助表可以设隐藏
在这里我发现了个问题,用data.get()取填报参数表行数时是从表头开始取的,但用set时却并不会算表头。也就是说set时从数据行的第一行开始从0计数,而get时从表头开始从0计数。
所以我的循环里get需要i+1,而set时不需要。
最终效果
(, 下载次数: 98)