[数据处理]
计算包含错误维度计算列和聚合计算列不能混合使用,请...
请问用if函数新建计算列提示“计算包含错误维度计算列和聚合计算列不能混合使用,请分开书写”
公式大概是这样写的
if(编号=="100042"and sum(数量)<=1000000) then 成本总额+1
else 成本总额 end
|
免责声明:本文不代表本站立场,且不构成任何建议,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。
|
|
|
|
yhdata_lyaa
显示全部楼层
发表于 2023-4-13 13:30:34
编号=="100042"and sum(数量)<=1000000)混用了呢
,维度计算列和聚合计算列不能混合使用 |
|
|
|
|
squall0828
显示全部楼层
发表于 2023-4-13 13:32:09
|
|
|
|
yhdata_lyaa
显示全部楼层
发表于 2023-4-13 13:39:35
|
|
|
|
squall0828
显示全部楼层
发表于 2023-4-13 13:42:57
大概是这样的,我有几列数据,分别是编码、数量、金额;当编码是100042及数量总和1000000内,那么金额在原来基础上加1,如果数量总和大于1000000,那么金额就等于他本身 |
|
|
|
|
Gnoc
显示全部楼层
发表于 2023-4-26 16:38:13
|
|
|
|
yhdata_lyaa
显示全部楼层
发表于 2023-4-26 16:55:11
总和1000000内?有3条数据 怎么确定在哪条数据上+1呀,这个不符合逻辑呢
|
|
|
|
|
DX188
显示全部楼层
发表于 2023-4-27 11:29:52
本帖最后由 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时不需要。
最终效果
|
|
|
|
|