Power BI中SAT指标聚合计算异常问题修复请求
修正Power BI中SAT满意度指标的DAX公式(支持维度聚合)
你的问题根源在于原DAX公式里的ALLSELECTED(SAT_SHEET)——这个函数会清除当前行上下文的筛选器(比如你按月份、地点、代码分组时的维度筛选),导致不管哪个分组,计算时都用了全局选中数据集的总记录数、推荐者数、贬损者数,而非每个分组自身的对应数值。手动筛选单个分组时,全局和分组的范围一致,所以结果正确;但多分组聚合时就会出错。
直接用下面的修正公式替换原度量值:
SAT = VAR CurrentContextRows = COUNTROWS(SAT_SHEET) VAR PromoterRows = CALCULATE( COUNTROWS(SAT_SHEET), SAT_SHEET[GRADE] IN {9, 10} ) VAR DetractorRows = CALCULATE( COUNTROWS(SAT_SHEET), SAT_SHEET[GRADE] >= 0 && SAT_SHEET[GRADE] <= 6 ) RETURN IF(CurrentContextRows = 0, BLANK(), 100 * (PromoterRows - DetractorRows) / CurrentContextRows)
关键修改说明:
CurrentContextRows:获取当前行上下文(比如某月份、某地点)下的总记录数,替代原公式中全局范围的TotalRows- 移除了
CALCULATE里的ALLSELECTED(SAT_SHEET)参数,让CALCULATE自动继承当前维度的筛选器,只计算该分组内的推荐者/贬损者数量 - 新增
IF(CurrentContextRows = 0, BLANK())判断,避免出现除以0的错误,无数据时返回空白值
把这个新度量值放到表格、矩阵或折线图中,按LOCATION、CODE或月份(基于DATE列分组)展示,就能得到每个维度分组下的正确SAT值。
内容的提问来源于stack exchange,提问作者R_Student
相关产品推荐
相关产品推荐

