干货十足!一文讲懂indirect函数在跨表汇总数据时的使用方法!
作者:老徐来源:部落窝教育发布时间:2022-05-18 17:30:26点击:13555
编按:
小伙伴们,大家好,今天咱们来学习一个非常强大的查找与引用函数——INDIRECT,保证让你几分钟以内学会INDIRECT函数在跨表汇总数据的使用!
indirect函数可以引用同一工作表、不同工作表、不同工作簿(必须打开)的数据。
最常用的语法=indirect(文本字符串形式指定的单元格地址)。
注意这里的关键词“文本字符串形式”,简单来说就是文本形式,如何理解呢?
比如,表1 的A3单元格内容是 “新包装小宠肠胃宝”,如果我们在D1单元格中使用indirect函数引用A3的内容,直接在参数中输入A3,结果是错误的,如下图:
但是如果我们输入的参数是"A3",则结果是对的:
原因就是:在Excel的函数眼里,A3、B2就等于某个单元格而不是文本。将A3加上引号"",它就变成了文本。
所以使用indirect函数的关键就是把单元格地址变成文本形式的地址。
使用连接符&可以得到文本串,所以如果我们用&将字母A和数字3链接起来作为参数输入,也是正确的:
由于indirect函数并不直接使用单元格地址,而是使用这种由引号或连接符串成的文本地址,所以很多人把它称为间接引用函数。
那么间接引用有何优势呢?那就是非常灵活!
单元格地址中的每个文字或数字可以分别引用其他单元格值或者用函数值表达,再用连接符&串起来变成文本形式的地址。
譬如我们需要把表2中A3单元格内容引用到表1的D1单元格中。
公式可以是=INDIRECT("表2!A3")
也可以是=INDIRECT("表2"&"!A3")
还可以用ROW或者COLUMN函数来生成字符串中的数字并连接起来=INDIRECT("表"&ROW(B2)&"!A"&COLUMN(C1)):
如果地址中的“表2”恰好是表1中某个单元格如B3单元格的值,还可以这么写=INDIRECT(B3&"!A"&COLUMN(C1))
这种灵活性在多表数据汇总到一个表中时作用巨大。
比如,我们来看下面这个案例。我们要从企业12个月的利润表(结构一致)上取出每个月的营业收入放在第一张表格上。
各月利润表
汇总表
比较笨的操作是如上图所示,一个个在输入公式,查找。
正确操作是在B2单元格输入=indirect(B1&"!C5"),然后右拉公式,1-12月的营业收入就全部引用过来了。
之所以右拉公式后能够自动引用2-12月份的营业收入,是因为B1&"!C5"在右拉过程中会逐次变为:
C1&"!C5"
D1&"!C5"
E1&"!C5"
F1&"!C5"
G1&"!C5"
......
这些文本字符串对应的内容分别是:
2月!C5
3月!C5
4月!C5
5月!C5
6月!C5
......
正好表示了不同分表的C5单元格地址。外面加上indirect函数,自然就把这些地址的数值提取出来了。
上面的案例继续延伸,如果我们将利润表中的每行都汇总显示到总表上,由于总表上报表项目的排序与每个月分表排序相同,我们可以使用公式 =INDIRECT(B$1&"!C"&ROW(5:5))下拉。
操作如下图所示。
当然,indirect函数还可以与column函数嵌套使用。比如,汇总表的样式发生了变化。原来月份作为列标题,现在月份作为行标题。列标题为各月分表转置后的报表项目。此时,我们可以在B2单元格输入公式 =INDIRECT($A2&"!C"&COLUMN(E:E)),右拉公式后在下拉公式即可。
操作如下图所示。
好啦,以上就是indirect函数的使用方法。
最后,再给大家留个思考题,如果在文章开始处D1单元格输入的公式是=INDIRECT(A2),结果是什么呢?
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
优秀员工组别查找?INDEX、OFFSET、LOOKUP……我有100个函数可以解决这个问题
版权申明:
本文作者老徐;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。