返回一个包含指定列的非重复值的一列表。 换句话说,将删除重复值,只返回唯一值。
注意
此函数不能用于将值返回到工作表上的单元格或列中;相反,在公式中嵌套 DISTINCT 函数,以获取可传递给另一个函数并随后对其他操作进行计数、求和或用于其他操作的非重复值的列表。
语法
DISTINCT(<column>)
参数
术语 | 定义 |
---|---|
column |
要从中返回唯一值的列。 或者,返回列的表达式。 |
返回值
唯一值的列。
言论
DISTINCT 的结果受当前筛选器上下文的影响。 例如,如果使用以下示例中的公式创建度量值,则每当筛选表以仅显示特定区域或时间段时,结果都会更改。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
相关函数
另一个版本的 DISTINCT 函数 DISTINCT (table),它通过从另一个表或表达式中删除重复行来返回表。
VALUES 函数类似于 DISTINCT;它还可用于返回唯一值的列表,通常将返回与 DISTINCT 完全相同的结果。 但是,在某些上下文中,VALUES 将返回一个额外的特殊值。 有关详细信息,请参阅 VALUES 函数。
例
以下公式计算通过 Internet 渠道生成订单的唯一客户数。 下面的表说明了将公式添加到报表时可能的结果。
= COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
不能将 DISTINCT 直接返回的值列表粘贴到列中。 而是使用列表将 DISTINCT 函数的结果传递给另一个计算、筛选或聚合值的函数。 为了使示例尽可能简单,此处的非重复值表已传递到 COUNTROWS 函数。
行标签 | 辅料 | 自行车 | 服装 | 总计 |
---|---|---|---|---|
2005 | 1013 | 1013 | ||
2006 | 2677 | 2677 | ||
2007 | 6792 | 4875 | 2867 | 9309 |
2008 | 9435 | 5451 | 4196 | 11377 |
总计 | 15114 | 9132 | 6852 | 18484 |
此外,请注意,结果不是累加性的。 也就是说,2007年 唯一客户总数 不是 配件、自行车 和 服装 这一年的唯一客户之和。 原因是客户可以计数在多个组中。