Powerbi RANKX没有给出正确的结果
我需要创建一个measurenot列,根据值对用户进行排名 这里我尝试使用RANKX函数:Powerbi RANKX没有给出正确的结果,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我需要创建一个measurenot列,根据值对用户进行排名 这里我尝试使用RANKX函数: ranking = RANKX( ADDCOLUMNS( SUMMARIZE(dim_User, dim_User[UserID], dim_User[FirstName] ), "Ttl Trans", [Ttl Transactions] ) , [Ttl Transactions] ) 同样
ranking =
RANKX(
ADDCOLUMNS(
SUMMARIZE(dim_User,
dim_User[UserID],
dim_User[FirstName]
),
"Ttl Trans", [Ttl Transactions]
)
, [Ttl Transactions]
)
同样的结果使用:
rating2 =
RANKX(
SUMMARIZE(dim_User,
dim_User[FirstName]
), [Ttl Transactions]
)
试着这样做:
rating1 =
RANKX(
SUMMARIZE(dim_User,
dim_User[FirstName],
"Trans",[Ttl Transactions]
), [Trans]
)
但给了我一个错误:
无法确定“Trans”的值。该列不存在,或者该列没有当前行
我也尝试过使用COUNTROWS函数,但也没有成功
如果我使用一个表,而不是一个表表达式,它似乎是有效的。
我错过了什么
更新:
添加ALLdim_用户仍给我1
ranking =
RANKX(
ADDCOLUMNS(
SUMMARIZE(ALL(dim_User),
dim_User[UserID],
dim_User[FirstName]
),
"Ttl Trans", [Ttl Transactions]
)
, [Ttl Transactions]
)
更新
无论我选择哪个用户,信用卡中的信用等级始终为1
编写度量值时,将在其本地筛选器上下文中对其进行计算。特别是,dim_用户在您的度量中是按名字过滤的,因此,Ttl Trans的排名仅与具有相同名字的其他用户进行比较 由于您是基于用户进行排名的,因此您希望删除visual Studio引入的过滤器上下文,以便获得您期望的排名。我建议将表参数dim\u User替换为ALLdim\u User,以删除该表上的所有筛选,或者(更可能是您想要的选项)替换为ALLSELECTEDdim\u User,以删除视觉引入的本地筛选上下文,同时维护切片器或页面级筛选的任何筛选上下文 对于您的卡,您需要模拟表中存在的筛选器上下文:
UserRanking =
VAR SelectedUser = SELECTEDVALUE ( dim_User[Name_FirstLast] )
RETURN
CALCULATE (
RANKX ( ALL ( dim_User ), [Ttl Transactions] ),
dim_User[Name_FirstLast] = SelectedUser
)
非常感谢。是的,我也试过了。对不起,我也应该提一下。但它仍然给了我1Even for RANKXALLSELECTEDdim_用户,[Ttl事务]?哦,我重新创建了一个表,它工作了。那么,有什么方法可以在一张卡片上记录排名呢?选择用户时是否将其作为数字?谢谢如果你只选择了一个用户,我看不出为什么卡片和表格会有什么不同,尽管在这种情况下你可能不希望所有用户都被选中。无论我选择了哪个用户,如果我使用卡片视觉,排名都是1。