PowerBi Dax:仅对重复项中的第一行求和

问题描述 投票:0回答:1

我有下表

地点 域名 回答 领域得分
loc1 A 1 1 1
loc1 A 2 1 0.5
loc1 A 2 0 0.5
loc1 A 3 0 0
loc1 A 4 0 0
loc2 A 1 1 1
loc2 A 2 1 1
loc2 A 2 1 1
loc2 A 3 0 0
loc2 A 4 0 0

现在我想对每个位置和域的域分数求和,但对于重复阶段,我只想对第一行求和。因此,对于第二阶段,我只想添加一个域分数。这会导致:

地点 域名 回答 领域得分 最终得分
loc1 A 1 1 1 1.5
loc1 A 2 1 0.5 1.5
loc1 A 2 0 0.5 1.5
loc1 A 3 0 0 1.5
loc1 A 4 0 0 1.5
loc2 A 1 1 1 2
loc2 A 2 1 1 2
loc2 A 2 1 1 2
loc2 A 3 0 0 2
loc2 A 4 0 0 2

这在 DAX 中可能吗?我已经尝试通过() 构造生成一种行号分区,但我无法让它工作......

powerbi dax
1个回答
1
投票

我将使用“Data”作为您的表的名称。创建度量(不是计算列):

End Score =
CALCULATE (
    SUMX (
        SUMMARIZE (
            Data,
            Data[Location],
            Data[Domain],
            Data[Phase],
            Data[Domain score]
        ),
        Data[Domain score]
    ),
    ALLEXCEPT ( Data, Data[Domain], Data[Location] )
)

结果:

工作原理:

  • SUMMARIZE 函数获取除“Answer”之外的所有列,并创建一个虚拟表,其中每一行都是唯一的,从而抑制重复项;
  • SUMX 迭代这个新表,并对域分数求和;
  • ALLEXCEPT 然后确保结果不会被除位置和域之外的任何字段过滤。

但请注意,解决此问题的更好方法是首先回答为什么您的数据具有这些重复项,以及是否可以将它们从数据模型中删除。使用花哨的 DAX 来解决数据问题并不是一个好的做法。

© www.soinside.com 2019 - 2024. All rights reserved.