跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在 Excel 中引用多个工作表中的相同单元格?

Author Xiaoyang Last modified

在使用 Excel 时,将相关数据组织到单个工作簿的多个工作表中是非常常见的操作。有时,您可能需要通过从所有这些工作表中提取相同的单元格(例如 B8)到一个汇总或主表中来合并或比较数据。这种方法可以帮助您将一致的信息(如月度结果或部门总和)整合到一个综合视图中,以便更轻松地进行分析和报告。例如,您可能希望从若干个工作表(Sheet1、Sheet2、Sheet3、Sheet4 等)中提取存储在单元格 B8 中的月度数据,并将其列在一个主表中,如下所示。

A screenshot showing data from Sheet1 A screenshot showing data from Sheet2 A screenshot showing data from Sheet3 A screenshot showing data from Sheet4 Arrow A screenshot of the master sheet showing consolidated data from multiple sheets

Excel 提供了多种方法来引用多个工作表中的相同单元格并将结果收集到主工作表中。根据您对公式、VBA 或第三方工具的熟悉程度,您可以选择适合特定需求的方法。以下是高效实现此任务的实用方法。此外,您将在目录中找到另外两种推荐的解决方案,可以处理相关的场景:

使用公式将多个工作表中的相同单元格引用到一个主表中

使用 VBA 代码将多个工作表中的相同单元格引用到一个主表中

使用令人惊叹的功能将多个工作表中的相同单元格引用到一个主表中


使用公式将多个工作表中的相同单元格引用到一个主表中

如果您的工作表名称遵循默认模式(Sheet1、Sheet2、Sheet3 等),Excel 公式提供了一种快速方式来引用一系列工作表中的相同单元格。这种方法简单、动态且不需要任何代码,特别适用于经常添加或删除遵循相同命名约定的工作表的情况。

1. 首先,在一列中创建一组辅助编号,例如输入 1、2、3、4 等。每个数字对应要引用的工作表后缀之一。这一步有助于自动化引用过程,避免为每个工作表手动编写公式。参见截图:

A screenshot of a list of helper numbers to reference multiple sheets

2. 在要显示提取值的单元格中(例如,在主表的 B2 单元格中),输入以下公式。然后,向下拖动填充柄以自动引用每个相应的工作表。所有目标单元格值(这里是从每个工作表中提取的 B8)将一次性检索出来。

=INDIRECT("'Sheet" & E2 & "'!$B$8")

A screenshot showing the formula used to reference same cell from multiple sheets in Excel.

注意:在此公式中,E2 指的是与工作表名称后缀匹配的辅助编号(1,2,3,…),B8 是您要提取的单元格地址。根据实际布局和单元格调整 E2 和 B8。此方法仅在您的工作表遵循“Sheet1”、“Sheet2”等命名模式时直接有效。

这种基于公式的解决方案对于结构化工作簿来说快速简便,但如果工作表具有非数字名称或频繁添加/删除工作表,则会变得繁琐。仔细检查任何 #REF! 错误,这可能表示辅助值与现有工作表名称之间的不匹配。


使用 VBA 代码将多个工作表中的相同单元格引用到一个主表中

如果您的工作簿包含许多工作表并且其名称不遵循可预测的模式(即工作表名称是自定义的或非顺序的),使用 VBA 提供了一种直接的方法,可以从所有工作表中提取相同的单元格引用到主工作表中。此方法支持批量处理,无论工作表名称为何,非常适合整合大型或非统一的工作簿。

1. 在主工作表中,点击您希望开始显示从其他工作表提取数据的单元格(例如,B8)。确保该单元格下方有足够的空行以容纳从每个工作表提取的结果。

A screenshot showing cell B8 in the Master sheet

2. 同时按下 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

3. 在 VBA 编辑器中,点击 插入 > 模块。复制并粘贴以下代码到模块窗口中:

VBA 代码:引用多个工作表中的相同单元格

