Power Pivot中COUNTIFS与SUMIFS函数的实现方法咨询
在Power Pivot中实现Excel COUNTIFS与SUMIF的DAX写法
一、替代COUNTIFS的DAX计算列
对应Excel公式:=COUNTIFS('KPI.03 Feeder'!H:H,1,'KPI.03 Feeder'!P:P,'KPI-03'!A3,'KPI.03 Feeder'!K:K,"")
在KPI-03表的Power Pivot编辑器里新增计算列,用下面的DAX代码:
COUNTIFS_Result = CALCULATE( COUNTROWS('KPI.03 Feeder'), 'KPI.03 Feeder'[H] = 1, 'KPI.03 Feeder'[P] = 'KPI-03'[A], 'KPI.03 Feeder'[K] = BLANK() )
关键逻辑说明:
- 用
COUNTROWS统计符合条件的行数,等价于COUNTIFS的计数效果 - CALCULATE的第二个及以后参数直接列所有筛选条件:
- 数值条件
'KPI.03 Feeder'[H] = 1直接写即可,无需额外处理 'KPI.03 Feeder'[P] = 'KPI-03'[A]自动匹配当前行的A列值,对应Excel里的相对引用A3- 空值条件用
BLANK()对应Excel中的""
- 数值条件
二、替代SUMIF的DAX方案
对应Excel公式:=SUMIF('KPI.03 Feeder'!$H:$H,1,'KPI.03 Feeder'!R:R)
场景1:行级计算列(固定每行结果)
SUMIF_Column = CALCULATE( SUM('KPI.03 Feeder'[R]), 'KPI.03 Feeder'[H] = 1 )
场景2:全局度量值(支持报表交互)
如果需要全局统计或配合切片器动态更新,更适合做度量值:
SUMIF_Measure = CALCULATE( SUM('KPI.03 Feeder'[R]), 'KPI.03 Feeder'[H] = 1 )
逻辑说明:
- 核心就是用
SUM聚合R列数值,再通过CALCULATE添加H列等于1的筛选条件,完全对应SUMIF的逻辑 - 度量值会随报表上下文(比如切片器、筛选器)自动更新,计算列则是静态的行级数值
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

