Excel里面的查找匹配问题是我们经常碰到的一类问题,一般来说VLOOKUP可以应对大多数情况,毕竟这个函数都不会的话那可不能说是个称职的白领了。
还记得VLOOKUP都有哪些用法么?快来回忆下老王写的文章吧!
哦对了,还有VLOOKUP函数的错误分析也一并送上。
但是今天我们不讲这个函数,我们来讲解个刁钻的问题。
咱们以前不是说过一对多么,现在我们来看看对多一的匹配问题。
比如下面有个商品类别对应表,我们需要在右边通过商品小类匹配出其对应的大类。
这里一个很明显的问题是,以前都是一条一条互相对应的,没有这种合并单元格的形式!比如这种的,你肯定知道怎么写公式!
所以我们先要搞清楚合并单元格之后,这些单元格内容都是啥,是同一个内容还是其他的。
如果是同一类内容,我们就可以当做上面图一样写什么VLOOKUP函数,或者INDEX+MATCH函数,或者INDIRECT,或者LOOKUP,或者FIND什么的。
所以我们先来检验下到底是不是,来看个动图。
什么???
只有第一个是对应的大类,后面的都是0,是不是很惊奇??
其实这个合并单元格在写公式的时候,合并后的区域相当于这样的。
所以啊!
所以啊!
我们就无法用以上函数的普通用法来做了,因为这样会匹配到空值,那怎么办呢?
没办法,只能用高级用法了!!!
我先把公式放出来,然后再稍微解释下。
这里用到了3个知识点:
【第一个是MATCH函数】 这个想必多数人都用过,MATCH函数的结果就是D2单元格内容在B1:B9中的位置,这里结果为9;
【第二个是INDIRECT函数】 参照上一步,这里引用的就是A1:A9的内容;
【第三个是LOOKUP函数】 这里只使用了两个参数,用的是LOOKUP(lookup_value,array)的用法,返回数组array中匹配到lookup_value的值。这里一个很关键的点就是我们的匹配值是“座”字,其原理类似于用一个很大的数字来匹配某一列数中最后出现的一个数字,因为LOOKUP函数返回的是最后一个匹配的结果。这里的“座”相当于一个很大的数字,因为拼音靠后嘛,所以其他的汉字就相对偏小了
不知道第三个大家理解了么。。。大家完全可以自己找一些数字或者汉字试一试的!!!实践才是检验真理的唯一标准!
公式其实并不复杂,但是写出来却不太顺利,虽然只有3个函数,但是这3个函数都不是简单函数,所以要是没法掌握的朋友,我的建议是。
。
。
。
。
以后一定别合并单元格,老老实实把大类数据重复录入!