举个例子,我们需要在总表中,汇总员工每个月的工资数据 ![]() 在每个子表当中,因为有员工的入职和离职,所以人员名单顺序是不固定的,但是员工姓名始终在A列,员工工资数据始终在C列 ![]() 乍一想,这个问题蛮难的,我们进行逐步的分解,寻找规律 1、直接计算如果我们直接手动的计算,那么首先计算1月的结果,我们输入的公式是: =XLOOKUP(B1,'1月'!$A:$A,'1月'!$C:$C) 查找值是B1单元格 查找列是1月表中的A列,结果列是1月表中的C列 因为我们要向右填充,而查找列结果列是不变的,所以需要F4固定列 ![]() 我们再计算2月的结果,需要使用的公式是: =XLOOKUP(B1,'2月'!$A:$A,'2月'!$C:$C) ![]() 2、总结规律求解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公式,就是帮你去掉双引号的过程 ![]() 3、INDIRECT单独介绍当我们在单元格中输入公式: =INDIRECT('A2')时,我们去掉INDIRECT公式,去掉双引号 等同于公式=A2,这个结果值就是B4了 ![]() 但是当我们输入公式 =INDRECT(A2)时,首先会计算A2的值是'B4' 然后它会去掉INDIRECT,去掉双引号,等同于公式=B4,所以它的结果会是数字3 你学会了么?留个作业, 你知道当我们输入公式=INDIRECT(B4)以及=INDIRECT('B4')的结果么? |
|
来自: 新用户68784481 > 《8.3应用》