Power BI使用DAX的RANKX函数添加表格行号报错如何解决
报错原因
你是把RANKX表达式创建成了度量值,度量值本身没有默认行上下文,直接引用table_1[customerSK]列时,系统无法识别你要取列中哪一行的值,因此触发聚合要求的报错。
解决方法
方法1:创建计算列实现固定行号
如果你需要的是不随筛选器变化的固定行号,直接在table_1中新建计算列,而非度量值,原DAX表达式可直接运行:行号 = RANKX(table_1,table_1[customerSK],,ASC,DENSE)计算列自带逐行计算的行上下文,不会触发单值报错。
方法2:创建度量值实现动态行号
如果你需要行号随切片器、筛选器的选择动态调整,修改度量值表达式如下:动态行号 = RANKX( ALLSELECTED(table_1[customerSK]), CALCULATE(MAX(table_1[customerSK])), ,ASC,DENSE )这里用
CALCULATE(MAX(table_1[customerSK]))强制聚合获取当前筛选上下文下的CustomerSK值,ALLSELECTED限定排序范围为当前筛选后的所有可见行,筛选后行号会自动从1开始重排。方法3:无DAX方案(性能最优)
如果不需要响应筛选动态调整行号,直接进入Power Query编辑器,为table_1添加从1开始的索引列,加载到模型后直接放到表格可视化即可,无需编写任何DAX,运行效率最高。
内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles
相关产品推荐
相关产品推荐

