Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi RANKX没有给出正确的结果_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 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] ) 同样

我需要创建一个measurenot列,根据值对用户进行排名

这里我尝试使用RANKX函数:

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。