Vlookup公式,结合IF(1,0)两种用法,老板夸你厉害
打工人天天要用的Vlookup公式,必须要熟练各种用法,今天分享Vlookup结合IF({1,0})的两种用法
举个例子,左边是员工工资数据,需要根据姓名,查找匹配员工编号
但是在原始数据中,员工编号在前,姓名在后,这就是从右向左的逆向查找匹配了
VLOOKUP公式只能从左向右查找,所以我们要使用IF({1,0})来构建一个虚拟数组,让查找列在前,结果列在后,如果我们输入的公式是:
=IF({1,0},B:B,A:A)
当它等于1时,B列在前,当它等于0时,A列在后,所以得到了一个两列位置互换的结果
我们要根据员工姓名查找员工编号,只需要输入公式:
=VLOOKUP(E2,H:I,2,0)
如果我们不需要辅助列,直接一气呵成,就可以使用公式:
=VLOOKUP(E2,IF({1,0},B:B,A:A),2,0)
总结一下万能通用公式就是
=VLOOKUP(查找值,IF({1,0},结果列,查找列),2,0)
如下所示,我们需要根据两个条件,姓名和月份,来查找匹配工资情况
虽然现在是从左向右查找的,但是增加了一个条件,这个时候,我们同样可以使用IF({1,0})来构建一个数组,我们最终使用的公式是:
=VLOOKUP(F2&G2,IF({1,0},B:B&C:C,D:D),2,0)
总结多条件查找万能通用公式是:
=VLOOKUP(查找值1&查找值2,IF({1,0},查找列1&查找列2,结果列),2,0)
下次遇到直接套用吧,你学会了么?动手试试吧!
VLOOKUP+IF{1,0}逆向查找详解
在Excel实际操作中,VLOOKUP按顺序查找容易查找到结果,但遇到顺序不一致的情况,需要用到IF{1,0}数组函数转换顺序帮助实现。详解如下:
一、IF函数语法
IF(logical_test,value_if_true,value_if_false)
logical_test:要进行测试的条件,可以是比较运算符、数值、单元格引用等;value_if_true:当条件为真时返回的值;value_if_false:当条件为假时返回的值。Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。
二、VLOOKUP函数语法
VLOOKUP(lookup_value,table_array, col_index_num, range_lookup),VLOOKUP(查找值,查找范围,返回值所在列数,精确OR模糊查找)。其主要功能是根据用户提供的查找值,在数据表的首列中精确搜索该值,并返回同一行中指定列的内容。
三、VLOOKUP+IF{1,0}在逆向查找中的运用
正常情况下VLOOKUP函数只能实现从左向右的查找(正向查找),如果要实现从右向左查找(逆向查找)则需要与IF函数组合才能实现。 例如可以使用公式 =VLOOKUP(E2,IF({1,0},B:B,A:A),2,0) 实现按工号逆向查找姓名,如图所示。
四、IF{1,0}公式释义
IF是条件判断函数:=IF(测试条件,结果1,结果2),即如果满足\”测试条件\”则显示\”结果1\”,如果不满足\”测试条件\”则显示\”结果2\”。
IF{1,0}中,把数组{1,0}作为测试条件,对单元格数据进行判断。1(任意非0数值)都被当成逻辑值TRUE,0被当成逻辑值FALSE,。
这个公式的中IF的第一参数用到了常量数组{1,0},会分别进行判断,首先通过IF(1,B:B,A:A)得到B:B,然后再由IF(0,B:B,A:A)得到A:A,最后合并为一个新的数组,在这个新的数组中,B:B就跑到了A:A的左边,完成了两列数据的位置交换。
数字与逻辑值的对应关系中,0对应FALSE,1对应TRUE。对比两种写法中1和0的顺序关系有助于理解这种用法的原理。如下图:
177 函数IF中第一个参数出现{1,0}代表什么意思?
有个学员问了一个问题,叫古老师帮忙看一下,他们公司一个高手帮他写的一个公式,IF函数里面,第一个参数出现了{1,0},他理解不了这样写的含义是什么?(如下图所示)希望我能够帮他解释一下。
由于源数据比较大,做了一个简化处理,发现就是一个简单的VLOOKUP反向查找的案例,可能这位学员的Excel版本不怎么样,连XLOOKUP函数都没有,所以高手为他写了一个VLOOKUP的经典反向查找公式。就这个案例中的IF函数中出现的{1,0}来解释,需要先对数组有概念。
在Excel中,用大括号括起来的,都是一个数组,数组可以是一个,也可以一多个,区分为一维数组、二维数组等。这里以一维数组举例,在Excel录入垂直方向和水平方向两组数据:
=B3:B10,这是一个垂直的数组,鼠标移动到引用区域,自动转成数组的显示方式{1;2;3;4;5;6;7;8},注意这里是分号
=E2:G2,这是一个水平的数组,显示为{1,2,3},注意这里是逗号;
有了这个定义就很好理解 {1,0}是什么意思了,就是一个水平的一维数组,包含两个元素,数字1和数字0;
上面对数组做了简单的定义,还需要学习一个知识点,就是Excel中对于逻辑值的判定,这也是IF函数中非常重要的知识点。Excel中的逻辑值(Logical values)是一种表示真或假的数据类型,。
TRUE:表示真,成立,正确;
FALSE:表示假,不成立,错误;
而在如果逻辑值需要运算的话,其中1表示TRUE,0表示FALSE,如果需要运算的话,有三种方法,分别是N函数法,减负运算法,相乘法,效果如下图所示:
当你了解了数组和逻辑值这个定义后,加上对IF函数参数的了解,就非常容易理解{1,0}这样的写法了,先看IF函数的参数:
IF(logical_test,value_if_true,value_if_false)
转换中文,注意正确代表TURE,错误代表FALSE
IF(表达式,表达式正确返回的值,表达式错误返回的值)
所以IF中的{1,0},就是返回对应两个结果,其中1代表正确,0代表错误,因为是逗号,所以返回的是垂直方向的数组;回来上方VLOOKUP函数中的参数:
=IF({1,0},D3:D10,C3:C10)
函数释义:如果正确就返回D3:D10,错误返回 C3:C10,因为是逗号,所以返回垂直方向两列,效果如下图所示。这样相当于两列调换了一个位置,从而实现了VLOOKUP函数从左到右的查找。
{1,0}除了能够应用在IF函数中,还可以应用到很多场景中,主要利用的就是数组重新构建,这里只是为说明{1,0}用法,提取数字有其他更佳解法不再讨论范围;
下图中的数字没有规律,在前在后在中都有,需要把数组提前出来,可以录入函数:
=CONCAT(TAKE(IFERROR(MID(B3,SEQUENCE(LEN(B3)),1)*{1,0},\”\”),,1))
函数释义:
用LEN函数判断单元格中的字节长度,用MID函数把单元格内的所有字符分别分拆开,再分别进行运算,乘1和0,是数字的就留下,再用TAKE保留1列后,用CONCAT合并,效果如下:
这个案例是一个非常经典的订单分配,这里利用IF{1,0}重新构建的数组。订单的数量非常大,需要按包装数自动分配,这样就可以快速派单了。
录入动态数组函数一键展开:
=REDUCE({\”订单号\”,\”数量\”},B3:B5,LAMBDA(X,Y,VSTACK(X,IF({1,0},Y,BYROW(WRAPROWS(SEQUENCE(OFFSET(Y,,1)),OFFSET(Y,,2)),LAMBDA(X,COUNT(X)))))))
函数释义:
比较复杂,释义起来比较复杂……,直接看下图。
我是古哥:
从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。