PowerBI DAX 计算按ID分组每年最高FTE总和报错问题求助
DAX计算TotalFTE报错解决方案
错误原因
你编写的DAX代码不符合FILTER函数的语法要求:FILTER的第二个参数必须返回布尔值(True/False),而你传入的DISTINCT(Table[ID])返回的是去重后的ID值列表,数据类型不匹配,因此触发计算错误。
正确实现代码
你需要的逻辑是「忽略空ID、按ID+年度分组取每组最大FTE求和」,可以用SUMX迭代分组的方式实现:
TotalFTE = SUMX ( // 按ID、年度分组,过滤ID为空的分组 FILTER ( SUMMARIZE ( 'Table', 'Table'[ID], 'Table'[年度] ), NOT ISBLANK ( 'Table'[ID] ) ), // 迭代每个分组计算最大FTE后求和 CALCULATE ( MAX ( 'Table'[FTE] ) ) )
简化版本(适配年度切片器上下文)
如果你的报告中已经通过切片器、行标签等方式指定了年度筛选范围,不需要在度量值内硬编码年度分组,可以简化为:
TotalFTE = SUMX ( FILTER ( DISTINCT ( 'Table'[ID] ), NOT ISBLANK ( 'Table'[ID] ) ), CALCULATE ( MAX ( 'Table'[FTE] ) ) )
参考截图
- 表样例、中间结果、度量值结果示意图:

- 原代码报错信息截图:

内容的提问来源于stack exchange,提问作者Younes
相关产品推荐
相关产品推荐

