原创作者: 卢子 转自:Excel不加班
昨天分享了全年12个工作表汇总,今天分享全年12个工作表查找。同样,卢子按两种形式进行说明。
1.工作表的格式一样,销售金额都在B列,现在要查询每个商品的销售金额。
稍微有点基础的,采用VLOOKUP函数这种用法。
=VLOOKUP(A2,'1月'!A:B,2,0)
2月、3月……12月,依次更改VLOOKUP函数的第二参数。
=VLOOKUP(A2,'2月'!A:B,2,0)
=VLOOKUP(A2,'3月'!A:B,2,0)
……
=VLOOKUP(A2,'12月'!A:B,2,0)
这种虽然可以解决问题,但是需要修改10多次,很容易改错。
而卢子却采用了另外的方法,每个工作表名称都列出来了,其实可以借助INDIRECT函数的间接引用。
=VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,0)
空调在某些月份没有对应值,显示错误值#N/A,可以嵌套函数IFERROR,让错误值显示0。
=IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,0),0)
2.工作表的格式不同,销售金额的列数不确定,现在要查询每个商品的销售金额。
1月的销售金额在C列。
2月的销售金额在D列。
其他就不依次截图,反正就是列数不确定。
有不少读者做表就非常随意,这个月觉得好像记录得不全面就增加几列,下个月觉得好像没必要记录这些又删除一些列,最后表格一团糟。
这样的表格还有救吗?
还好,有MATCH函数可以自动识别出销售金额在第几列。
=MATCH("销售金额",$1:$1,0)
将MATCH函数作为VLOOKUP函数的第三参数,原来的区域再修改大点即可解决问题。
=IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!A:Z"),MATCH("销售金额",INDIRECT(B$1&"!1:1"),0),0),0)
如果一时半会理解不了公式,建议收藏起来,这个公式经常会用到。
,