Excel|IF函数构建⼆维内存数组以及vlookup多值、反向、模糊查1 IF函数及以常量数组做为判断条件
⾸先了解⼀下IF函数的语法结构:
if(条件,条件为真的返回值,条件为假的返回值)
现在我们尝试使⽤其他数值代替真假,excel使⽤0代替假,使⽤⾮0的数值都可以代替真。
那么⽤⼀个数组作为条件怎么理解呢,我们可以尝试⼀下。可以发现0放在前⾯条件是假,1放在前⾯条件为真。
2 VLOOKUP函数单条件查
然后我们了解⼀下VLOOKUP函数的语法结构:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
⽤中⽂表⽰就就是:
VLOOKUP(查值,查区域,结果所在查区域的列序号,模糊查还是精确查)
下⾯根据案例来实践⼀下。
VLOOKUP单条件查:
VLOOKUP通过if({1,0},,,)实现单条件查:
通过公式求值以看到if结构得出的值:
3 VLOOKUP函数逆向查
VLOOKUP通过if({0,1},,,)实现单条件反向查(⼆维内存数组):
通过公式求值以看到if结构得出的值(⼆维内存数组):
这⾥为什么⼀定要⽤条件数组呢,因为如果直接使⽤0或者1作为条件,并不能返回⼀个可以作为vlookup查的内存数组。⽽⽤{1,0}做为条件,可以返回⼀个内存数组。
个内存数组。
4 VLOOKUP多条件查
如下图所⽰,需要根据SKU和SPE查出QTY,可以通过两列的数据联合到⼀起,应⽤if({0,1},,,)结构实现⼀个内存⼆维数组,如下:
在H2单元格输⼊数组公式,按Ctrl+Shift+Enter 组合键结束公式
=VLOOKUP(F2&G2,IF({1,0},$B$2:$B$10&$C$2:$C$10,$D$2:$D$10),2,0)
公式说明:
⾸先我们查值为F2&G2就是把SKU和SPE连接在⼀起;
查区域使⽤IF({1,0},$B$2:$B$10&$C$2:$C$10,$D$2:$D$10)把SKU列和SPE列连接在⼀起,也就是把SKU和SPE组合为⼀列,然后QTY为第2列,返回⼀个多⾏两列的内存⼆维数组,再⽤VLOOKUP查询即可。
5 VLOOKUP使⽤通配符查
当我们在查的时候,只根据查值的⼀部分数据查时,可以使⽤通配符查询,例如下图,需根据名称给定的简称查出数量
在E2单元格输⼊公式:=VLOOKUP('*'&D2&'*',$A$2:$B$8,2,0)
公式说明:*是通配符,可以代表任意多个字符,这⾥根据查名称的简称,因为查区域跟查值不符,如果不使⽤通配符必定会返回错误值,'*'&D2&'*'表⽰区域中包含蓝莓的就会被到
6 VLOOKUP返回多列数据
多列vlookup函数的使用方法如下案例,需要根据查姓名返回多列数据,那么如何输⼊⼀个公式搞定⼀个区域的数据查呢?
G2值对应的公式:=VLOOKUP($F$2,$A:B,MATCH(G$1,$A$1:$E$1,0),0)
H2值对应的公式:=VLOOKUP($F$2,$A:C,MATCH(H$1,$A$1:$E$1,0),0)
I2值对应的公式:=VLOOKUP($F$2,$A:D,MATCH(I$1,$A$1:$E$1,0),0)
公式说明:MATCH(G$1,$A$1:$E$1,0)
公式其它都没什么变化,主要是第三个参数返回的列序号,因为公式的移动填充,我们不能确定它是返回第⼏列,所以在这⾥我们使⽤
MATCH(G$1,$A$1:$E$1,0)帮我们去查科⽬所在查区域中的列序号,最后返回⼀个准确的数据。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论