首先了解一下IF函数的语法结构:
if(条件,条件为真的返回值,条件为假的返回值)
现在我们尝试使用其他数值代替真假,excel使用0代替假,使用非0的数值都可以代替真。
那么用一个数组作为条件怎么理解呢,我们可以尝试一下。可以发现0放在前面条件是假,1放在前面条件为真。
然后我们了解一下VLOOKUP函数的语法结构:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
用中文表示就就是:
VLOOKUP(查找值,查找区域,结果所在查找区域的列序号,模糊查找还是精确查找)
下面根据案例来实践一下。
VLOOKUP单条件查找:
VLOOKUP通过if({1,0},,,)实现单条件查找:
通过公式求值以看到if结构得出的值:
VLOOKUP通过if({0,1},,,)实现单条件反向查找(二维内存数组):
通过公式求值以看到if结构得出的值(二维内存数组):
这里为什么一定要用条件数组呢,因为如果直接使用0或者1作为条件,并不能返回一个可以作为vlookup查找的内存数组。而用{1,0}做为条件,可以返回一个内存数组。
如下图所示,需要根据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查询即可。
当我们在查找的时候,只根据查找值的一部分数据查找时,可以使用通配符查询,例如下图,需根据名称给定的简称查找出数量
在E2单元格输入公式:=VLOOKUP('*'&D2&'*',$A$2:$B$8,2,0)
公式说明:*是通配符,可以代表任意多个字符,这里根据查找名称的简称,因为查找区域跟查找值不符,如果不使用通配符必定会返回错误值,'*'&D2&'*' 表示区域中包含蓝莓的就会被找到
如下案例,需要根据查找姓名返回多列数据,那么如何输入一个公式搞定一个区域的数据查找呢?
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)帮我们去查找科目所在查找区域中的列序号,最后返回一个准确的数据。
联系客服