DISTINCT(列)

适用于:计算列计算表度量值视觉对象计算

返回由一列组成的表,其中包含与指定列不同的值。 换言之,会删除重复值并且仅返回唯一的值。

注意

此函数不能用于将值返回到工作表上的单元格或列中;但可以将 DISTINCT 函数嵌套在公式中以获取非重复值列表,可以将这些值传递给其他函数并对其进行计数、求和或用于其他操作。

语法

DISTINCT(<column>)  

parameters

术语 定义
要从其中返回唯一值的列。 或者返回列的表达式。

返回值

唯一值的列。

备注

  • DISTINCT 的结果会受到当前筛选上下文的影响。 例如,如果在以下示例中使用公式来创建一个度量值,那么只要对表进行筛选以仅显示特定区域或某个时间段,结果就会更改。

  • 在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

有另一个版本的 DISTINCT 函数 DISTINCT (table),它可通过删除其他表或表达式中的重复行来返回表。

VALUES 函数类似于 DISTINCT;它还可用于返回唯一值的列表,并且通常将返回与 DISTINCT 完全相同的结果。 但是,在某些上下文中,VALUES 将返回一个额外的特殊值。 有关详细信息,请参阅 VALUES 函数

示例

下面的公式会计算通过 Internet 渠道生成了订单的唯一客户的数量。 下表说明了将公式添加到报表后可能产生的结果。

= COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))  

不能将 DISTINCT 返回的值列表直接粘贴到列中。 相反,可以使用列表将 DISTINCT 函数的结果传递给对值进行计数、筛选或聚合的其他函数。 为了尽可能简化示例,此处的非重复值表已经传递给了 COUNTROWS 函数。

行标签 Accessories Bikes Clothing 总计
2005 1013 1013
2006 2677 2677
2007 6792 4875 2867 9309
2008 9435 5451 4196 11377
总计 15114 9132 6852 18484

另请注意,结果不是累加的。 也就是说,2007 年的唯一客户总数不是该年购买“配件”、“自行车”和“服装”的唯一客户数的总和 。 原因是可能会将一位客户计入多个组中。

筛选器函数
FILTER 函数
RELATED 函数
VALUES 函数