if函数的简写形式,学完你也能看懂高手的公式
昨天我们说了if函数的基本用法,今天来说下它的简写形式。很多时候,你看到高手的函数公式看不懂,发现不是少写了个参数,就是其他奇奇怪怪的写法,其实只是你不了解这个函数的特性。学完函数的简写,你会看懂很多高手的公式。
-01-
简写形式
1.第一参数的简写
正常情况下,第一参数是个条件判断,它的结果会返回true或false,也就是成立或不成立。其实也可以直接写true或false。如下图所示,当第一参数为true时返回1;为false时返回2。
其实它还可以是数值,昨天在语法结构里说过。非0值代表true,可以是正数,负数,小数等;0值代表false。如下图所示,当第一参数为正数,负数,小数时都返回第二参数“非0”;为0时,返回第三参数0。
2.第二参数的简写
尽管在语法结构里说第二参数是可选的,实际上它是不能完全忽略的,也就是它的位置要留出来。如下图所示,第2参数尽管没写,但是用逗号把它的位置留出来,此时返回0。如果后面用&连接其他内容,那么相当于返回空""。
3.第三参数的简写
第三参数可以像第二参数那样,用逗号留出位置不写内容。也可以完全忽略,位置都不用留,逗号都不用写。如下图所示,第1种留出位置不写内容,返回0。第2种位置都不留,全部忽略,返回false。
-02-
具体应用
1.根据身份证号判断性别
这个问题我们之前也说过好多次了,主要看第17位是奇数还是偶数,奇数为男,偶数为女。在B16单元格中输入公式=IF(MOD(MID(A16,17,1),2)=1,"男","女"),向下填充。
先用mid将第17位提取出来,然后用mod对第17位除以2求余数,再用得到的余数和1比较,如果等于1,那么第17位就是奇数,性别为男;否则为女。
其实,公式还可以简写,在C16单元格中输入公式=IF(MOD(MID(A16,17,1),2),"男","女"),向下填充。mod求余的结果不是0就是1,结果为1时,说明第17位是奇数,性别为男;结果为0时,说明第17位是偶数,性别为女。1又是非0值,代表true;0代表false,所以把男放在条件成立的位置,也就是第二参数。不知道你能不能看懂。这个公式就是第一参数为数值的简写用法。
2.求大于80的平均分
在D23单元格中输入公式=AVERAGE(IF(B21:B31>80,B21:B31)),按ctrl+shift+enter三键。这里用的是数组用法,并且if的第三参数忽略。
将B列的分数与80比较,大于80的,返回原来的分数,不大于80的返回false。这样形成一个数组,如C列所示。由于分数用的随机数,所以会变化。再用average对这个数组求平均分,就是大于80的平均分。因为average会忽略false。如果你把if函数的第3参数写为0,结果肯定不对。
当然条件求平均还可以用其他方法完成,如=AVERAGEIF(B21:B31,">80")或者=SUM((B21:B31>80)*B21:B31)/SUM(--(B21:B31>80))。今天主要说if函数简写的用法。