跳到主要内容

名称管理器给区域起个外号

=SUM(Sheet2!$B$2:$B$5938) 这样的公式,三个月后连自己都要对着表头数一遍。给区域起个名字,公式能变成 =SUM(销售明细),一眼看懂。

一、两种"名字"要先分清​

类型是什么会跟着公式变化吗
表格名(Ctrl+T)把区域转成智能表格,自带名称会,随表格自动扩展
定义名称指向区域的别名一般不会,除非用公式动态生成

这篇讲定义名称。表格方式的差别下一篇再讲。

二、定义名称的三种操作方法​

方法 1:名称框

选中区域 → 左上角名称框(显示 A1 那个框)→ 输入名字 → 回车。最快。

方法 2:名称管理器

公式 → 名称管理器 → 新建。可以填名称、范围、引用位置,还能加备注。备注值得写,半年后你会感谢自己。

方法 3:根据所选内容创建

选中"标题行 + 数据",公式 → 根据所选内容创建 → 勾"首行"。Excel 会批量生成一批名字,每个名字指向对应列的数据区。

这是整理别人做的表时最快的手段。

三、命名规则​

允许中文、字母、数字、下划线、点,但:

  • 不能以数字开头(1月数据 不行,一月数据 或 _1月数据 可以);
  • 不能有空格(用下划线代替);
  • 不能和单元格地址重名(A1、R1C1 这类不行);
  • 不能是 C、R 这种单字母。

推荐用"下划线 + 中文"的写法:单价表、_节假日、销售_明细。中文可读性最好,前提是团队里没人用英文版 Office 做协作——跨语言环境时中文名字会有兼容问题。

四、常见用法​

替代魔法数字和固定区域

=VLOOKUP(A2,单价对照表,3,0)

比 =VLOOKUP(A2,Sheet2!$B$2:$D$500,3,0) 好维护得多。对照表插入列后,改一次名称就行。

跨表汇总

=SUMIF(销售明细_部门,"技术部",销售明细_金额)

多个工作簿共用同一套名称时,还能写成 =SUM(工作簿名.xlsx!名称)。

存常量

名称的引用位置可以不是区域,而是常量或公式:

税率 = 0.13
生效日期 = DATE(2026,1,1)

用的时候:

=C2*税率

好处是改税率只需改名称,全表公式不用动。这也是最不容易出错的做法。

五、动态名称:让区域自动长大​

引用位置写 OFFSET 或 INDEX,区域会随数据量变化:

=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A)-1,1)

含义:从 A2 开始,高度为 A 列非空数量减 1(去掉标题),宽度 1。

这样新增数据后,=SUM(销售明细) 自动包含新行,不用改引用。

但 OFFSET 是易失函数,每次重算都会重新求值,几十个引用就会明显拖慢速度。数据量大时改用表格(Ctrl+T),它天生就是动态的,而且没有易失开销。

六、作用范围:工作簿 vs 工作表​

新建时可以选"范围":

  • 工作簿(默认):所有工作表都能用;
  • 工作表:只在指定工作表内有效。

工作表级名称容易被忽略,排查公式时"明明有这个名字却报 #NAME?",多半是建在了别的表的工作表级范围里。

在名称管理器里按范围筛选,一眼能看出重复的名字。

七、删除和重命名的影响​

  • 重命名:Excel 会自动更新所有引用(前提是引用写的是名字本身,而不是用 INDIRECT 拼的字符串)。
  • 删除:引用它的公式全部变成 #NAME?,而且没有撤销提示。
  • INDIRECT 拼名字:重命名后不会更新,直接报错。这也是 INDIRECT 要少用的原因之一。

八、常见坑​

现象原因处理
提示"名称无效"数字开头或有空格改命名规则
报 #NAME?名字不存在或作用范围不对名称管理器核对
#REF!指向的区域被删了编辑名称重新指定
重命名后部分公式报错用了 INDIRECT("名字")改用直接引用
计算变慢用了 OFFSET 动态名称改用表格

九、速查​

需求做法
快速命名名称框输入
批量生成根据所选内容创建 → 首行
存常量引用位置填 =0.13
动态区域OFFSET 或表格
查看全部公式 → 名称管理器

名字的价值不在省几个字符,而在给公式里的区域赋予含义。一份好的表,公式读起来应该像句子。