Note: The other languages of the website are Google-translated. Back to English

如何在Excel中创建动态命名范围?

通常情况下, 命名范围 对于Excel用户非常有用,您可以在列中定义一系列值,为该列命名,然后可以通过名称而不是其单元格引用来引用该范围。 但是大多数时候,您需要添加新数据以扩展将来引用范围的数据值。 在这种情况下,您必须返回 公式 > 名称管理员 并重新定义范围以包括新值。 为避免这种情况,您可以创建一个动态的命名范围,这意味着在每次向列表中添加新的行或列时都不需要调整单元格引用。

通过创建表在Excel中创建动态命名范围

使用功能在Excel中创建动态命名范围

使用VBA代码在Excel中创建动态命名范围

Office选项卡在Office中启用选项卡式编辑和浏览,并使您的工作更加轻松...
Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%
  • 重用任何东西: 将最常用或最复杂的公式,图表等添加到您的收藏夹中,并在将来快速重用它们。
  • 超过20种文字功能: 从文本字符串中提取数字; 提取或删除部分文字; 将数字和货币转换为英文单词。
  • 合并工具:将多个工作簿和工作表合二为一; 合并多个单元格/行/列,而不会丢失数据; 合并重复的行和总和。
  • 分割工具:根据价值将数据分割成多个工作表; 一本工作簿可转换为多个Excel,PDF或CSV文件; 一列到多列。
  • 跳过粘贴 隐藏/过滤的行; 计数与求和 按背景色; 向多个收件人批量发送个性化电子邮件。
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按星期,日期,频率等 筛选器 用粗体,公式,注释...
  • 超过300种强大的功能; 适用于Office 2007-2019和365; 支持所有语言; 在您的企业或组织中轻松部署。

箭头蓝色右气泡 通过创建表在Excel中创建动态命名范围


如果使用的是Excel 2007或更高版本,则创建动态命名范围的最简单方法是创建命名Excel表。

假设您有一系列跟随数据,这些数据需要变为动态命名范围。

文档动态范围1

1。 首先,我将为此范围定义范围名称。 选择范围A1:A6并输入名称 Date名称框,然后按 输入 键。 以相同的方式将范围B1:B6的名称定义为Saleprice。 同时,我创建一个公式 =总和(促销价) 在空白单元格中,请参见屏幕截图:

文档动态范围2

2。 选择范围并单击 插页 > ,请参见屏幕截图:

文档动态范围3

3。 在 创建表 提示框,选中 我的桌子有标题 (如果该范围没有标题,请取消选中它),然后单击 OK 按钮,范围数据已转换为表格。 查看屏幕截图:

文档动态范围4 -2 文档动态范围5

4。 并且,当您在数据后输入新值时,命名范围将自动调整,并且创建的公式也将更改。 请参阅以下屏幕截图:

文档动态范围6 -2 文档动态范围7

笔记:

1.您输入的新数据必须与上述数据相邻,这意味着新数据与现有数据之间没有空白行或列。

2.在表中,您可以在现有值之间插入数据。


箭头蓝色右气泡 使用功能在Excel中创建动态命名范围

在Excel 2003或更早版本中,第一种方法将不可用,因此这是您的另一种方法。 以下 偏移量() 函数可以帮到您,但这有点麻烦。 假设我有一个数据范围,其中包含我定义的范围名称,例如, A1:A6 范围名称是 DateB1:B6 范围名称是 销售价格,同时,我为 销售价格。 看截图:

文档动态范围2

您可以通过以下步骤将范围名称更改为动态范围名称:

1。 点击 公式 > 名称管理员,请参见屏幕截图:

文档动态范围8

2。 在 名称管理员 对话框中,选择要使用的项目,然后单击 编辑 按钮。

文档动态范围9

3。 在弹出 编辑名称 对话框中,输入此公式 = OFFSET(Sheet1!$ A $ 1、0、0,COUNTA($ A:$ A),1) 文本框,请参见屏幕截图:

文档动态范围10

4。 然后点击 OK,然后重复步骤2和步骤3以复制此公式 = OFFSET(Sheet1!$ B $ 1、0、0,COUNTA($ B:$ B),1)进入 的文本框 销售价格 范围名称。

