当前位置: 欣欣网 > 办公

会用IF函数{1,0}结构吗?Excel高手必会!

2024-03-01办公

编按:

详细讲解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)经典一对多

求销售一部销售的所有产品。

粉丝福利:免费课程,扫码领取学习

点击领取:全套Excel技巧视频+200套模板