网站首页 > 技术文章 正文
有个学员问了一个问题,叫古老师帮忙看一下,他们公司一个高手帮他写的一个公式,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生产计划,关注古哥计划!
猜你喜欢
- 2025-01-18 弱类型语言的php对于 0 、"0"、"000" 、"00" 判断与处理问题
- 2025-01-18 word中公式输入方法
- 2025-01-18 VLOOKUP函数之另类用法,让领导对你刮目相看
- 2025-01-18 LOOKUP中0,1是什么鬼,困扰我多年的疑惑,这课讲明白了
- 2025-01-18 Excel – 在多个匹配结果中,按规定查找出第n个结果
- 2025-01-18 从入门到提高一一函数定义域
- 2025-01-18 C语言return 0一定要有吗?
- 2025-01-18 什么是0℃恒温器?
- 2025-01-18 VLOOKUP函数只能从左向右匹配查找?与IF函数搭配实现逆向查找
- 2025-01-18 TCP连接状态的多种判断方法
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)