优秀的编程知识分享平台

网站首页 > 技术文章 正文

177 函数IF中第一个参数出现{1,0}代表什么意思?

nanyue 2025-01-18 22:56:42 技术文章 2 ℃

有个学员问了一个问题,叫古老师帮忙看一下,他们公司一个高手帮他写的一个公式,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函数的理解

当你了解了数组和逻辑值这个定义后,加上对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:提取数字

{1,0}除了能够应用在IF函数中,还可以应用到很多场景中,主要利用的就是数组重新构建,这里只是为说明{1,0}用法,提取数字有其他更佳解法不再讨论范围;

下图中的数字没有规律,在前在后在中都有,需要把数组提前出来,可以录入函数:

=CONCAT(TAKE(IFERROR(MID(B3,SEQUENCE(LEN(B3)),1)*{1,0},""),,1))

函数释义:

用LEN函数判断单元格中的字节长度,用MID函数把单元格内的所有字符分别分拆开,再分别进行运算,乘1和0,是数字的就留下,再用TAKE保留1列后,用CONCAT合并,效果如下:

案例2:重新构建数组

这个案例是一个非常经典的订单分配,这里利用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生产计划,关注古哥计划!

Tags:

最近发表
标签列表