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

Excel中合并两个不同工作表的命名区域——不使用VBA

当然可以不用VBA实现这个需求!我给你分两种场景来讲解,你可以根据自己的实际需要选择:

方法1:创建包含两个原区域的联合命名区域(不连续)

这种方法会直接把两个独立的命名区域合并成一个“主命名区域”,它本质是两个不连续区域的集合,适合不需要连续单元格,只是想在公式里统一引用两个区域的场景:

  • 按Ctrl+F3打开名称管理器(或者点击「公式」选项卡下的「名称管理器」按钮)
  • 点击「新建」,在「名称」框里输入你想要的主区域名称(比如MainIDRange)
  • 在「引用位置」输入框中,输入两个命名区域的联合表达式,格式是:=第一个命名区域,第二个命名区域
    举个例子,如果你的两个命名区域分别是Report1!IDList和Report2!IDList,就输入:=Report1!IDList,Report2!IDList
  • 点击「确定」完成创建。之后你在公式里引用MainIDRange,就会同时包含两个原区域的所有单元格。
方法2:合并为连续的单元格区域并命名(适合需要连续ID列的场景)

如果你希望把两个区域的ID合并成一列连续的单元格,再做成命名区域,可以分两种情况处理:

针对Excel 365/2021(支持动态数组)

这是最简洁的方式,动态数组会自动溢出所有内容:

  • 找一个空白工作表(比如新建Sheet3),在第一个空白单元格(比如A1)输入公式:
    =VSTACK(第一个命名区域,第二个命名区域)
    输入后按回车,公式会自动把两个区域的ID全部合并到A列的连续单元格中
  • 选中这个自动溢出的区域(或者直接点击A1),打开名称管理器新建名称,「引用位置」可以直接填=Sheet3!$A#($A#表示动态跟踪A列的溢出区域),或者直接在顶部的名称框里输入主区域名称回车即可。

针对旧版Excel(不支持动态数组)

可以用INDEX+ROW组合公式手动生成连续区域,再做成动态命名区域:

  1. 在空白工作表的A1单元格输入公式:
    =IF(ROW()<=COUNTA(第一个命名区域),INDEX(第一个命名区域,ROW()),INDEX(第二个命名区域,ROW()-COUNTA(第一个命名区域)))
  2. 把这个公式下拉到足够多的行(至少超过两个区域的ID总数),空行会显示#REF!,可以不用管
  3. 打开名称管理器新建主区域,「引用位置」输入动态区域公式:
    =OFFSET(Sheet3!$A$1,0,0,COUNTA(第一个命名区域)+COUNTA(第二个命名区域),1)
    这样当原区域的ID数量变化时,主区域会自动调整范围。

一些注意事项

  • 联合命名区域(方法1)是不连续的,部分函数(比如SUMIF)对不连续区域的支持有限,这种时候可以用SUMPRODUCT或者AGGREGATE来替代
  • 动态数组方法(方法2的新版Excel)会自动同步原区域的内容更新,不需要手动调整
  • 旧版Excel的动态区域公式需要确保原区域没有空单元格,否则COUNTA会统计错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:13:25