You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI跨两表值筛选 编写统计非计划预订用户的度量值

Power BI 非计划预订用户统计度量值实现方案

原有代码问题

  1. 跨表在FILTER中直接判断Projects[ID]与Booking Data[ID]相等,未做上下文转换,会触发计算报错
  2. 缺少排除项目成员的匹配逻辑,无法满足统计非计划用户的需求

前置配置要求

需先在模型视图配置三张表的基础关系,否则度量值计算会出现偏差:

  • Projects[ID] 与 Booking Data[ID] 配置一对多关系,Projects为“一”端
  • Projects[ID] 与 Project Members[ID] 配置一对多关系,Projects为“一”端

可直接运行的正确度量值

写法采用变量拆分逻辑,避免上下文错误,可读性和计算性能更优:

not Planned User = 
// 获取当前行上下文对应的项目ID
VAR CurrentProjectID = SELECTEDVALUE(Projects[ID])
// 提取当前项目下所有提交过预订的去重用户集合
VAR BookedUserSet = 
    CALCULATETABLE(
        VALUES('Booking Data'[User]),
        'Booking Data'[ID] = CurrentProjectID
    )
// 提取当前项目下所有已登记的项目成员集合
VAR MemberSet = 
    CALCULATETABLE(
        VALUES('Project Members'[User Name]),
        'Project Members'[ID] = CurrentProjectID
    )
// 计算两个集合的差集:有预订记录但不在成员列表内的非计划用户
VAR UnplannedUserSet = EXCEPT(BookedUserSet, MemberSet)
// 统计非计划用户数量,无匹配结果时返回0
RETURN
COALESCE(COUNTROWS(UnplannedUserSet), 0)

注意事项

  • 该度量值需创建在Projects表下,搭配以Projects表字段为行维度的表格、矩阵视觉对象使用,可自动按项目ID匹配计算
  • 如果你实际模型中Project Members表存储用户名的字段名不是User Name,替换为对应实际字段名即可
  • 若不需要无数据时返回0,可去掉外层的COALESCE函数,直接返回COUNTROWS(UnplannedUserSet)即可

内容的提问来源于stack exchange,提问作者Scenus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:33:19