
在 Excel 中,名称用于标识一个特定区域,通过该名称即可快速调用对应范围内的数据。相较于直接使用单元格地址(如 A1:B10)进行引用,采用自定义名称的方式更直观、易读,也更便于在公式、数据有效性设置等场景中复用。
不过,若使用 Excel 默认的【定义名称】功能,所指定的区域通常是静态的——即起始与结束位置固定,无法随数据增减自动伸缩。本文将详解如何创建动态名称,使其能根据实际数据行数自动调整引用范围。
以下以「记账表」中「支出分类」列表需支持随时新增类别为例展开说明。
第一步:准备源数据列
在工作表中选定一列(推荐从第 1 行开始),用于存放所有支出分类项目。例如,将各类别填写在「分类」工作表的 A 列,确保无空行夹杂其中,以便后续准确识别有效数据范围。
第二步:打开【定义名称】对话框
切换至【公式】选项卡 → 点击【定义名称】按钮,弹出设置窗口。在「名称」栏输入自定义名称(如“支出分类”),「范围」设为“工作簿”,便于全局调用。
第三步:输入动态区域公式
关键在于用函数构建可变区域。通用写法如下:
=OFFSET(首行单元格, 0, 0, COUNTA(整列))
本例中,源数据位于「分类」表的 A 列,首行为 A1,因此动态公式为:
=OFFSET(分类!$A$1, 0, 0, COUNTA(分类!$A:$A))
该公式含义为:以 A1 为基准点,向下偏移 0 行、向右偏移 0 列,高度等于 A 列中非空单元格个数,从而形成随内容自动延展的矩形区域。
确认无误后点击【确定】,完成动态名称创建。
应用动态名称
在记账模板的「分类」列(如 B 列),选中目标单元格区域 → 【数据】→【数据验证】→ 允许类型选择「序列」→ 在「来源」框中输入已定义的名称,例如:=$支出分类(注意加 $ 符号以避免相对引用错误)。
此后,只要在「分类」工作表的 A 列末尾追加新项目,该动态名称所覆盖的区域便会实时更新,关联的下拉列表也将同步新增选项,无需手动调整引用范围。


















