合并单元格绝对是EXCEL中的一个痼疾,存在好多不规范使用合并单元格的情况。
如果VLOOKUP函数碰到合并单元格会怎么样呢?下面我们来讲解两种合并单元格使用VLOOKUP函数的情况。
/ 01 /
如下图,职务一列中合并了同类,我们在C2单元格输入公式:
=VLOOKUP(A2,$E$2:$F$4,2,0)
双击向下填充公式,会发现每个职务第一个姓名的补贴是正确值,其它姓名的补贴出现错误值。
为什么会出现这种情况呢?我们在D2单元格输入公式:
=A2
双击向下填充公式,会发现每个合并单元格区域中第一个单元格是有内容的,其它的单元格是没有内容的,通过引用单元格后显示为"0",A3:A5、A7、A9单元格没有内容,VLOOKUP公式肯定会返回错误值的。
那碰到这种情况,应该如何解决呢?我们把VLOOKUP的第一个参数再换成一个VLOOKUP公式即可解决,在C2单元格输入公式:
=VLOOKUP(VLOOKUP("座",$A$2:A2,1,1),$E$2:$F$4,2,0)
双击向下填充公式。
- 公式解析:
=VLOOKUP(VLOOKUP("座",$A$2:A2,1,1),$E$2:$F$4,2,0)
为什么用VLOOKUP("座",$A$2:A2,1,1)就可以查找正确的内容呢?
奥妙在这个"座"字上面,我们使用的是VLOOKUP函数的近似匹配功能(第4个参数为1),在查找汉字的时候是按照汉字的拼音顺序来查找的,而"座"(拼音zuo)的拼音是汉字中比较靠后的了,所以我们可以用它来查找最后一个文本,这也是一种比较固定的用法。
例如C5单元格中公式为"=VLOOKUP(VLOOKUP("座",$A$2:A5,1,1),$E$2:$F$4,2,0)",A2:A5数据区域中最后一个文本是"班长",所以公式进一步运算是"=VLOOKUP("班长",$E$2:$F$4,2,0)",这样就返回班长的补贴数值。
/ 02 /
如下图,我们根据左侧的表格,在右侧的表格中生成正确的结果。
这属于多条件查找,在一文中讲解了多条件查找是如何操作的。
但是在本例中,直接应用多条件查找是不行的,因为有合并单元格的存在,在前面我们讲到了合并单元格后会出现什么情况。
那该如何操作呢?
其实我们可以借助辅助列,在"日期"列前面插入一列,在A2单元格输入公式:
=VLOOKUP(9E+307,$B$2:B2,1,1)&C2
双击向下填充公式。
辅助列完成后,我们在H3单元格输入公式:
=VLOOKUP(F3&G3,A2:D9,4,0)
我们来看一下效果:
- 公式解析:
=VLOOKUP(9E+307,$B$2:B2,1,1)&C2
VLOOKUP的第4个参数是1,也就是我们使用的是它的近似匹配功能。
9E+307是科学计数法,意思是9*10^307,它是足够大的一个数,在EXCEL实际应用中经常被看作为最大数。
VLOOKUP(9E+307,$B$2:B2,1,1)也是一种比较固定的用法,是查找最后一个数字。