PowerBi中VALUES怎么使用?

VALUES() 是 Power BI / DAX 中一个非常重要的函数,常用于处理 上下文中的唯一值集合 。它既可以作为一种"上下文探测工具",也常用于配合 CALCULATE()、COUNTROWS() 等函数实现一些高级逻辑。


✅ 一、VALUES 函数的定义

VALUES()

返回当前上下文中指定列的唯一值集合(去重后) ,并以"表"的形式返回。

它也可以写成:

DAX 复制代码
VALUES(Table[Column])

🧠 二、VALUES 的作用总结

用途 说明
获取当前上下文中的唯一值 可以知道当前筛选了哪些维度(如哪些客户/产品)
给 CALCULATE() 提供筛选器 配合 IN 使用,批量筛选
统计去重后的数量 配合 COUNTROWS() 计算去重数量
判断是否只有一个唯一值 配合 IF() 判断是否是单个上下文

📘 三、VALUES 的常见使用场景举例


✅ 1. 获取去重后的客户数量

DAX 复制代码
客户数量 = COUNTROWS(VALUES(Sales[客户]))

📌 意思是:统计当前筛选条件下,有多少个不重复的客户。


✅ 2. 用于 IN 多值筛选(配合 CALCULATE)

DAX 复制代码
产品销售额 =
CALCULATE(
    SUM(Sales[销售额]),
    Products[产品] IN VALUES(TopProducts[产品])
)

📌 意思是:只计算属于 TopProducts 表中产品的销售额。


✅ 3. 判断当前上下文是否只有一个唯一值

DAX 复制代码
当前产品名称 =
IF(
    HASONEVALUE(Products[产品]),
    VALUES(Products[产品]),
    "多个产品"
)

📌 意思是:如果当前上下文只有一个产品,就显示它的名字;否则提示"多个产品"。


✅ 4. 与 SELECTEDVALUE() 对比

SELECTEDVALUE() 实际上就是 IF(HASONEVALUE(), VALUES(), default) 的简写:

DAX 复制代码
-- 等价于
SELECTEDVALUE(Products[产品], "多个产品")

⚠️ 四、注意事项

点 说明
返回值是"表" VALUES() 返回的是一张一列的表,而不是单个值
用在 IF() 时需配合 HASONEVALUE() 避免 VALUES() 返回多行时报错
不等于 DISTINCT() DISTINCT() 会保留空值;VALUES() 在无上下文时返回所有值,包含空

✅ 五、总结一句话:

VALUES() 是获取当前上下文中唯一值集合的万能工具,适合做判断、去重、动态筛选等,是 DAX 中非常核心的函数之一。

相关推荐
学术 学术 Fun2 小时前
研究方向有哪些团队获得过资助?用 NIH RePORTER 梳理项目与研究者
数据分析·科研
找方案9 小时前
从用户画像到智能定价:81页方案拆解“大数据决策与支撑平台”怎么落地
大数据·人工智能·数据分析·智慧城市·用户画像
quantdash_cc9 小时前
从实时行情到价格观察表:用 Python 和 Pandas 构建策略输入数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
郝学胜-神的一滴12 小时前
AI 编程智能体 09:零门槛调用教程
人工智能·数据分析·自动化·numpy·pandas·量化投资
SelectDB13 小时前
高并发 BI 看板怎么撑住:隔离与加速配置速查
大数据·数据库·数据分析
ClouGence15 小时前
数据如何随时可用?广西水牛先生的 MySQL 实时同步实践
数据库·mysql·数据分析
我的愿望是成为富婆20 小时前
2027校招准备:AI能生成SQL,数据分析该学到什么程度?
人工智能·sql·数据分析
涛思数据(TDengine)1 天前
TDengine TSDB 3.4.3.3 上线:流计算分层闭环、虚拟表跨层引用,查询关联一次写完
数据库·人工智能·数据分析·时序数据库·tdengine·工业
Data-Miner1 天前
DeepSeek 对百度搜索的冲击有多大?当搜索被 AI 重写,数据分析行业正在被悄悄改写
人工智能·百度·数据分析
我的愿望是成为富婆1 天前
2027校招准备:从Excel操作到数据分析,还缺业务、SQL与统计思维
sql·数据分析·excel