您使用的是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 |
+----------+----------------+