【问题标题】:DAX RANKX: Why does it return 1?DAX RANKX:为什么返回 1?
【发布时间】:2019-03-01 06:00:23
【问题描述】:

我正在使用 AdventureWorks DB,我想按经销商的总销售额对经销商进行排名。所以基本上表格是这样的:

我使用以下衡量标准对其进行排名:

Rank Reseller = RANKX(ALL(ResellerSales), MAX(ResellerSales[SalesAmount]),,1)

但它只返回 1 作为排名。

我关注了这两个视频:

https://www.youtube.com/watch?v=z2qzJVeYhTY

https://www.youtube.com/watch?v=SsZseKOgrWQ&t=603s

但我不明白出了什么问题!

【问题讨论】:

    标签: powerbi dax rank


    【解决方案1】:

    要按 [SalesAmount] 对 [ReSellerkey] 进行排名,您需要执行以下操作:

    Rank Sales Amount := 
        RANKX(
            'Table',
            'Table'[SalesAmount],
            ,
            ASC,
            Dense
            )
    

    【讨论】:

    • @ Steliok 这不可能是正确的,因为:“无法确定表 'Table' 中列 'SalesAmount' 的单个值。当度量公式引用包含多个值而不指定聚合(例如 min、max、count 或 sum)以获得单个结果。"
    • @Elahe.Meydani 是销售额还是列?
    【解决方案2】:

    这与 Rankx 评估 de Aggregation 的当前范围有关。

    尝试使用 CALCULATE 包装您的聚合,您可能想要 SUM 而不是 MAX:

    Rank Reseller = RANKX(ALL(ResellerSales), CALCULATE(SUM(ResellerSales[SalesAmount])))
    

    您可以像这样创建一个 Measure,并在 RANKX 上使用它,因为它是一个无需显式添加 CALCULATE 即可工作的度量:

    Sales Amount = SUM(ResellerSales[SalesAmount])
    
    Rank Reseller = RANKX(ALL(ResellerSales), [Sales Amount])
    

    编辑:

    Rank Reseller = RANKX(ALL('ResellerSales'[Resellerkey]), [Sales Amount])
    

    这样试试吧。

    【讨论】:

    • @mixix 好吧,看来你的指导有点帮助。现在,我们的排名毫无意义 :)) 例如,我们有很多 3 和 14 的排名,但没有 2 或 6...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2012-01-25
    • 2012-03-05
    • 2017-06-04
    • 2015-01-25
    • 2023-03-27
    相关资源
    最近更新 更多