PowerPivot计算失败率度量值报错的解决方案咨询
解决PowerPivot度量值计算失败率的公式错误问题
问题场景
需用PowerPivot制作演示文件,通过度量值计算基于服务数量的失败率,但编写的公式均报错。
错误公式示例:
= CALCULATE(DIVIDE(SUM( Table1[Quality]);Table1[Quality]="FAILED");COUNT(Table1[Serv])
数据表格:
| Quality | Column B |
|---|---|
| PASSED | FINAL |
| PASSED | FINAL |
| PENDING | FINAL |
| FAILED | INL |
| PASSED | INL |
| PENDING | FINAL |
预期结果:16.7%*
尝试过的其他错误公式:
=DIVIDE(Table1[Quality] = "FAILED";Table1[Quality]) or =CALCULATE(Table1[Quality] = "FAILED"/ Table1[Quality]) or = DIVIDE(COUNT(Table1[Quality] = "FAILED" ; COUNT(Table1[Quality])
错误提示:
Calculation error in measure 'Table1'[measure 1]: A single value for column 'Quality' in table 'Table1' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result.
错误原因
所有错误公式都直接引用Table1[Quality]列值但未做聚合处理。度量值是对数据集做聚合计算的表达式,必须通过聚合函数(如COUNT、SUM)将列的多值转换为单一值后才能运算。
正确解决方案
使用以下DAX公式创建度量值,可正确计算失败率:
失败率 = DIVIDE( CALCULATE(COUNT(Table1[Quality]), Table1[Quality] = "FAILED"), COUNT(Table1[Quality]), 0 )
或用COUNTROWS实现等价效果:
失败率 = DIVIDE( CALCULATE(COUNTROWS(Table1), Table1[Quality] = "FAILED"), COUNTROWS(Table1), 0 )
公式说明
CALCULATE(COUNT(Table1[Quality]), Table1[Quality] = "FAILED"):筛选出Quality为FAILED的行,统计这类行的数量(即失败服务数)COUNT(Table1[Quality]):统计所有服务记录的总数DIVIDE函数处理除法运算,第三个参数0是除数为0时的默认返回值,避免出现除零错误
结果验证
你的数据共6条记录,其中1条为FAILED,1/6≈16.7%,与预期结果一致。
内容的提问来源于stack exchange,提问作者Alberto AGSARAY
相关产品推荐
相关产品推荐

