Power BI卡片视觉对象中获取出现次数最多ID的问题排查
Power BI 度量值修正:返回出现次数最多的Customer ID
你的度量值问题出在两个关键地方:
- 排序方向错误:RANKX用了
ASC升序,导致排名第一的是出现次数最少的ID,应该改成DESC降序 - 计数上下文不对:
COUNTX(Sales, Sales[Customer ID])没有正确限定当前Customer ID的上下文,计数逻辑不准确
修正后的度量值(简化版)
Most Frequent Customer ID = VAR CustomerCounts = ADDCOLUMNS( VALUES(Sales[Customer ID]), "@Count", CALCULATE(COUNT(Sales[Customer ID])) ) VAR TopCustomer = TOPN(1, CustomerCounts, [@Count], DESC) RETURN SELECTCOLUMNS(TopCustomer, "ID", Sales[Customer ID])
基于你原代码的修正版
test = FIRSTNONBLANK( TOPN( 1, VALUES(Sales[Customer ID]), RANKX( ALL(Sales[Customer ID]), CALCULATE(COUNT(Sales[Customer ID])),, DESC, DENSE ) ), Sales[Customer ID] )
关键修正说明
- 把RANKX的排序参数从
ASC改为DESC,确保排名第一的是出现次数最多的ID - 用
CALCULATE(COUNT(Sales[Customer ID]))替代原COUNTX写法,让计数在单个Customer ID的上下文里正确执行 - 可选添加
DENSE参数处理并列情况:如果有多个ID出现次数相同,DENSE会让它们获得相同排名,TOPN会返回所有并列的ID;如果只需要返回其中一个,去掉DENSE即可
如果有多个ID出现次数相同,上述度量值会返回Power BI默认排序下的第一个ID。
内容的提问来源于stack exchange,提问作者Vitor Freire
相关产品推荐
相关产品推荐

