举个例子,我们需要在总表中,汇总员工每个月的工资数据
在每个子表当中,因为有员工的入职和离职,所以人员名单顺序是不固定的,但是员工姓名始终在A列,员工工资数据始终在C列
乍一想,这个问题蛮难的,我们进行逐步的分解,寻找规律
如果我们直接手动的计算,那么首先计算1月的结果,我们输入的公式是:
=XLOOKUP(B1,'1月'!$A:$A,'1月'!$C:$C)
查找值是B1单元格
查找列是1月表中的A列,结果列是1月表中的C列
因为我们要向右填充,而查找列结果列是不变的,所以需要F4固定列
我们再计算2月的结果,需要使用的公式是:
=XLOOKUP(B1,'2月'!$A:$A,'2月'!$C:$C)
求解1月和2月的公式分别是:
=XLOOKUP(B1,'1月'!$A:$A,'1月'!$C:$C)
=XLOOKUP(B1,'2月'!$A:$A,'2月'!$C:$C)
里面只是变动了引用的表名
而INDIRECT公式,正好可以间接引用文本
=XLOOKUP(B$1,INDIRECT($A2&'!$A:$A'),INDIRECT($A2&'!$C:$C'))
向下,向右填充就得到了所有的结果
那么有小伙伴可能会问,如果我们不使用IDIRECT公式,而直接引用呢?
=XLOOKUP(B$1,$A2&'!$A:$A',$A2&'!$C:$C')
它的结果是错误的
我们可以点击数据选项卡,公式求值,来了解公式计算过程,你会发现,它的第2,第3参数,都多了一个双引号,而INDIRECT公式,就是帮你去掉双引号的过程
当我们在单元格中输入公式:
=INDIRECT('A2')时,我们去掉INDIRECT公式,去掉双引号
等同于公式=A2,这个结果值就是B4了
但是当我们输入公式
=INDRECT(A2)时,首先会计算A2的值是'B4'
然后它会去掉INDIRECT,去掉双引号,等同于公式=B4,所以它的结果会是数字3
你学会了么?留个作业,
你知道当我们输入公式=INDIRECT(B4)以及=INDIRECT('B4')的结果么?
联系客服