计算列中非重复值的数目。
语法
DISTINCTCOUNT(<column>)
参数
| 术语 | 描述 |
|---|---|
column |
包含要计数的值的列 |
返回值
column中的非重复值数。
言论
此函数允许的唯一参数是列。 可以使用包含任何类型的数据的列。 当函数找不到要计数的行时,它将返回 BLANK,否则返回非重复值的计数。
DISTINCTCOUNT 函数计算 BLANK 值。 若要跳过 BLANK 值,请使用 DISTINCTCOUNTNOBLANK 函数。
-
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
例
以下示例演示如何计算列 ResellerSales_USD[SalesOrderNumber] 中不同销售订单的数量。
= DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber])
将上述度量值用于表的侧边和产品类别中的日历年份,返回以下结果:
| 行标签 | 辅料 | 自行车 | 服装 | 组件 | - | 总计 |
|---|---|---|---|---|---|---|
| 2005 | 135 | 345 | 242 | 205 | 366 | |
| 2006 | 356 | 850 | 644 | 702 | 1015 | |
| 2007 | 531 | 1234 | 963 | 1138 | 1521 | |
| 2008 | 293 | 724 | 561 | 601 | 894 | |
| 1 | 1 | |||||
| 总计 | 1315 | 3153 | 2410 | 2646 | 1 | 3797 |
了解非重复计数总计
非重复计数总计不累加。 总计不是每个类别中的值的总和。
在上表中,你可能预计2005年(366)的总计等于附件(135)+ 自行车(345)+ 服装(242)+ 组件(205)= 927。 然而,实际总计为366,这要低得多。
发生这种情况是因为同一顺序可以出现在多个类别中。 例如,如果 order #1001 同时包含自行车和配件,则订单在“自行车”列中和“附件”列中计数一次。 但是,计算行的总计时,订单 #1001 只计算一次,因为它仍然只有一个不同的顺序。
这是非重复计数的正确和预期行为:
- 类别值:仅计算该特定类别中的非重复订单。
- 行总计:计算该年份所有类别中的非重复订单数 - 每个订单仅计数一次,而不管它出现在多少个类别中。
- 总计:计算整个数据集中的非重复订单。
如果需要总计,请考虑使用或COUNT改用COUNTROWS。 但是,请注意,这些函数对行进行计数,而不是非重复值,并且会给出不同的结果。