TopN,分组,在底部显示其他人POWERBI-DAX

时间:2019-07-17 17:56:01

标签: powerbi dax

我具有以下公式,该公式可在下面左侧屏幕快照中创建表格(实际表格的名称不同-还将两个单独的表格合并为一个)-

enter image description here

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]
        )
      )
    )
  )

现在,我在如何将“其他”下的“空”和“其他”组合在一起并在底部放置“其他”方面感到困惑。我可以在每个表级别将“空”和“其他”组合在一起只是不确定如何。

1 个答案:

答案 0 :(得分:0)

DAX解决方案:

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

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

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

转到:编辑查询: enter image description here

选择表格和产品列,然后在栏中按“替换值”

enter image description here

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

最后一步

表中各行的顺序无关紧要,因为您可以在视觉自我中对其进行控制。

以下示例: enter image description here

如您所见,我将其他过滤掉了,当您想将它们计入前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)

结果:

enter image description here