IF函数{1,0}结构原理和用法
作者:小窝来源:部落窝教育发布时间:2023-09-24 19:51:54点击:1318
详细讲解IF函数的{1,0}结构的原理和用法。会灵活使用该结构的都是高手。
凡是做过反向查找的人,对IF函数的{1,0}(或者{1;0}结构都不陌生:它可以交换两列(或两行)数据。
(图中效果, Excel 2021版本以下的,可以先选中D2:E9,然后输入公式,最后按Ctrl+Shift+Enter三键结束。)
但是,它的原理是什么?它只能写成{1,0}吗?它有哪些用法?
今天我们来说说。
1.原理
用到两个原理,IF函数自身的取值逻辑和数组运算逻辑。
1)IF函数取值逻辑
=IF(条件,条件为真的结果,条件为假的结果)
条件为真,逻辑值就是TRUE,常用1表示;条件为假,逻辑值就是FALSE,常用0表示。
取值逻辑:当条件为真,在第二参数中取值;当条件为假,在第三参数中取值。
譬如:公式=IF(1,5,10),结果是5;公式=IF(0,5,10),结果是10。
2)数组逻辑
(1)数组运算要求行列一一对应。
如果两个数组行列不对应,会自动扩展,无法自动扩展的,缺失的部分将得到错误值。
(2)数组运算的结果也是一个数组。
其行数等于参与运算的数组的最大行,其列数等于参与运算的数组的最大列。
譬如,有如下两个数组。数组1:B17:C20,数组2:D17:E20,都是2列4行。
用数组2-数组1,结果也是2列4行的数组。用数组2的第1列减去数组1的第1列;数组2的第2列减去数组1的第2列;彼此是对应相减的,不会出现第2列减去第1列。行也是如此。这就是数组按行列一一对应运算。
如果运算的数组无法一一对应,单列单行数组可以自动按需进行复制扩展。
譬如,下方数组3只有单列,当用数组4减去它,其结果与数组6减去数组5的一样,说明数组3自动复制了一列出来。
非单列单行数组无法自动复制扩展,缺少对应的行列运算时会出现错误值。
譬如下方数组8有4行3列,而数组7只有4行2列,它们的结果应是4行3列的数组。因为数组7无法自动复制扩展,所以前方两列相减结果正常,第3列则得到错误值。
3){1,0}结构交换数据的本质
用公式=IF({1,0},C3:C6,B3:B6)交换下方数组A和B。
条件{1,0}是一行两列的数组;数组A和B都是4行1列的数组。它们的结果应该是4行两列。
具体的运行过程如下:
(1)首先3个数组都按数组规则自动扩展,都变成4行2列。
(2)然后按规则取值
条件数组第1列第1行是1,条件为真,所以在TRUE结果数组B中取第1列第1行的值;
条件数组第2列第1行是0,条件为假,所以在FALSE结果数组A中取第2列第1行的值。
最终结果:
2.结构变化
变化1:交换1和0的位置,如IF({0,1}……)
相比{1,0},{0,1}的结果第一列是FALSE中的第一列。
变化2: 可以是多个1或者0的数字,如IF({1,1,0}……)
条件中的第1个1,位于第1列,条件为真,所以在TRUE结果中找第1列;
条件中的第2个1,位于第2列,条件为真,所以在TRUE结果中找第2列;
条件中的0,位于第3列,条件为假,所以在FALSE结果中找第3列。
变化3:可以是任何数字,如IF({-1,2,0}……)
在Excel中,数字0表示FALSE,其他数字都能代表TRUE。
变化4:可以是公式结果,如IF(MOD(COLUMN(A1:C1),3)……)
把嵌套的公式结果作为条件。譬如MOD(COLUMN(A1:C1),3),实际等于{1,2,0}。
3.IF{1,0}结构经典运用
1)反向查找
如图。
2)多条件查找
譬如下方按部门与商品名称、日期查找销售数量。
公式:
=MAX(IF(($A$2:$A$10=$A14)*($B$2:$B$10=$B14),INDEX($C$2:$H$10,,MATCH(C$13,$C$1:$H$1,0))))
该公式比用VLOOKUP多条件查找简洁。
3)经典一对多
求销售一部销售的所有产品。
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。