DISTINCT
返回由一列构成的一个表,该表包含来自指定列的非重复值。换言之,重复值将被删除,仅返回唯一值。
注意
此函数无法用于将值返回到工作表上的单元格或列中;您而是将 DISTINCT 函数嵌套在某一公式中,以便获取可以传递到其他函数并进行计数、求和或用于其他操作的非重复值的列表。
语法
DISTINCT(<column>)
参数
项 | 定义 |
---|---|
column | 要从其返回唯一值的列。或者是返回列的表达式。 |
返回值
由唯一值构成的列。
注释
DISTINCT 的结果将受到当前筛选器上下文的影响。例如,如果您在以下示例中使用该公式来创建一个度量值,则只要对表进行筛选以便只显示特定区域或时间段,结果就会更改。如果您想要防止筛选影响列表中的项,则使用 ALL 函数从指定的列和表中删除筛选器,如下所示:
=COUNTROWS(DISTINCT(ALL( InternetSales_USD[CustomerKey])))
相关函数
VALUES 函数类似于 DISTINCT;它也可用于返回唯一值的列表,并且通常将返回与 DISTINCT 完全相同的结果。不过,在某些上下文中,VALUES 会额外返回一个特殊值。有关详细信息,请参阅 VALUES 函数 (DAX)。
示例
下面的公式计算通过 Internet 渠道生成了订单的唯一客户的数目。下表说明了在将公式添加到数据透视表时的可能结果。
=COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
请注意,不能将 DISTINCT 返回的值列表直接粘贴到列中。而是应该将 DISTINCT 函数的结果传递到通过使用该列表对值进行计数、筛选或聚合的其他函数中。为了使示例尽可能简单,下面是已传递到 COUNTROWS 函数的非重复值的表。
唯一的 Internet 客户 | 列标签 | |||
---|---|---|---|---|
行标签 | 附件 | 自行车 | 服装 | 总计 |
2001 | 1013 | 1013 | ||
2002 | 2677 | 2677 | ||
2003 | 6792 | 4875 | 2867 | 9309 |
2004 | 9435 | 5451 | 4196 | 11377 |
总计 | 15114 | 9132 | 6852 | 18484 |
还要注意,结果不是累加性的。也就是说,2003 中唯一客户的总数不是该年度 Accessories、Bikes 和 Clothing 的唯一客户之和。这是因为客户可能会在多个组中都被计数。