Excel 公式函数之逻辑判断 IF

条件判断是软件程序逻辑里重要组成部分。可以说没有条件判断,就没有程序。

函数 IF

=IF(B2>90, "优秀","及格")
=IF(A2="语文", "优秀","及格")
=IF(A2="语文", IF(B2>90, "优秀","及格"))

与(AND)、或(OR)、非(NOT)

逻辑判断少不了与、或、非三种操作。一般的程序语言里是通过 &&||!三种符号来表示。

对于Excel公式来说,则是通过公式函数来实现。

即不能写成

=IF( A2>100 && A2<200 , "Yes", "No")

而要写成

=IF( AND( A2>100, A2<200 ), "Yes", "No")

ORNOT的用法类似。

TRUE 和 FALSE

逻辑判断是为了得出 TRUEFALSE 的结论。这两者也是两个特殊的函数。没有参数,直接用来表示“真”或“假“。(见下面 IFS 中的例子)

用 IFS 简化嵌套 IF

比如根据分数给成绩分类。用 IF 函数的话是下面这样。

=IF( A2>90, "A", 
     IF( A2>80, "B", 
        IF( A2>70,  "C", 
           IF( A2>60, "D", "F")
     )
)

借助 IFS 函数则可以简化成下面这样。

=IFS( A2>90, "A", 
         A2>80, "B", 
         A2>70,  "C", 
         A2>60, "D",
         TRUE,    "F"
)

注意最后一个判断借助了 TRUE 作为判断条件。

Note:IFS 函数在 Excel 2016 之后的版本里才有。

SWITCH

上面的IFS的例子里用了大于号>来做判断。如果是用等号的号,则可以用SWITCH函数进一步简化。

比如用数字来表示星期几

=IFS( D1=1, "星期一", D1=2, "星期二", ... , D1=7, "星期日")

可以简化为

=SWITCH( D1, 1, "星期一", 2, "星期二", ... , 7, "星期日")

不过这种用法类似于一个查询表(Lookup Table)。也许使用 LOOKUP 相关的函数 更为合适。比如

=INDEX(B1:B7, D1)

又或者

CHOOSE(D1, "星期一", "星期二", ..., "星期日")