Sub AutoFillSheetNames()
'Update by Extendoffice
Dim ActRng As Range
Dim ActWsName As String
Dim ActAddress As String
Dim Ws As Worksheet
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ActRng = Application.ActiveCell
ActWsName = Application.ActiveSheet.Name
ActAddress = ActRng.Address(False, False)
Application.ScreenUpdating = False
xIndex = 0
For Each Ws In Application.Worksheets
If Ws.Name <> ActWsName Then
ActRng.Offset(xIndex, 0).Value = "='" & Ws.Name & "'!" & ActAddress
xIndex = xIndex + 1
End If
Next
Application.ScreenUpdating = True
End Sub

4. 粘贴代码后,按 F5 键或点击 运行 按钮执行代码。每个工作表(不包括主表本身,如果已编码)的 B8 单元格的所有值将被收集并填充到主工作表中,从您选择的单元格开始向下排列。结果将垂直列出,便于审查或进一步分析。

A screenshot of results after running VBA code to reference the same cell from multiple sheets

注意:此 VBA 解决方案适用于运行代码前选择的单元格。例如,如果您点击单元格 A1,它将提取其他工作表中所有相应的 A1 值。


使用令人惊叹的功能将多个工作表中的相同单元格引用到一个主表中

对于寻找无需公式或编码的更便捷解决方案的用户,Kutools for Excel 提供了一个直观的功能,称为 自动递增工作表引用。借助此工具,您可以从数十甚至数百个工作表中提取相同的单元格引用,只需几次点击,无论工作表如何命名。这对于经常合并数据并偏好视觉化、逐步流程而非编写公式或编辑 VBA 代码的用户来说非常理想。

提示 要使用 自动递增工作表引用 功能,请首先下载并安装最新版本的 Kutools for Excel(如果您尚未安装)。安装后,您可以访问许多简化复杂 Excel 任务的便捷功能,例如此功能。

安装 Kutools for Excel 后,请按照以下步骤从多个工作表中合并数据:

1. 在主表中,选择您希望显示从其他工作表填充的引用的单元格(例如,B8)。

A screenshot showing cell B8

2. 转到 Kutools 选项卡,选择 更多,然后选择 自动递增工作表引用,如下所示:

A screenshot showing the Kutools option to dynamically refer to worksheets in Excel

3.填充工作表引用 对话框中,从 填充顺序 中选择 先行后列 ,点击公式文本框旁边的小锁图标,灰色锁将变为黄色锁,这意味着公式和单元格引用已被锁定,然后您可以点击任意单元格以提取其他工作表中的 B8 引用,在此示例中我将点击 B2 单元格。然后,选中您要从中提取单元格引用的工作表。参见截图:

注意:始终点击锁以固定您选择的单元格引用。如果未设置锁,单元格引用可能会根据您的选择而变化,可能导致错误结果。

A screenshot of the Fill Worksheets References dialog box

4. 点击 填充范围 按钮。程序将立即从所有选定工作表中提取所选单元格值(例如,B8),并将其列在主工作表中,每个值占据一行。完成后,您可以关闭对话框并根据需要调整汇总表格式。

A screenshot of the final result after filling cell references from multiple worksheets using Kutools

当处理大量工作表或工作表名称不规则且频繁手动引用或公式调整不切实际时,此方法尤为有用。该过程可视化且易于遵循,大大简化了工作簿合并任务。

立即点击下载 Kutools for Excel 并免费试用!


更多文章:

  • 根据条件从多个工作表中复制行到新工作表
  • 假设您有一个包含多个工作表的工作簿,每个工作表共享相同的格式。如果您想将 C 列包含文本“已完成”的所有行复制到一个新工作表中,本指南将帮助您高效完成——无需手动复制和粘贴,节省大量时间。
  • 从多个工作表中创建唯一值列表
  • 寻找一种快速方法从工作簿的所有工作表中编译唯一值列表吗?例如,如果多个工作表包含重叠的名称列表,此技术可帮助您将每个唯一名称提取到一个新列表中以进行分析。
  • 跨多个工作表统计特定值的数量
  • 如果您有多个包含相似数据的工作表,并希望统计某个特定值(例如“Excel”)在所有工作表中出现的次数,本文展示了有效的解决方法可供使用。
  • 在多个工作表中插入相同图像
  • 在单个工作表中插入图像很容易,但如果您希望同一图像出现在工作簿的每个工作表中怎么办?本指南演示了一种在几个步骤内高效实现此目的的方法。

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