Power Bi中的总数/总和工作不正确

时间:2017-08-08 06:56:18

标签: powerbi dax

我创建了一个报告,其中我创建了一些措施,如 -

X = 
CALCULATE (
    DISTINCTCOUNT ( ActivityNew[Name] ),
    FILTER (
        ActivityNew,
        ActivityNew[Resource Owner Name] = MAX ( 'Resource Owners'[Manager Name] )
            && ActivityNew[LocationId] = 2
    )
)

当我在表中使用此度量时,列值不会加起来。例如。如果此度量的值为2,2,2,2,2则表中的总数应为10.但它显示为2.

我注意到无论我在哪里使用这个MAX(),测量值都没有加起来。

为什么会发生这种情况,他们的解决方案是什么?

1 个答案:

答案 0 :(得分:3)

您使用的DISTINCTCOUNT通常不可聚合。

假设您有以下表格Sales

+----------+------+-------+
| Customer | Item | Count |
+----------+------+-------+
| Albert   | Coke | 3     |
| Bertram  | Beer | 5     |
| Bertram  | Coke | 2     |
| Charlie  | Beer | 1     |
+----------+------+-------+

如果您想计算每个客户购买的不同商品的数量,您可以使用以下公式创建新的度量:

[Distinct Items] := DISTINCTCOUNT(Sales[Item])

如果您在报告中包含[Customer]列和[Distinct Items]指标,则会输出以下内容:

+----------+----------------+
| Customer | Distinct Items |
+----------+----------------+
| Albert   | 1              |
| Bertram  | 2              |
| Charlie  | 1              |
+----------+----------------+
| Total    | 2              |
+----------+----------------+

正如您所看到的,这并不总结,因为总行的上下文是整个表,未被任何特定客户过滤。要更改此行为,您必须明确告知您的度量它应该对客户级别派生的值求和。为此,use the SUMX function。在我的例子中,度量公式应该像这样改变:

[Distinct Items] := SUMX(VALUES(Sales[Customer]), DISTINCTCOUNT(Sales[Item]))

由于我只想总结独特的客户,我使用VALUES(Sales[Customer])。如果您想对表中的每一行求和,只需执行:SUMX(<table name>, <expression>)

通过此更改,上例中的输出将为:

+----------+----------------+
| Customer | Distinct Items |
+----------+----------------+
| Albert   | 1              |
| Bertram  | 2              |
| Charlie  | 1              |
+----------+----------------+
| Total    | 4              |
+----------+----------------+