VALUES
当输入参数为列名时,返回一个包含指定列的非重复值的一列表。 删除重复值,只返回唯一值。 可以添加 BLANK 值。 当输入参数是表名时,返回指定表中的行。 保留重复的行。 可以添加 BLANK 行。
注意
此函数不能用于将值返回到工作表上的单元格或列中;相反,可以使用它作为嵌套在公式中的中间函数来获取可计数或用于筛选或求和其他值的非重复值的列表。
语法
VALUES(<TableNameOrColumnName>)
parameters
术语 | 定义 |
---|---|
TableName 或 ColumnName |
要从中返回唯一值的列,或从中返回行的表。 |
返回值
当输入参数为列名时,返回单列表。 当输入参数为表名时,返回具有相同列的表。
备注
在已筛选的上下文中使用 VALUES 函数时,VALUES 返回的唯一值将受到筛选器的影响。 例如,如果按区域进行筛选,并返回城市值的列表,则列表将仅包含筛选器允许的区域中的那些城市。 若要返回所有城市,而不考虑现有筛选器,必须使用 ALL 函数从表中删除筛选器。 第二个示例演示如何将 ALL 与 VALUES配合使用。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
有关使用 VALUES时的最佳做法,请参阅 使用 SELECTEDVALUE 而不是 VALUES。
相关函数
在大多数情况下,当参数为列名时,VALUES 函数的结果与 DISTINCT
函数的结果相同。 这两个函数删除重复项,并返回指定列中可能值的列表。 但是,VALUES 函数也可以返回空白值。 如果查找相关表中的非重复值,但关系中使用的值在一个表中缺失,则此空值非常有用。 在数据库术语中,这被称为违反了引用完整性。 在更新一个表且相关表未更新时,可能会发生数据不匹配的情况。
当参数为表名时,如果存在引用完整性冲突,则 VALUES 函数的结果将返回指定表中的所有行加上一个空白行。 DISTINCT 函数删除重复行,并返回指定表中的唯一行。
注意
DISTINCT 函数允许列名或任何有效的表表达式作为其参数,但 VALUES 函数仅接受列名或表名作为参数。
下表汇总了未保留引用完整性时两个相关表中可能发生的数据不匹配。
MyOrders 表 | MySales 表 |
---|---|
6 月 1 日 | 6 月 1 日销售额 |
6 月 2 日 | 6 月 2 日销售额 |
(未输入订单日期) | 6 月 3 日销售额 |
如果使用 DISTINCT 函数返回日期列表,则只返回两个日期。 但是,如果使用 VALUES 函数,该函数将返回两个日期加上一个额外的空白成员。 此外,MySales 表中没有匹配日期的任何行都将“匹配”到此未知成员。
示例
以下公式计算唯一发票(销售订单)的数量,并在包含产品类别名称的报表中使用时生成以下结果:
= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
返回
行标签 | 对发票进行计数 |
---|---|
Accessories | 18,208 |
Bikes | 15,205 |
Clothing | 7,461 |
总计 | 27,659 |