如何在DAX中基于Error type对Volume列求和?能否用IF语句实现?
DAX度量值实现特定错误类型的Volume求和
可以通过IF语句实现该需求,以下是具体的DAX写法及说明:
单上下文判断场景(如表格行级计算)
如果需要在单个Error type的上下文下判断并求和,使用SELECTEDVALUE获取当前值进行判断:
Sum_Volume_Range = IF( SELECTEDVALUE('你的表名'[Error type]) >= 200 && SELECTEDVALUE('你的表名'[Error type]) < 500, SUM('你的表名'[Volume]), BLANK() )
逻辑说明:当当前上下文的Error type落在[200, 500)区间时,返回该范围内的Volume总和;否则返回空值。
全局筛选求和场景
如果需要直接对整个数据集中符合条件的记录求和,也可以用IF结合CALCULATE实现:
Sum_Volume_Range = IF( TRUE(), CALCULATE( SUM('你的表名'[Volume]), '你的表名'[Error type] >= 200 && '你的表名'[Error type] < 500 ), BLANK() )
注:这种场景下其实可以省略IF直接用CALCULATE+筛选条件,但IF语句确实能满足你的需求逻辑。
另外,也可以用SUMX+FILTER的组合实现相同效果,写法更直观:
Sum_Volume_Range = SUMX( FILTER('你的表名', '你的表名'[Error type] >= 200 && '你的表名'[Error type] < 500), '你的表名'[Volume] )
内容的提问来源于stack exchange,提问作者Zuzia
相关产品推荐
相关产品推荐

