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

使用DAX INDEX函数时引用[@Amt]提示‘Cannot find name’错误

问题分析与解决方法

核心原因

[@Amt] 是DAX中行上下文内引用列的语法,仅能在存在明确行上下文的场景(比如计算列、SUMX/MAXX这类迭代函数的内部逻辑)中使用。如果你的度量值里没有构建对应的行上下文,或者引用位置脱离了行上下文范围,就会触发「Cannot find name」错误。

具体修正步骤

假设你的原度量值类似INDEX函数示例中的结构,可按以下方式调整:

  1. 确保行上下文存在:若要引用Amt列,必须先通过迭代函数(如TOPN)创建行上下文。比如查找第二大客户的度量值,需要先通过TOPN筛选出前两大客户,再用INDEX定位第二行,同时在迭代逻辑中引用Amt。
  2. 替换为完整列引用:在度量值顶层(无行上下文的场景),不要用[@Amt],直接使用表名[Amt]的完整引用格式。示例代码:
    第二大客户金额 = 
    VAR Top2Customers = TOPN(2, ALL('客户表'), '客户表'[Amt], DESC)
    RETURN INDEX(2, Top2Customers, '客户表'[Amt])
    
  3. 排查筛选上下文干扰:如果仪表盘中有切片器或筛选器,确保Amt列所在的表没有被过度筛选导致行上下文失效。可通过ALL/ALLSELECTED调整筛选范围,保证Amt列能被正确识别。

额外注意点

  • 度量值基于筛选上下文计算,不像计算列天然自带行上下文,因此直接在度量值顶层使用[@列名]必然会报错。
  • 若在CALCULATE内部引用列,需确保行上下文已传递,或使用EARLIER('表名'[Amt])获取外层行上下文的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:24:58