​​Excel技巧:一文搞懂 IF{1,0} 的用法,第一波!

​​Excel技巧:一文搞懂 IF{1,0} 的用法,第一波!

转自知乎,https://zhuanlan.zhihu.com/p/377654196

 

一、前言

在平时的工作中,经常会用到Vlookup 函数,在 Vlookup 函数中,也经常套用 IF({1,0},...)。但是,每次都只是在不停的CV公式,从来没有去探究,为什么可以这么实现。

本文,就详细介绍一下 IF 函数数据变换原理。

如下图所示,选中 H3 单元格,输入公式:=IF({1,0},C3:C7,B3:B7),然后,再按下 Shift+Ctrl+Enter。可以看到:C列和B列,进行了互换。

006fRELkly4gzz1qdy6k8j30je07ut9e

再看一组效果:

006fRELkly4gzz1qeminuj30i302zmx0

由此可见,公式 IF({1,0},……),分别返回IF的两个值,同时把两个结果组成一个数组。

当然,条件不仅限于两个,可以是多个,就是不仅限于{1,0},也可以是{1,0,1}、{1,0,0}、{1,0,1,1}等,千变万化,那么就返回多个对应的结果。

 

二、原理介绍

IF 函数返回单一值的语法:IF(条件,返回值1,返回值2),如果条件为真,函数的结果为:“返回值1”,如果条件为假,函数的结果是:“返回值2”。常用的条件返回值为单一值TRUE或FALSE,返回的结果也为单一值。

当条件返回值有多个时,返回的结果是什么样子的呢?公式 IF({1,0},返回值1,返回值2) 中,条件返回值就有1和0两个,1在EXCEL条件判断中表示TRUE,0表示FALSE。当返回1时,结果为返回值1,当返回值为0时,结果为返回值2,也就是说:公式IF({1,0},返回值1,返回值2) = “返回值1”,“返回值2”。

 

1、关于数组

知识点

  • 逗号分隔是水平数组,分号分隔是垂直数组。
  • {1,2,3,4} 是一个数组,一个数组能存储多个数值,数组的表示方式是 {}。

{1,0}是个水平数组,它有两个值,一个是1,另一个是0。

{"张三";"李四";"王五"} 是一个垂直数组,它有三个值。

使用数组公式时,必须先选中对应的单元格区域范围,比如 {1,0},就必须选中一行两列的单元格,{1;0}要选中两行一列的单元格,然后再输入对应的数组公式,再同时按住 CTRL + SHIFT + ENTER 三键结束。

2、第一组公式:IF({1,0},...)

公式及效果,如下图所示:

006fRELkly4gzz1qehoebj30ik0acdgi

图 1 ,公式:=IF({1,0},B1:B4,A1:A4)

下面,对该公式进行解释:

  • IF函数的第一个参数:{1,0},是一个 一行两列 的数组常量,有两个元素;
  • IF函数的第二个参数、第三个参数:均是一个 四行一列 的数组。

 

!!!重要知识点Excel函数数组规则:在进行计算的时候,数组元素不一致,会进行数组扩展!!!

因此,IF 函数进行数组扩展后,IF 函数的三个参数都变成 四行两列 的数组,各有8个元素,分别是:

  • 第一个参数,扩展后变成:{1,0; 1,0; 1,0; 1,0}
  • 第二个参数,扩展后变成:{b1,b1; b2,b2; b3,b3; b4,b4}
  • 第三个参数,扩展后变成:{a1,a1; a2,a2; a3,a3; a4,a4}

此时,我们可以确定:这个数组公式需要重复计算8次,并返回一个四行两列的数组。

  • 第一次计算,分别取三个参数的第一个元素,组成普通公式=IF(1,b1,a1),根据数值类型自动转换规律,1被转换为逻辑值TRUE,所以计算结果为b1,该结果为返回的数组中 第一行第一列 的值;
  • 第二次计算,分别取三个参数的第二个元素,组成普通公式=IF(0,b1,a1),根据数值类型自动转换规律,0被转换为逻辑值FaLSE,所以计算结果为a1,该结果为返回的数组中 第一行第二列 的值;
  • 第三次计算,分别取三个参数的第三个元素,组成普通公式=IF(1,b2,a2),计算结果为b2,该结果为返回的数组中 第二行第一列 的值;

以此类推,数组公式,及结果,如上图1中展示。

 

3、第二组公式:IF({0,1,1},...)

公式及效果,如下图所示:

006fRELkly4gzz1qe029lj30ij0ac74z

图 2,公式为:IF({0,1,1},A1:C4,E1:E4)

公式解释:可将 IF 函数的第二个参数中的某列,用第三个参数取代

006fRELkly4gzz1qdxvu1j30ii0acq3k

4、第三组公式:IF({0,1;1,0;...},...)

006fRELkly4gzz1qektv2j30il0acaap

注意:逗号 表示 列分割,分号 表示 行分割

006fRELkly4gzz1qe18koj30il0acgm9

注意:逗号 表示 列分割,分号 表示 行分割

公式解释:可实现交错替换列

由于在同一维度上因大小不同而进行的扩展,将以#N/A值填充

如果要生成四行,需要写成:=IF({0,1;1,0;0,1;1,0},A1:A4,B1:B4)

006fRELkly4gzz1qe11szj30ik0ac0td

 

如果行数多,IF 函数的 第一个参数,继续使用数组常量的话,就需要输入相同数量的行,显然这样做是不可能的。

因此,需要把数组常量改为隐式数组,我们可以改用以下数组公式:

=IF(MOD(ROW(A1:A4),2)-{1,0},A1:A4,B1:B4)

006fRELkly4gzz1qe6x66j30ik0acjs2

 

​快来试试吧

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

2022021703525891-174

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

阅读剩余
THE END