上次的VLOOKUP基础入门,没有图也没有GIF,估计很难看得下去
VLOOKUP 之一
这次是多条件查找.这份问题源于我在公司遇到的情况:
从数据库导出的数据呢,对个人信息进行了脱敏处理,所以电话号码的末两位被隐藏了,变成了星号.但是我们又有一份有完整电话的发货单,要求对成交的学员发货.问题来了:

如果你是高级用户,那么你可以用SUMPRODUCT来解决.那就用吧,殊途同归,不妨碍.但是如果你是小白用户,看到这个问题,是不是很心痒痒想用VLOOKUP呢?这也是可以的
下面就是我要说明的,VLOOKUP的多条件查找
一般来讲,名字可能有重复的,手机号前9位也可能有重复的,但是呢,名字+手机号的组合一般是不会有重复的了.在这种情况下,首选是建立一个辅助列作为唯一识别字段,像下面这样

用&符号,还有LEFT函数组合成唯一字段.没毛病,然后用VLOOKUP,妥妥的.

就像如何把大象装进冰箱一样简单:
但是其实可以不用辅助列的.在一些比较变态的笔试题中会出现这种变态要求,比如我们公司的BI测试题就有,要求不用辅助列.我来的时候就做过这道题.所以可以这么写:

也可以这么写

这里,CHOOSE和IF的效果是一样的
我分解一下IF这一个公式
首先,我假定你们都是知道VLOOKUP的基本用法的,也就是这样的
VLOOKUP(查找值,范围,返回第几列,精确还是模糊)
VLOOKUP在这里的原理是一样的,就是多了一些其他的东西

比如第一个参数的位置,变成了
E2&LEFT(F2,9)
我相信你们应该懂这个,表示E2单元格联结F2单元格的前9位,也就是我们之前做的辅助列,是这样的

也就是要查找的值是"但老师131888888"
关键在于第二个参数那里,估计你们不太好理解IF为什么这么写.
IF({1,0},A:A&LEFT(B:B,9),C:C)
这是一种数组的写法.拆解成正常的写法,你们应该好理解一点.所以拆解一下,这实际上是两个IF的组合
1. IF(1,AA&LEFT(B:B,9),"随意填写反正不会用到")
2. IF(0,"随意填写反正不会用到",C:C)
IF的用法一直都是IF(判断条件,条件符合则这样,条件不符合则那样).看起来非此即彼的选择,实际上是可以鱼和熊掌兼得的,那就是写成IF({1,0},这样,那样)的数组函数.这样IF函数会先运行一遍{1},也就时'条件符合则这样'那部分,然后再运行一遍{0},也就是'条件不符合则那样',在我们的多对一函数中,借助IF形成了一个具体的多列的范围.也就是A:A&LEFT(B:B,9)作为范围的第一列,C:C作为范围的第2列,也就是{A:A&LEFT(B:B,9),C:C}这样一个两列N行的数据范围

所以啊,VLOOKUP第3个参数,我们要输入2,因为IF构造的范围只有2列啊
所以,是不是和普通的VLOOKUP一样的原理呢?
也就是,如何把大象和小象装进冰箱: