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

Power BI关联表问题:编写DAX筛选技能达标用户的度量值报错如何解决

错误原因
  • 未建立两表关联:Table1和Table2没有以[Question]为公共键建立一对多关系,跨表引用字段时DAX无法识别字段的匹配逻辑。
  • 度量值不符合DAX上下文规则:直接在度量值中引用裸列名,DAX默认无法确定要取表中哪一行的字段值,因此抛出「无法确定单列的单值」报错。
  • 逻辑场景不匹配:你写的表达式只适合用在固定行上下文的计算列场景,不适合用在需要动态响应筛选的度量值场景。
修复步骤
  1. 先建立表关系
    进入模型视图,将Table1的[Question]字段拖拽到Table2的[Question]字段上,建立一对多关系(Table1为一端,Table2为多端),可根据筛选需要开启双向交叉筛选。

  2. 编写对应需求的DAX度量值
    如果你的需求是筛选出所有技能都满足要求的用户,用以下度量值:

全技能达标判定 = 
// 提取岗位要求的全部技能列表
VAR 要求技能集 = VALUES(Table1[Question])
// 提取当前筛选下用户已作答的全部技能列表
VAR 用户作答技能集 = VALUES(Table2[Question])
// 计算用户未达标的技能总数:已作答但得分不够 + 未作答的要求技能
VAR 未达标计数 = 
COUNTROWS(
    FILTER(
        要求技能集,
        CALCULATE(MAX(Table2[Score])) < CALCULATE(MAX(Table1[Required Score]))
    )
) + COUNTROWS(EXCEPT(要求技能集, 用户作答技能集))
RETURN
// 未达标数为0则返回1,否则返回0,用于筛选
IF(未达标计数 = 0, 1, 0)

如果你的需求是逐行展示用户对应技能的达标情况,用以下度量值:

单技能达标判定 = 
IF(
    SELECTEDVALUE(Table2[Score]) >= SELECTEDVALUE(Table1[Required Score]),
    "达标",
    "未达标"
)
使用说明

要筛选达标用户时,将全技能达标判定度量值拖入视觉对象的筛选器面板,设置筛选条件为「等于1」即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:36:04