INDIRECT函数进行多表汇总

墨云轩
墨云轩 WPS资深用户Lv.2 潜力创作者KVPWPS寻令官

Lv.2潜力创作者

INDIRECT函数进行多表汇总

Excel高手必备的间接引用技巧 · 一篇搞定

在日常工作中,我们经常遇到这样的场景:一个工作簿里有12个月份的销售数据,每个月份单独一个工作表,现在需要快速汇总每个月的总额。逐个手动加总?太慢了。用 SUM 函数跨表引用?写公式能写到怀疑人生。

今天要介绍的 INDIRECT 函数,就是解决这类问题的利器。它被称为 Excel 中最"灵活"的函数之一,掌握它之后,你会发现跨表汇总原来可以如此优雅。

一、INDIRECT 函数是什么?

微软官方对 INDIRECT 的解释是:将文本字符串转化为引用

从它的英文单词 "Indirect"(间接的)也能看出,它提供了一种间接引用的方式。在理解间接引用之前,我们先看看直接引用是怎么一回事。

直接引用

假设我们要在 F1 单元格中引用 A1 的内容,直接在 F1 中输入 =A1 即可。这是最基础的直接引用——公式中直接写明了要引用的单元格地址。

间接引用

现在换个思路:假设 E1 单元格中存放的是文本 "A1",我们能不能让 Excel 把 E1 里的这个文本当作单元格地址来引用呢?

直接写 =E1 只能得到字符串 "A1",不是 A1 的内容。这时候就需要 INDIRECT 出场了:

=INDIRECT(E1) —— 将 E1 中的文本 "A1" 转化为对 A1 单元格的引用,从而得到 A1 的真实内容。

核心理解:INDIRECT 函数就像一个"翻译官",它把文本字符串翻译成 Excel 能识别的单元格引用或区域引用。

二、INDIRECT 的核心机制

要使用 INDIRECT,核心只有一件事:构造一个符合 Excel 引用规则的文本字符串

什么是"符合规则的文本字符串"?就是 Excel 中标准的引用写法,比如:

  • "A1"

—— 引用 A1 单元格

  • "B3"

—— 引用 B3 单元格

  • "C:C"

—— 引用整列 C

  • "一月!C:C"

—— 引用"一月"工作表的整列 C

只要构造出这样的字符串,外面套一个 INDIRECT,它就能变成真正的引用。

INDIRECT("文本字符串") = 真正的单元格/区域引用

三、实战:INDIRECT 实现多表汇总

现在进入正题——如何利用 INDIRECT 对多个工作表进行汇总。

场景描述

假设一个工作簿中有"一月""二月""三月"等多个工作表,每个表的 C 列存放着当月数据。现在需要在汇总表中计算每个月的 C 列总和。

第 1 步:构造引用字符串

在 Excel 中,跨工作表引用的标准格式是:

工作表名!单元格区域

例如 一月!C:C 表示"一月"工作表的整个 C 列。

现在,我们在汇总表的 A 列存放工作表名称:

A列(工作表名)

C列(构造的引用字符串)

一月

=A1&"!C:C"

→ 得到 一月!C:C

二月

=A2&"!C:C"

→ 得到 二月!C:C

三月

=A3&"!C:C"

→ 得到 三月!C:C

这里用到了 &(连字符),它是 Excel 中拼接文本的运算符。=A1&"!C:C" 的意思是把 A1 单元格的内容("一月")和文本 "!C:C" 拼接在一起,得到 "一月!C:C"

第 2 步:用 INDIRECT 转化并求和

现在 C 列已经有了符合规则的文本字符串,但直接对它用 SUM 是不行的——它只是一个文本,不是真正的区域引用。

解决方法:在外面套一层 INDIRECT

方法一:分步实现

  1. 在 C2 中输入 =A2&"!C:C",构造出文本字符串 "一月!C:C"

  1. 在 D2 中输入 =SUM(INDIRECT(C2)),将文本转化为引用并求和

  1. 选中 D2,向下拖拽填充柄,自动完成二月、三月……的汇总

方法二:一步到位(推荐)

=SUM(INDIRECT(A2&"!C:C"))

这个公式的工作原理:

  1. A2&"!C:C"

→ 构造文本字符串 "一月!C:C"

  1. INDIRECT(...)

→ 将字符串转化为真正的区域引用

  1. SUM(...)

→ 对该区域求和

写好第一个单元格后,向下拖拽填充柄,A2 会依次变为 A3、A4……工作表名也随之切换为一月、二月、三月……完美实现批量汇总。

验证:公式求值

如果你想知道 Excel 到底是怎么一步步算出结果的,可以使用 公式 → 公式求值 功能,逐步骤查看计算过程:

  1. A2&"!C:C"

"一月!C:C"

  1. INDIRECT("一月!C:C")

→ 转化为一月工作表 C 列的真实引用

  1. SUM(引用区域)

→ 返回求和结果

四、公式模板与扩展应用

通用公式模板

=SUM(INDIRECT(工作表名列 & "!C:C"))

其中"工作表名列"存放各工作表的名称,"C:C"是要汇总的列。

这个思路稍作修改,就能应对更多场景:

需求

公式

对不同工作表的 D 列求平均值

=AVERAGE(INDIRECT(A2&"!D:D"))

对不同工作表求最大值

=MAX(INDIRECT(A2&"!D:D"))

引用不同工作表的固定单元格

=INDIRECT(A2&"!B2")

对不同工作表计数

=COUNTA(INDIRECT(A2&"!C:C"))

五、要点总结

要点

说明

INDIRECT 的本质

将文本字符串转化为单元格或区域引用

使用前提

必须构造符合 Excel 引用规则的文本字符串

多表汇总关键

& 拼接工作表名和区域,构造 工作表名!区域 格式

相对引用的妙用

工作表名列使用相对引用,拖拽填充时自动切换

最终公式模板

=SUM(INDIRECT(工作表名列&"!C:C"))

小技巧:如果工作表名称中包含空格或特殊字符(如"1月销售数据"),引用时需要加单引号:=INDIRECT("'"&A2&"'!C:C")

写在最后

INDIRECT 函数的魅力在于:它让公式不再"死板"。你可以通过单元格中的文本动态地控制公式引用的目标,配合填充柄的拖拽,批量处理大量工作表变得轻而易举。

下次遇到几十个工作表需要汇总时,别再一个一个手动加总了,试试这个公式,你会发现——原来 Excel 还可以这么聪明。

如果这篇文章对你有帮助,欢迎分享给更多需要的朋友。


特别声明:这是利用WPS灵犀Claw将以前录制的视频生成的适合公众号发表的文章!AI太厉害了,将来掌握AI应该跟学办公软件一样,成为每个人的必备技能。

我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!

Excel、WPS表格函数大全
@墨云轩
河北省
浏览 255
收藏
9
分享
9 +1
1
+1
全部评论 1
 
亂雲飛渡
点赞学习
· 广东省
回复