这一期的公式应用比较绕,是两个公式的嵌套使用,如果有看不懂的小伙伴,可以看看我前面几期的内容。
![67ec5fff7a1abddd09719081762a8087.png](https://i-blog.csdnimg.cn/blog_migrate/5a21c2c7284ff8e04cf7f7b4b77ed949.jpeg)
前面一期我们学习了INDIRECT函数的基本概念和基本用法,今天我们就来用INDIRECT函数解决一个实际的问题--汇总全年的工资表。
![4d29f79fd76cc32065a12de4ea5a1352.png](https://i-blog.csdnimg.cn/blog_migrate/dd223e1bd74f8a7ad0eefa2454b60316.jpeg)
上图所示的就是劳资人员常用工资表的样式,从图中我们可以看到,每个月的数据都是一个独立的工作表,然后又新建了一个单独的汇总表。现在,我们就来试试用INDIRECT函数把这些独立的工作表的数据汇总到汇总表里面。
![c2b6e085e97ca30176869488685101dd.png](https://i-blog.csdnimg.cn/blog_migrate/2b3871c9ebf6114ce5200acbfba55db9.jpeg)
上图就是汇总表的样式,我们需要按部门汇总每个月的工资总额。
划重点:在设计汇总表的时候,行标题或者列标题中必须有一个与各个分表的标签名一致,以便利用标题指向被引用的工作表。
我们看到上面两个表,汇总表的列标题就正好对应了每个分表的表标签名,这样我们就可以根据列标题来引用分表的数据。
方法一:sumif直接引用
我们先来看看,如果不使用INDIRECT函数,我们要实现汇总是怎么做的,还是看图:
![474eebbd0759a0dbf8dfe44af0fe7f64.png](https://i-blog.csdnimg.cn/blog_migrate/9d5a5679fca2b8cd6435af7633d9dee6.jpeg)
首先在图中的C3单元格输入公式:=SUMIF('1月'!$B:$B,$B3,'1月'!$V:$V),然后把这个公式复制粘贴到D3单元格,再把公式中的“1月”改成“2月”,依次类推直到12月。有没有觉得这样很麻烦呢?不知道你们怎么想,反正我是觉得很麻烦的。
方法二:sumif嵌套indirect的间接引用
我们再来看看用INDIRECT函数值怎么做的,继续看图:
![afeba4683ec998c9a60a636aa243406c.png](https://i-blog.csdnimg.cn/blog_migrate/04650d94b9e1b437814ee709d58f6452.jpeg)
在上图中,我们在公式中引入Indirect函数后的公式就变成了下面这样:=SUMIF(INDIRECT(C$2&"!$c:$c"),$B3,INDIRECT(C$2&"!$V:$V"))
公式解析:INDIRECT(C$2&"!$c:$c")--首先获取C$2的值“1月”,然后把它和字符串"!$c:$c"进行连接,得到一个新的字符串:'1月'!$c:$c。最后,Indirect函数在将这个字符串转换成相应的单元格地址并返回该单元格的值。
第三个参数的运算过程跟第一个参数的运算过程是一样的。
我们在C3单元格完成了公式的输入后,就可以直接进行向右、向下的拖动完成公式的填充。这样是不是很方便呢。
Indirect函数的引用过程,我们可以通过插入函数的对话看到:
![d04d7ea97cc78aecce7dcd5e4f4ce749.png](https://i-blog.csdnimg.cn/blog_migrate/2cdba55d12bbe6ee23308414ab4dd793.jpeg)
在上面的Indirect函数对话框中,我们可以清楚的看到Indirect函数的的引用值。
总结:
在这个实战的例子中,我们使用了Sumif函数和Indirect函数的嵌套使用,我们用Inidrect函数的返回值替换了sumif函数中的第一参数和第三参数,从而实现了跨表格的单元格引用。
虽然用sumif直接引用也可以实现同样的功能,但是当数据量变大的时候,就体现出间接引用的优势了。
最后,欢迎留言交流,感谢顺手关注。。