网站首页 > 技术文章 正文
Hello,大家好,今天跟大家讲解下在vlookup的反向查询与多条件查询中经常出现的IF{1,0}它究竟是什么作用,以及整个函数是如何计算的,最近有粉丝问道这样的问题,发了视频很多人表示没看懂,今天分享一篇文章来跟大家详细的讲解下,想要理解这个公式,关键是了解数组的计算规则
一、数组是什么?
我们常见的数据都是独立的一个一个的存放的单元格中,而数组是将一组结构相同的数据按照一定的规律进行排列组成的,组成数组的数据我们统称为元素,元素可以是:数值,文本,日期,逻辑值或错误值等,简单来说只要这一组数据的结构是相同的即可。
数组中的元素共同参与计算,不能单独计算。数组中的元素都是用大括号括起来的,并且在填充数组的时候我们需要按CTRL+SHIFT+回车来三键填充公式
如下图所示绿色的数据区域就是一个数组,在编辑栏中可以看到从1到6是用大括号括起来的
前面提到:数组中的元素共同参与计算,不能单独计算,我们来看下效果,比如在这里我们为数组+1。首先选择对应的数据区域,然后在编辑栏中选择数组区域,直接为这个区域加+1然后按下Ctrl+shift+回车填充公式。
结果会得到一列新的数组,它们的元素个数是一一对应的,并且所有的元素都会增加1,这就是数组运算的特点
想要理解vlookup+IF{1,0},数组的知识我们了解这么多就可以了,如果你还想了解数组的更多内容,可以参考下这篇文章
二、公式解析
我以多条件查询的公式为例跟大家讲解下公式的计算过程,如下图我们想要查找行政部张飞的考核得分,只需要将公式设置为:=VLOOKUP(E2&F2,IF({1,0},A2:A12&B2:B12,C2:C12),2,FALSE)即可找到正确的结果,首先我们来分析这个公式的构成
第一参数:E2&F2,将姓名与部门连接在一起构成一个新的查找值:张飞行政部
第二参数:IF({1,0},A2:A12&B2:B12,C2:C12),利用if函数构建新的查找区域,这个我们下面着重讲解
第三参数:2,表示我们查找的结果在查找区域(第二参数)的第二列
第四参数:0,表示精确匹配
这个公式的最难理解的参数就是它的第二参数,下面我们来着重的讲解下
三、{1,0}的运算原理
Vlookup函数的第二参数它的主体是一个IF函数,所有首先我们来看下这个函数的具体参数与构成
公式:=IF({1,0},A2:A12&B2:B12,C2:C12)
第一参数:{1,0},IF的第一参数的结果是一个逻辑值,现在却是{1,0},在这里我们可以将1看做是true条件正确,将0看作是false条件错误,还需要注意的是1跟0是用大括号括起来的,所以它是一个数组
第二参数:A2:A12&B2:B12,它的作用是将姓名列的数据与部门列的所有连接在一起
第三参数:C2:C12,考核得分所在列的数据
第一个参数是一个数组,它会与后面的第二与第三参数分别计算从而产生一个新的数组,在下图中蓝色区域是第二参数的结果,黄色区域是第三参数的结果,我们来看下这个函数的计算结果
第一步:函数会将1代入IF函数的第一参数,表示条件正确,IF函数就会返回它的第二参数也就是:狄仁杰财务部。
第二步:函数会将0代入IF函数的第一参数,表示条件错误,就会返回第三参数结果为90
至此第一行对应的数据就计算完毕了,随后会进入第二行
第三步:将1代入第一参数,条件正确就会返回函数对应的第二参数结果为王生安财务部
第四步:将0代入函数,表示条件错误,这时候函数会返回64这个结果
以此类推,函数会将所有对应的数据都计算一次,得到右侧的二维数组,这个就是vlookup函数的第二参数,这也解释为什么要将vlookup函数的第三参数设置为2
以上就是今天分享的全部内容,相信对于很多人来说今天的分享是比较难的,关键是要理解数组的计算方式。
我是Excel从零到一,关注我,持续分享更多Excel技巧
猜你喜欢
- 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连接状态的多种判断方法
- 05-09Linux 安装Oracle11.2.0.4 (静默安装法)
- 05-09Oracle 10g安装64位图解流程(Oracle 10g安装64位图解流程图怎么画)
- 05-09Centos7命令行安装Oracle11g(centos7安装oracle11g数据库)
- 05-09Vite 的实现原理,确实很巧妙(深入vite原理)
- 05-09微信小程序中使用云函数进行开发(微信小程序创建云函数)
- 05-09详细讲解npm install命令执行,都干了哪些事情?
- 05-09如何在 Node.js 中使用 .env 文件管理环境变量 ?
- 05-09离线环境下运行Vue项目(离线安装vue-cli)
- 最近发表
-
- Linux 安装Oracle11.2.0.4 (静默安装法)
- Oracle 10g安装64位图解流程(Oracle 10g安装64位图解流程图怎么画)
- Centos7命令行安装Oracle11g(centos7安装oracle11g数据库)
- Vite 的实现原理,确实很巧妙(深入vite原理)
- 微信小程序中使用云函数进行开发(微信小程序创建云函数)
- 详细讲解npm install命令执行,都干了哪些事情?
- 如何在 Node.js 中使用 .env 文件管理环境变量 ?
- 离线环境下运行Vue项目(离线安装vue-cli)
- 《小鑫发现》之GraphQL框架Prisma
- 如何写一个webpack插件(一)(webpack常用插件和loader)
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)