【问题标题】:DAX Difficulty counting rows and assigning a rankDAX 计算行数和分配排名的难度
【发布时间】:2022-01-16 00:41:14
【问题描述】:

我正在尝试从表 Cases 中选择行,计算列表中每个 Broker 的行数,然后获取每个 Broker 的排名。我的代码工作到最后一步。我知道这是因为使用表 2 代码的度量给了我正确的结果。但是我在计算排名时做错了。你能告诉我问题是什么吗?我尝试使用 ALL(Table3),但这给了我一个语法错误(“所有需要一个表引用,而不是一个表表达式。”)

这让我发疯了。我浪费了数小时尝试变体、寻找示例、阅读文档,但这里有些东西我就是不明白。我终于让 FILTER、SELECTCOLUMNS、SUMMARIZE 和 ADDCOLUMNS 序列正常工作。 (虽然显然不推荐使用 SUMMARIZE 添加列——但在这里似乎可以正常工作。)

BrkPricedCtRank = 
VAR Table0 = 
FILTER ( 'Cases',
    not ISBLANK( [Date To Pricing] )
    && [Date Initiated] >= date(2021,1,1)
    && [Date Initiated] <= DATE(2021,12,31)  )

VAR Table1 =
SELECTCOLUMNS( 
    Table0,  
    "Broker", [Broker]
    )

VAR Table2 = 
SUMMARIZE(
    Table1,
    [Broker], 
    "PricedCt", COUNTROWS( Table1 )  )

--For measure BrkPricedCt. the code continues with these 2 lines.
--That measure gives me what I want.
--   RETURN
--      MINX( Table2, [PricedCt] )

VAR Table3 = 
     ADDCOLUMNS( 
         Table2,
         "Rank", RANKX( Table2, [PricedCt] )  )

return MINX( Table3, [Rank] )

这是我的输出:

【问题讨论】:

    标签: dax rank summarize


    【解决方案1】:

    在 Table2 上使用 RANKX 然后将其添加到视觉效果中时,您将向每一行添加一个过滤器,该过滤器将在所有行上评估为 1(所有行在自己的行 = 上下文中都排名第 1)。但是,如果您仍然希望排名为 1、2、 3 仅过滤某些经纪人时。

    【讨论】:

    • 是的,我想过这样的事情,但它不起作用。 RANKX( ALL(Table2), [PricedCt] ) 给了我一个语法错误,正如我在我的问题中提到的那样:ALL 函数需要参数“1”的表引用,但使用了表表达式。感谢您解释为什么它在每一行都给我排名 1。这很有帮助。添加或选择列的过程是我似乎永远无法开始工作的事情。 ```
    • 好的,抱歉没有帮助。一般来说,这应该像“RANKX(ALL('Dim Kunder'),[Utfall kkr])”一样工作,但我想还有别的东西。您是否尝试仅返回排名部分?您可以尝试将 Table2 分离为自己的表(创建表),然后在另一个度量中使用排名,以便您了解发生了什么?或者可能使用 DAX Studio 来更轻松地调试。你有任何样本数据吗?
    • 我一直在使用 DAX Studio,但这只是有点帮助。它告诉我我已经正确地构建了表格。我试过只返回排名部分。当我使用 RETURN RANKX(Table2, [PricedCt]) 时出现错误,“无法确定“PricedCt”的值。该列不存在,或者该列没有当前行。”有时间我会考虑让 Table2 成为自己的表。
    • 计算表工作,有点,但没有我需要的功能。问题是我不想像原始代码示例那样对日期进行硬编码。我想使用日历日期表中的收获度量,[MinDate] 和 [MaxDate]。 (我没有在表格和日历之间建立​​关系,因为我需要过滤 5 个不同的日期,而且我会为多个 UseRelationship 函数或多个日历表发疯。)因为计算表是静态的,您不能使用过滤器动态更改其内容。 (如果可以的话,请告诉我怎么做。)
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多