语法=IF(逻辑测试, 结果若为真, 结果若为假)
详细使用分析
IF 的“逻辑测试”可以是:
直接比较:A1>60、B2="合格"
函数返回的 TRUE/FALSE
数值(0=FALSE,非0=TRUE)
三类典型场景
=IF(成绩>=60, "及格", "不及格") | ||
=IF(销售额>10000, 销售额*0.1, 0) | ||
=IF(成绩>=90,"优",IF(成绩>=60,"中","差")) |
⚠️ 嵌套IF的局限
超过 3–4 层,公式极难维护
替代方案:IFS(Excel 2016+)或 VLOOKUP 做区间匹配
实战案例=IF(AND(出勤>=20, 绩效="A"), "奖金500", "无奖金") — 多条件结合 AND
语法=IFERROR(你要计算的公式, 出错时返回的值)
详细使用分析
会捕获的错误类型:
核心价值
让公式永不断链,用户看到的是友好提示而不是错误代码。
三大经典用法
① 避免除零错误=IFERROR(A1/B1, "无数据")
② VLOOKUP 查不到时返回“未找到”=IFERROR(VLOOKUP(E2, A:B, 2, 0), "未找到")
③ 批量处理可能出错的运算=IFERROR(单价*数量, 0) — 只要任一单元格异常,返回 0 而不是报错
⚠️ 注意事项
不要滥用:它会隐藏真正的错误,可能掩盖数据问题
适合用在最终展示层,不影响源数据的校验
语法=AND(条件1, [条件2], …)=OR(条件1, [条件2], …)
详细使用分析
常见写法对比
直接在单元格中使用(返回 TRUE / FALSE)=AND(A1>80, B1="是")
作为 IF 的第一个参数(最常用)=IF(AND(年龄>=18, 年龄<=60), "适龄", "超龄")
结合 COUNTIF / SUMIF ?不行
❌ COUNTIF(范围, AND(条件1,条件2)) 无效
✅ 改用 COUNTIFS 或 SUMPRODUCT
实用案例
=IF(OR(迟到>5次, 缺勤>2次), "警告", "正常")
语法=NOT(逻辑值)
详细使用分析
功能极简单:
NOT(TRUE) → FALSE
NOT(FALSE) → TRUE
典型应用场景
① 排除某个条件=IF(NOT(A1="已完成"), "待处理", "已完成")
② 辅助复杂判断=IF(AND(NOT(状态="离职"), 工龄>=3), "可晋升", "否")
③ 数据验证中禁止输入某个值
自定义验证公式:=NOT(A1="已结案")
⚠️ NOT 通常可以改写为 <>(不等于)=NOT(A1>90) ⇔ =A1<=90
但 NOT 在需要明确表达“逻辑反转”时更直观。
语法
直接写 =TRUE() 或 =FALSE()
(括号可省略)
详细使用分析
=TRUE | |
=1=1 | |
=IF(TRUE, "是", "否") |
常见使用场景
① 作为辅助列开关=IF(AND(条件1, TRUE, 条件2), …) — 临时强控某条件生效
② 调试复杂公式
把某段逻辑临时改成 TRUE 或 FALSE,观察 IF 结果变化
③ 与 AND/OR 联合构建固定真值=AND(A1>10, TRUE) 等价于 =A1>10
④ 自定义数据验证
验证公式填 =TRUE 表示全部允许;填 =FALSE 表示全部禁止
⚠️ 注意
文本 "TRUE" 不等于逻辑值 TRUE,前者是字符串,后者是布尔值。
场景:员工奖金判定
规则:
工龄 ≥ 3 年
绩效 ≠ "C"
且缺勤天数 ≤ 2
若某单元格有 #N/A 错误,自动返回“数据异常”
公式=IFERROR(IF(AND(工龄>=3, NOT(绩效="C"), 缺勤<=2), "发放奖金", "不发放"), "数据异常")