5。 动态命名范围已创建。 当您在数据后输入新值时,命名范围将自动调整,并且创建的公式也将更改。 查看屏幕截图:

文档动态范围6 -2 文档动态范围7

请注意: 如果范围的中间有空白单元格,则公式的结果将是错误的。 那是因为不计入非空白单元格,因此您的范围将比其应有的短,并且该范围中的最后一个单元格将被保留。

提示:此公式的解释:

  • = OFFSET(参考,行,列,[高度],[宽度])
  • -1
  • = OFFSET(Sheet1!$ A $ 1、0、0,COUNTA($ A:$ A),1)
  • 参考 对应于起始单元格位置,在此示例中 Sheet1!$ A $ 1;
  • 表示要相对于起始单元格向下移动的行数(如果使用负值,则向上移动),在此示例中,0表示列表将从第一行开始
  • 对应于您将相对于起始单元格向右移动的列数(或使用负值向左移动)。在以上示例公式中,0表示向右扩展0列。
  • [高度] 对应于从调整位置开始的范围的高度(或行数)。 $ A:$ A,它将计算在A列中输入的所有项目。
  • [宽度] 对应于从调整位置开始的范围的宽度(或列数)。 在上面的公式中,列表将为1列宽。

您可以根据需要更改这些参数。


箭头蓝色右气泡 使用VBA代码在Excel中创建动态命名范围

如果您有多列,则可以重复并为其余所有列输入单独的公式,但这将是一个漫长的重复过程。 为了使事情变得简单,可以使用代码自动创建动态命名范围。

1。 激活您的工作表。

2。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.

3。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:创建动态命名范围

Sub CreateNamesxx()
'Update 20131128
Dim wb As Workbook, ws As Worksheet
Dim lrow As Long, lcol As Long, i As Long
Dim myName As String, Start As String
Const Rowno = 1
Const Colno = 1
Const Offset = 1
On Error Resume Next
Set wb = ActiveWorkbook
Set ws = ActiveSheet
lcol = ws.Cells(Rowno, 1).End(xlToRight).Column
lrow = ws.Cells(Rows.Count, Colno).End(xlUp).Row
Start = Cells(Rowno, Colno).Address
wb.Names.Add Name:="lcol", RefersTo:="=COUNTA($" & Rowno & ":$" & Rowno & ")"
wb.Names.Add Name:="lrow", RefersToR1C1:="=COUNTA(C" & Colno & ")"
wb.Names.Add Name:="myData", RefersTo:="=" & Start & ":INDEX($1:$65536," & "lrow," & "Lcol)"
For i = Colno To lcol
    myName = Replace(Cells(Rowno, i).Value, " ", "_")
    If myName <> "" Then
        wb.Names.Add Name:=myName, RefersToR1C1:="=R" & Rowno + Offset & "C" & i & ":INDEX(C" & i & ",lrow)"
    End If
Next
End Sub

4。 然后按 F5 键来运行代码,然后将生成一些动态命名范围,这些范围以第一行值命名,并且还会创建一个动态范围,称为 我的数据 它涵盖了整个数据。

5。 在行或列之后输入新值时,范围也会扩大。 查看屏幕截图:

文档动态范围12
-1
文档动态范围13

笔记:

1.使用此代码,范围名称不会显示在 名称框,为了方便查看和使用范围名称,我已经安装了 Kutools for Excel,其 导航窗格,列出了创建的动态范围名称。

2.使用此代码,可以垂直或水平扩展整个数据范围,但要记住,输入新值时,数据之间不应有空白行或列。

3.使用此代码时,数据范围应从单元格A1开始。


相关文章:

在Excel中输入新数据后如何自动更新图表?


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (4)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
谢谢你的好文章
该评论由网站上的主持人最小化
您是一位非常好的老师: 1)循序渐进的方法; 2) 你不会用明显的材料或结论让学生厌烦; 3)但你包括所有必要的材料。 我期待着你的更多教程。
该评论由网站上的主持人最小化
请帮助我正在尝试在 excel 2016 上创建一个动态命名范围,键入“=offset(DATAENTRY!$B$6,,,counta(DATAENTRY!$B$6:$B$13))" 但它仍然给我一个错误提示不是一个公式。
该评论由网站上的主持人最小化
真的,真的没有帮助
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点