如何修改DAX的SUMX迭代函数以排除负值时长?
修改DAX度量剔除负时长行
你可以通过在SUMX的迭代逻辑里加入判断,只累加正的时长值,具体修改后的公式如下:
Job_length = SUMX ( jobs , VAR JobDuration = DATEDIFF(jobs[actualstart], jobs[actualend], MINUTE) RETURN IF(JobDuration > 0, JobDuration, 0) )
逻辑说明
- 用
VAR定义变量JobDuration,存储当前行的计算时长 - 通过
IF判断:如果时长为正,就保留该值参与求和;如果是负数或0,就返回0(0不会影响最终求和结果,相当于剔除了负时长的行)
你也可以用MAX函数简化判断逻辑,效果完全一致:
Job_length = SUMX ( jobs , MAX(DATEDIFF(jobs[actualstart], jobs[actualend], MINUTE), 0) )
内容的提问来源于stack exchange,提问作者TFPA
相关产品推荐
相关产品推荐

