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

Excel定义名称能否在DAX公式及度量值中使用?(Excel2016场景)

在DAX公式中使用Excel定义名称的方法及常见问题解答

嘿,我来帮你理清这两个关于DAX和Excel名称的问题:

一、如何在DAX公式中使用Excel定义的名称?

其实步骤很简单,关键是要注意名称的作用域,具体如下:

  • 先确认名称的作用域类型:Excel里的名称分「工作簿级」和「工作表级」。工作簿级的名称在整个工作簿(包括数据模型)都能直接访问;工作表级的名称只能在所属工作表里直接用,跨工作表或在数据模型里用的话,必须加上工作表前缀(比如Sheet1!MyNamedValue)。
  • 在DAX中直接引用:只要你正确指定了作用域,就可以像引用DAX自己的计算列、度量值一样用Excel名称。比如如果是工作簿级的单个单元格名称Threshold,直接写Threshold就行;如果是工作表级的区域名称Sheet2!ScoreRange,你可能需要用SUM(Sheet2!ScoreRange)或者VALUES(Sheet2!ScoreRange)来处理,因为DAX会把区域识别成表。
  • 验证引用是否正确:输入名称后,如果DAX编辑器的智能感知能提示到它,说明引用没问题;如果没提示,打开Excel的「名称管理器」(公式选项卡下)检查名称是否存在、作用域是否正确。

二、Excel 2016工作表中定义的AP_h,能在数据模型的DAX度量值中使用吗?

当然可以,但得注意作用域的问题,结合你给的示例度量值来具体说:

你写的度量值:

A+:=CALCULATE(COUNT(marks[Final Degree]),FILTER(marks, [Final Degree]>=AP_h))

如果AP_h是工作表级名称,直接写AP_h会报错——因为数据模型默认找不到仅属于某个工作表的名称。这时候你需要加上所属工作表的前缀,比如它在「成绩表」里,就改成:

A+:=CALCULATE(COUNT(marks[Final Degree]),FILTER(marks, [Final Degree]>=成绩表!AP_h))

如果AP_h是工作簿级名称,那直接用AP_h完全没问题,DAX会自动识别这个标量值。

另外补充个小细节:如果你的AP_h引用的是一个单元格区域(不是单个值),那直接用>=AP_h会出错,因为DAX不能拿列值和表去比较。这时候你需要用MAX(工作表名!AP_h)或者MIN(工作表名!AP_h)提取区域里的标量值,比如:

A+:=CALCULATE(COUNT(marks[Final Degree]),FILTER(marks, [Final Degree]>=MAX(成绩表!AP_h)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:51:20