【问题标题】:TopN, Grouping, Show Others at the bottom POWERBI-DAXTopN,分组,底部显示其他 POWERBI-DAX
【发布时间】:2019-07-18 17:13:19
【问题描述】:

我有以下公式,它在左侧下面的屏幕截图中创建表格(实际表格的名称不同 - 它也将 2 个单独的表格合二为一) -

Top 11 Jun =
IF (
   [Type Rank Jun] <= 11,
   [Total Jun],
IF (
    HASONEVALUE ( Partners[partner_group] ),
    IF (
        VALUES ( Partners[partner_group] ) = "Others",
        SUMX (
            FILTER ( ALL ( Partners[partner_group] ), [Type Rank Jun] > 11 ),
            [Total Jun]
        )
      )
    )
  )

现在我被困在如何在“Others”下组合“Null”和“Others”并将“Others”放在底部。我可以在每个表级别组合“Null”和“Others”,我'我只是不确定如何。

【问题讨论】:

  • 如果我不能将 Null 和 Others 值结合起来(因为 null 位于前 11 名以下),我怎样才能将“Others”放在表格的底部?谢谢

标签: powerbi dax


【解决方案1】:

DAX 解决方案:

要将 Other 和空白(至少我是这样读取您的 null)放在一起,您可以在表上创建一个新列(最简单)。

newProducts = IF(fruits[product] = BLANK(); "Other";fruits[product])

更好的解决方案是替换查询语言中的空格(或 NULL):

转到:编辑查询:

选择您的表格和产品列,然后按栏上的“替换值”

执行替换并保存并关闭编辑器。

最后一步

表格中行的顺序无关紧要,因为您可以在视觉自我中控制这一点。

下面的例子:

如您所见,我过滤掉了其他,当您想将它们计入前 N 时,不需要这样做。

如果要显示全部四个,我们需要新建一个表格:

Tabel = 
var Top3 = TOPN(3;FILTER(fruits;fruits[product] <> "Other") ;fruits[July Avail])
var prioTop3 = ADDCOLUMNS(Top3;"Order"; CALCULATE(COUNTROWS(fruits);FILTER(Top3; fruits[July Avail] <= EARLIER(fruits[July Avail]))))
var Other = ADDCOLUMNS(GROUPBY(FILTER(fruits;fruits[product] = "Other");fruits[product];"June Avail"; SUMX(CURRENTGROUP();fruits[June Avail]); "July Avail"; SUMX(CURRENTGROUP();fruits[July Avail]));"Order";0)
return UNION(prioTop3; Other)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 2021-10-29
    • 1970-01-01
    相关资源
    最近更新 更多