有很多同学好奇这个结构=IF({1,0},B4:B7,A4:A7)的含义:
其实只要弄清楚了数据规则,这个结构不难理解。
首先,If的基本用法:
=IF(条件,是则结果,否则结果)
这三个参数都是单个的值,现在我们进行一下数组扩展,先把第二个参数和第三个参数扩展成一列四行,即:
=IF(条件,B4:B7,A4:A7)
这要一来,当条件为逻辑真时,这个公式的结果是B4:B7;当条件为逻辑假时,这个公式的结果为A4:A7。
而逻辑真除了用True以外,还可以用不为0的数值,常用的是1;逻辑假除了用Fasle以外,还可以用数值0,公式就变成了:
{=IF(1,B4:B7,A4:A7)}
{=IF(0,B4:B7,A4:A7)}
让我们先记住这两个公式的结果。
再来看{1,0},这是一个一行两列的常量数组排列。因为是一行两列,所以行方向上可以扩展,比如就扩展成4行两列吧:
那么当这个{1,0}放到If的条件参数里去时,B9:B12中结果为1的,就会返回If函数对应的是则结果;C9:C12中结果为0的,就会返回If函数对应的否则结果。
不过因为数组公式影响运算速度,所以现实中的反向查找更建议使用Index套Match结构,当然,最好是不要让你的数据存在反向查找的麻烦。
这篇文档我一直以为是我自己写的,因为我写过之后就再也没有打开看过,不过发给过别人几次,等到这次打开一看才发现截图里面有“Excel精英培训”论坛的标记,或许是我当时用了那位大佬的图吧,或者直接copy了别人的帖子,以上!