跳转至

IF函数

IF()函数详解

一、IF()函数基本介绍

用途

根据条件判断返回不同的值

语法

IF(logical_test, value_if_true, value_if_false)

参数说明

参数 是否必需 说明
logical_test 必需 逻辑判断表达式(结果为TRUE或FALSE)
value_if_true 必需 条件为TRUE时返回的值
value_if_false 必需 条件为FALSE时返回的值

二、基础示例

示例数据表1:学生成绩判断

A B C D
学号 姓名 成绩 是否及格
S001 张三 85
S002 李四 58
S003 王五 92
S004 赵六 45

基础用法

  1. 简单判断是否及格(60分及格)

    =IF(C2>=60, "及格", "不及格")
    

  2. 多等级判断

    =IF(C2>=90, "优秀",
        IF(C2>=80, "良好",
            IF(C2>=70, "中等",
                IF(C2>=60, "及格", "不及格")
            )
        )
    )
    

  3. 与AND函数结合

    =IF(AND(C2>=60, C2<=100), "有效成绩", "无效成绩")
    

  4. 与OR函数结合

    =IF(OR(C2<0, C2>100), "异常分数", "正常分数")
    


三、实际应用场景

应用1:员工考勤奖金计算

A B C D
员工ID 姓名 出勤天数 奖金
E001 张三 22
E002 李四 18
E003 王五 25
E004 赵六 20
=IF(C2>=22, 500,
    IF(C2>=20, 300,
        IF(C2>=18, 100, 0)
    )
)

应用2:销售提成计算

A B C D
销售员 销售额 提成比例 提成金额
张三 150000
李四 80000
王五 250000
=IF(B2>200000, B2*0.1,
    IF(B2>100000, B2*0.08,
        IF(B2>50000, B2*0.05, B2*0.03)
    )
)

四、嵌套IF函数

嵌套语法

IF(条件1, 结果1,
   IF(条件2, 结果2,
      IF(条件3, 结果3, 默认结果)
   )
)

示例:学生评级系统

=IF(C2>=95, "A+",
    IF(C2>=90, "A",
        IF(C2>=85, "B+",
            IF(C2>=80, "B",
                IF(C2>=75, "C+",
                    IF(C2>=70, "C",
                        IF(C2>=60, "D", "F")
                    )
                )
            )
        )
    )
)

注意:Excel 2016+版本支持IFS函数简化嵌套

=IFS(C2>=95, "A+",
     C2>=90, "A",
     C2>=85, "B+",
     C2>=80, "B",
     C2>=75, "C+",
     C2>=70, "C",
     C2>=60, "D",
     TRUE, "F")

五、IF函数与其他函数结合

1. 与SUM函数结合

=IF(SUM(A1:A10)>100, "达标", "未达标")

2. 与COUNTIF函数结合

=IF(COUNTIF(A1:A10, "完成")=10, "全部完成", "有未完成")

3. 与VLOOKUP函数结合

=IF(ISERROR(VLOOKUP(A2, 数据表!$A:$B, 2, FALSE)), "未找到", VLOOKUP(...))

4. 与TODAY函数结合

=IF(TODAY()>A2, "已过期", "有效期内")

六、IF函数返回不同类型值

返回文本

=IF(A1>10, "大于10", "小于等于10")

返回数字

=IF(A1>10, 100, 50)

返回公式

=IF(A1>10, B1*0.1, B1*0.05)

返回单元格引用

=IF(A1>10, B1, C1)

返回空值

=IF(A1>10, "符合", "")
=IF(A1>10, "符合", NA())

七、常见错误及解决方法

1. #NAME? 错误

=if(A1>10, "是", "否")  ❌ 函数名必须大写
=IF(A1>10, "是", "否")  ✅

2. 参数数量错误

=IF(A1>10, "是")       ❌ 缺少第三个参数
=IF(A1>10, "是", "否") ✅

3. 嵌套层数过多

=IF(...IF(...)) 最多嵌套64层(Excel不同版本可能有差异)

4. 文本比较问题

=IF(A1="10", "是", "否")  ❌ 如果A1是数字10,可能不匹配
=IF(A1=10, "是", "否")   ✅ 或 =IF(TEXT(A1,"0")="10", "是", "否")

八、综合练习

练习数据表

A B C D E F
员工ID 姓名 部门 销售额 出勤率 绩效评级
E001 张三 销售部 150000 95%
E002 李四 技术部 0 98%
E003 王五 销售部 80000 85%
E004 赵六 销售部 250000 90%
E005 孙七 人事部 0 100%

练习题

  1. 根据销售额判断是否达标(达标标准:100000)

    =IF(D2>=100000, "达标", "未达标")
    

  2. 计算销售提成(规则:20万以上10%,10-20万8%,5-10万5%,5万以下3%)

    =IF(D2>200000, D2*0.1,
        IF(D2>100000, D2*0.08,
            IF(D2>50000, D2*0.05,
                IF(D2>0, D2*0.03, 0)
            )
        )
    )
    

  3. 综合绩效评级(销售额达标且出勤率>90%为A,否则为B)

    =IF(AND(D2>=100000, E2>0.9), "A", "B")
    

  4. 判断部门是否销售部

    =IF(C2="销售部", "销售人员", "非销售人员")
    

  5. 计算奖金(销售部按销售额5%,其他部门固定2000)

    =IF(C2="销售部", D2*0.05, 2000)
    

  6. 判断是否有销售业绩

    =IF(D2>0, "有业绩", IF(D2=0, "无业绩", "数据错误"))
    

  7. 创建状态标签(优秀:销售额>20万且出勤率>95%)

    =IF(AND(D2>200000, E2>0.95), "⭐优秀员工", "普通员工")
    


九、进阶应用

1. 数组公式中的IF

{=SUM(IF(A1:A10>10, B1:B10, 0))}  // 计算大于10的对应值之和

2. IF函数与条件格式结合

=IF(A1>TODAY(), "未到期", "已到期")  // 可用于条件格式规则

3. 多条件判断(复杂逻辑)

=IF(OR(AND(A1>10, B1<5), C1="是"), "通过", "不通过")

4. 错误处理

=IFERROR(原公式, "出错时显示的内容")
=IF(ISERROR(原公式), "出错", 原公式)

十、实战技巧

技巧1:简化嵌套IF

// 使用LOOKUP代替多层IF
=LOOKUP(A1, {0,60,70,80,90}, {"F","D","C","B","A"})

技巧2:IF函数+CHOOSE函数

=CHOOSE(MATCH(A1, {0,60,70,80,90}), "F","D","C","B","A")

技巧3:返回带格式的内容

=IF(A1>10, "✅达标", "❌未达标")

技巧4:数据验证中的IF

=IF($A$1="是", $B$1:$B$10, $C$1:$C$10)  // 动态下拉列表

十一、性能优化建议

  1. 避免过度嵌套:超过7层嵌套考虑使用其他函数
  2. 计算顺序:将最可能发生的情况放在前面
  3. 使用IFS函数:Excel 2016+版本使用IFS更清晰
  4. 数组公式替代:对于复杂条件判断,考虑使用FILTER函数
  5. 缓存计算结果:对于重复使用的条件,先计算并存储到辅助列

十二、总结

IF函数是Excel中最重要、最常用的逻辑函数之一,掌握它的使用技巧可以: 1. 实现数据自动分类 2. 创建动态计算公式 3. 构建智能报表 4. 实现数据验证和清洗 5. 提升工作效率和准确性