Excle如何使用vlookup?
2023-01-28 餐饮美食网 【 字体:大 中 小 】
LOOKUP是一个充满了套路的函数,同时也是一个很强大很实用的函数,之前涉及到这个函数的教程估计能有几十篇。但是,关于这个函数,有一个提问率很高的问题始终没有说的太明白,就是LOOKUP(1,0/……)这个套路中的1和0/到底该怎么理解。例如这个公式=LOOKUP(1,0/((F2=$A$2:$A$13)*(G2=$B$2:$B$13)),$C$2:$C$13)中就有(1,0/……),今天单独来解释这个问题。
其实公式中的1就表示数字1,0就表示数字0,仅此而已。
这和VLOOKUP(A1,IF({1,0},B:B,A:A),2,0)中的1和0完全不同(想了解vlookup中的1和0是怎么回事可以留言,咱们下次解释)。
LOOKUP(1,0/……)中的关键部分是0/……这部分,咱们结合示例来看。
这个例子是一个多条件匹配的问题,按照姓名和品名匹配对应的销售数量。
注意0/后面是两个比较运算相乘,(F2=$A$2:$A$13)*(G2=$B$2:$B$13)中左边的部分是以姓名作为判断条件,右边的部分是以品名作为判断条件。
F2=$A$2:$A$13的结果是一组由FALSE和TRUE构成的数组。$A$2:$A$13中只有两个姓名与F2(侯启龙)一致,显示为TRUE,其他的都是FALSE。
G2=$B$2:$B$13的结果同样,与G2(空调)对应的都是TRUE,其他的都是FALSE。
两组逻辑值相乘的时候,TRUE=1,FALSE=0,按照这个规则得到的结果是一组1和0。
为了让大家看明白这个结果,我把两组逻辑值并排列出来,只有上下同时为TRUE的,结果才是1,否则都是0,这个大家应该都明白。
{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE}
{TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE}
不难看出,只有第二个位置上满足条件,至此,我们解释了0/后面的这一堆{0;1;0;0;0;0;0;0;0;0;0;0}是怎么来的。
这一连串的计算只是做了将条件转为逻辑值,再将逻辑值转为数字的过程。接下来再说0/,这里面的/就是除法,其实不用0/也行,用1/,2/,3/,0.5/都行,只是得到的结果不同。
0/得到一组包含错误值的数据,其中只有一个数字0。
用其他的数字也是一样的道理,比如我们用3/,得到的就是这样的结果。
搞清楚了数字的作用,再来看/。至于/能不能用别的,还是建议用除法,因为分母是一组由1和0构成的数组,其中的1对应的是满足我们设定条件的结果,0都是不需要的,只有分母为0才能得到错误值,因此这里推荐用/。
再来梳理一下,先通过比较运算把条件转换成逻辑值,再利用逻辑值计算把条件变成数字,最后用除法把不需要的内容变成错误值,需要的内容变成一个数字,这个数字的具体表示取决于分母,用0只是一种约定俗成的习惯,这就是0/((条件1=条件区域1)*(条件2=条件区域2))这个套路的原理。如果还有其他条件,增加分母的比较运算就可以了,只是要注意括号别放错位置。
最后就剩这个1是什么意思了,开头就说了,1就是数字1。如果用的0/,那么就可以用1,如果用的1/,数字1就要换成不小于1的数,例如2。
也就是说,LOOKUP(1,0/……)中的1和0,都是可以换成其他数字的,只要前面的数字不小于分母的数字即可,如果你用LOOKUP(1,2/……)的话,就会得出错误值。
至于为什么会这样,在官方的函数解释中说的明白:
§如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。
§如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。
如何自制蛋挞
肉火烧面怎么和面
奶茶几分糖好喝
过桥米线是哪里的?
面霜和乳液的区别
怎么摘隐形眼镜
粉饼和散粉的区别
冷烫和热烫的区别
高品质香水如何鉴别?用三步就可以解决
如何去除黑眼圈