关于Vlookup的用法,兰色写的教程够多的了,同学们估计也快看腻了。正当兰色觉得Vlookup不可能再有什么新用法时,这两天遇到的一个Excel问题,让我对它有了新的认识。
【问题】下图左表为员工1~6月份销售明细表,在右表J列中要求根据I列姓名,判断它的销售是否达标。判断规则:
1~6月销量均大于10为达标,有任一月份小于10则为不达标。
分析:
首先要根据姓名从左表中查找对应1~6月的销售,查找某个月可以,同时查找6个月难道要用6个Vlookup?
=IF(AND(VLOOKUP(I2,A:G,2,0)>10,VLOOKUP(I2,A:G,3,0)>10,VLOOKUP(I2,A:G,4,0)>10,VLOOKUP(I2,A:G,5,0)>10,VLOOKUP(I2,A:G,6,0)>10),"达标","未达标")
当然不用!可以用条件计数的方式完成判断
=IF(SUMPRODUCT((A2:A12=I2)*(B2:G12>10))=6,"达标","不达标")
注:Sumproudct可以对满足条件的多列进行求和、计数。
这个问题好像应该圆满解决了?
No! 如果此问题修改一下,就很难用Sumprdouct完成了。
1~6月销量均>10算达标。1月、4月除外(销售淡季不统计)
那公式改成
=IF(SUMPRODUCT((A2:A12=I2)*(B2:G12>10))=4,"达标","不达标")
不行,如果1或4月有一个月大于10,其他有3个月大于10也属达标,不属合要求。
看来还是需要逐月提取出数字进行对比。
到这儿,兰色突然想到原来分享过的用Vlookup隔列求和的示例。
【例】要求对2,3,5,6,8,9 数字进行求和
{=SUM(VLOOKUP(A2,A2:K2,,0))}
注:把要求和的列数放在大括号内,用逗号分隔。
上面这个示例只是求和,如果配合AND或OR进行判断,不就解决今天的问题了吗?一试果然成功。
=IF(AND(VLOOKUP(I3,A:G,,)>10),"达标","不达标")
由此,也引申出Vlookup的新用法,即
Vlookup的第三个参数使用常量数组形式从源表中提取出多个值,然后结合IF+AND/OR进行批量条件判断。
兰色说:Vlookup竟然也有新用法了,是不是很意外。Execl的魅力也在于此。当你觉得已完全掌握了Excel某个功能时,其实是你刚入门,了解越多就会发现不会的越多。
下周六直播课中,在讲函数时也会穿插讲解这个图表的做法。想听课的同学可以提前预约一下,开课时会有超强震动提醒。
领取专属 10元无门槛券
私享最新 技术干货