以下从语句的规则、一般性用法、单条件、多条件等方面全面介绍IF函数的用法。

函数语法介绍

01

IF函数是我们经常用到的运算函数,它存在3个字段参数,分别为:测试条件, 当判断为真的返回值(真值),当结果为假的返回值(假值)。

02

条件字段用来定义后续的返回值条件,直接输入参考条件,例如下图,在B2>90的后面还并立了一个C2>90,就表示需要B和C两行均大于90,多个条件可以使用AND函数用括号隔开。

03

判断返回真值则是在使用条件字段匹配后,符合的数据,内容就是你想要在表格中展现出来的字符。例如下图,我们希望把通过条件的情况在目标单元格内显示为“是”,就把真值写为“是”,注意,如果填充的是内容(包括文字、数字),需要添加英文双引号,否则无法正常显示。

04

判断返回假值则和真值相反,是对不符合条件的情况进行赋值,内容可以自行添加,同样记得添加英文双引号。

IF函数不完整语法

01

IF语句是可以只有条件语句和真值的,在一般情况下,我们会对返回真值和返回假值都进行填写,但是某些情况下,我们不需要假值,则可以直接不填写,如下图。如果判断不符合条件,则会直接返回“FALSE”这个结果。

02

但是如果我们将语法改成(条件,真值,)真值后仍然有逗号,但是不填写任何内容,那不符合条件的情况返回的就会是“0”。

03

当然,真值和加值不仅可以用数字,用文字,也可以直接用逻辑值,TRUE和FALSE,这时候真值假值都不需要再用双引号标注。

IF函数多条件使用方法

01

以上说了单条件筛选的方法,下面以阶梯分段条件来介绍一下,如何通过多种嵌套的条件来作为条件函数。

02

例如下图,我们想要把1100-1500分为三个区间,计算特定单元格的数据对于三个区间内的值。首先按照区间对应好系数,按照1100-1300,1300-1500,1500以上分为三个阶梯。

03

现在我们按照系数开始来写条件语句,以1100-1300的区间条件为例。
第一条件字段,AC123>1300,200,代表在整个区间内,如果目标值大于1300,则输出200这个数字。
第二条件字段,IF(AC123>1100,AC123-1100,0),代表如果高于1100,低于1300(上一个条件字段会并行,组成区间),则输出AC123-1100的运算结果。
第三个字段,“0”。代表如果不符合以上两个数据字段的话,直接输出0 。

04

在其它区间同样按照这个规则来写语句。将条件里面的区间改为当前计算区间。如果需要在一个单元格输出整个三个区间的结果呢?我们需要用到多个IF条件函数嵌套,如下图。

05

我们来详细解释下这个多层嵌套的IF函数是什么意思。
如下图,这个公式实际上有5个区间,每个IF之后代表了一个区间,最后一个假值之前不用IF。
整体函数结构如下:IF(区间1,真值1,IF(区间2,真值2,IF(区间3,真值3,IF(区间4,真值,4,区间5)))),每个IF后面都有完整的真值和假值,只不过假值的输出不是一个数字或者一个文字,而是一个新的IF语句,通过这种方式递归计算,直到把所有区间条件全都匹配完。
下面详解一下实际的函数:
这个公式第一段:S27<AG27*1000,0。代表如果S27的值低于AG27乘以1000的区间,则本单元格输出值为0。
第二段:IF(S27<AG27*1100,(S27-AG27*1000)*0.16。代表如果S27的值不符合上一个区间的条件(需要输出假值),但是满足本区间:小于AG27乘以1100的值,那么把S27减去1000倍AG27的差,这个差乘以0.16作为本单元格的输出值。
第三段:IF(S27<AG27*1300,100*AG27*0.16+(S27-AG27*1100)*0.2。代表如果S27的值不符合前两个区间的条件,但是同时满足小于AG乘以1300的值,那么本单元格的输出结果是100*AG27*0.16+(S27-AG27*1100)*0.2的运算结果。
同理,第四段、第五段就是在均不满足前面三个、四个区间的基础上,但是满足另外一个区间的情况下的输出方式。
最后,切记每个IF语句的括号都要括号回,因此整体函数写完之后,有几个IF就要有几个括号回,否则IF语句不能成立。