and-or-not
一、基础概念与语法
1. 逻辑函数基本语法
| 函数 | 语法 | 返回值 | 说明 |
|---|---|---|---|
| AND() | =AND(logical1, [logical2], ...) | TRUE/FALSE | 所有条件都为TRUE时返回TRUE |
| OR() | =OR(logical1, [logical2], ...) | TRUE/FALSE | 任意一个条件为TRUE时返回TRUE |
| NOT() | =NOT(logical) | TRUE/FALSE | 对逻辑值取反 |
| XOR() | =XOR(logical1, [logical2], ...) | TRUE/FALSE | 奇数个条件为TRUE时返回TRUE |
参数说明:
- 最多255个参数
- 参数可以是逻辑值、数组、引用
- 数值0视为FALSE,非0数值视为TRUE
二、AND() 函数:与运算
1. 基本用法
=AND(TRUE, TRUE) // TRUE
=AND(TRUE, FALSE) // FALSE
=AND(FALSE, FALSE) // FALSE
2. 实际应用示例
示例1:成绩双及格判断
A1=85(数学), B1=78(英语)
=AND(A1>=60, B1>=60) // TRUE(两科都及格)
=AND(A1>=90, B1>=90) // FALSE(不是都优秀)
示例2:员工转正条件
A1=6(入职月数), B1=85(绩效分), C1="是"(通过培训)
转正条件:入职满6个月、绩效>=80、通过培训
=AND(A1>=6, B1>=80, C1="是") // 全部满足才返回TRUE
示例3:库存预警
A1=15(当前库存), B1=50(安全库存), C1=100(最大库存)
库存正常条件:库存>安全库存 且 库存<最大库存
=AND(A1>B1, A1<C1) // TRUE(库存正常)
示例4:年龄范围判断
A1=25(年龄)
判断是否在18-60岁之间:
=AND(A1>=18, A1<=60) // TRUE
3. AND()真值表
| 条件1 | 条件2 | AND结果 |
|---|---|---|
| TRUE | TRUE | TRUE |
| TRUE | FALSE | FALSE |
| FALSE | TRUE | FALSE |
| FALSE | FALSE | FALSE |
记忆口诀:全真为真,有假即假
三、OR() 函数:或运算
1. 基本用法
=OR(TRUE, TRUE) // TRUE
=OR(TRUE, FALSE) // TRUE
=OR(FALSE, FALSE) // FALSE
2. 实际应用示例
示例1:请假条件判断
A1="病假", B1="事假", C1="年假"
是否请假:
=OR(A1="病假", B1="事假", C1="年假") // 任意一个为真即TRUE
示例2:优惠资格判断
A1=65(年龄), B1=TRUE(会员), C1=500(消费金额)
享受优惠条件:年龄>60 或 是会员 或 消费>300
=OR(A1>60, B1=TRUE, C1>300) // 满足任意一个即可
示例3:考试补考资格
A1=58(数学), B1=62(英语), C1=45(物理)
需要补考:任意一科<60
=OR(A1<60, B1<60, C1<60) // TRUE(数学和物理不及格)
示例4:紧急联系人
A1="父亲", B1="母亲", C1="配偶"
是否为直系亲属:
=OR(A1="父亲", A1="母亲", A1="配偶") // 是父亲、母亲或配偶
3. OR()真值表
| 条件1 | 条件2 | OR结果 |
|---|---|---|
| TRUE | TRUE | TRUE |
| TRUE | FALSE | TRUE |
| FALSE | TRUE | TRUE |
| FALSE | FALSE | FALSE |
记忆口诀:有真即真,全假为假
四、NOT() 函数:非运算
1. 基本用法
=NOT(TRUE) // FALSE
=NOT(FALSE) // TRUE
=NOT(1) // FALSE(1视为TRUE)
=NOT(0) // TRUE(0视为FALSE)
2. 实际应用示例
示例1:排除特定值
A1="北京"
不是北京:
=NOT(A1="北京") // FALSE
示例2:反转条件
A1=45(成绩)
不及格:
=NOT(A1>=60) // TRUE(等价于A1<60)
示例3:状态取反
A1=TRUE(启用状态)
禁用状态:
=NOT(A1) // FALSE
示例4:数值范围排除
A1=25(年龄)
不是青少年(13-19岁):
=NOT(AND(A1>=13, A1<=19)) // TRUE(25不在13-19之间)
3. NOT()真值表
| 条件 | NOT结果 |
|---|---|
| TRUE | FALSE |
| FALSE | TRUE |
记忆口诀:真假互换
五、XOR() 函数:异或运算
1. 基本用法
=XOR(TRUE, TRUE) // FALSE(两个都为TRUE)
=XOR(TRUE, FALSE) // TRUE(一个TRUE一个FALSE)
=XOR(FALSE, FALSE) // FALSE(两个都为FALSE)
2. 实际应用示例
示例1:投票表决
A1=TRUE(甲方同意), B1=FALSE(乙方同意)
双方意见是否一致:
=XOR(A1, B1) // TRUE(意见不一致)
示例2:开关状态
A1=TRUE(开关1), B1=TRUE(开关2)
是否只有一个开关打开:
=XOR(A1, B1) // FALSE(两个都打开)
示例3:权限控制
A1=TRUE(读取权限), B1=TRUE(写入权限)
是否只有一种权限(排他性权限):
=XOR(A1, B1) // FALSE(两种权限都有)
示例4:多条件奇偶判断
A1=TRUE, B1=FALSE, C1=TRUE, D1=FALSE
奇数个TRUE:
=XOR(A1, B1, C1, D1) // FALSE(2个TRUE,偶数个)
3. XOR()真值表
| 条件1 | 条件2 | XOR结果 | 说明 |
|---|---|---|---|
| TRUE | TRUE | FALSE | 两个相同→FALSE |
| TRUE | FALSE | TRUE | 两个不同→TRUE |
| FALSE | TRUE | TRUE | 两个不同→TRUE |
| FALSE | FALSE | FALSE | 两个相同→FALSE |
多参数XOR真值表:
- 奇数个TRUE → TRUE
- 偶数个TRUE → FALSE
记忆口诀:同假异真(两个参数时),奇真偶假(多个参数时)
六、逻辑函数组合使用
1. AND + OR 组合
示例1:复杂录取条件
A1=85(高考成绩), B1=TRUE(特长生), C1=90(面试分)
录取条件:(高考>80 且 面试>85) 或 特长生
=OR(AND(A1>80, C1>85), B1)
示例2:折扣条件
A1=TRUE(会员), B1=500(消费金额), C1="春节"(促销活动)
享受8折:会员且消费>300,或任何促销活动期间
=OR(AND(A1=TRUE, B1>300), C1<>"")
示例3:质量检验
A1=95(尺寸合格率), B1=98(外观合格率), C1=90(功能合格率)
合格条件:全部>90,或(尺寸>95且功能>92)
=OR(AND(A1>90, B1>90, C1>90),
AND(A1>95, C1>92))
2. NOT + AND/OR 组合
示例1:排除特定组合
A1="北京", B1="销售部"
不是北京销售部:
=NOT(AND(A1="北京", B1="销售部"))
示例2:互补条件
A1=TRUE(在职), B1=TRUE(全职)
非全职或在职:
=OR(NOT(B1), A1) // 等价于 非B 或 A
3. 嵌套逻辑函数
示例:贷款审批条件
A1=35(年龄), B1=8000(月收入), C1=600(信用分), D1=TRUE(本地户籍)
贷款条件:
1. 年龄25-55岁
2. 月收入>5000 或 信用分>650
3. 如果是外地户籍,需要信用分>700
公式:
=AND(
AND(A1>=25, A1<=55),
OR(B1>5000, C1>650),
IF(NOT(D1), C1>700, TRUE)
)
七、实际工作场景案例
案例1:员工考勤统计
A列:上班时间, B列:下班时间, C列:请假类型
H列:迟到判断 =IF(A1>TIME(9,0,0), "迟到", "")
I列:早退判断 =IF(B1<TIME(18,0,0), "早退", "")
J列:异常考勤 =IF(OR(H1="迟到", I1="早退"), "异常", "正常")
K列:全勤判断 =IF(AND(C1="", J1="正常"), "全勤", "")
案例2:电商促销规则
A列:会员等级, B列:订单金额, C列:促销活动
折扣规则:
1. VIP且金额>1000:8折
2. 普通会员且金额>500:9折
3. 任何会员在双11期间:7折
4. 618期间且金额>800:75折
公式:
=IF(OR(C1="双11", AND(C1="618", B1>800)), "最大折扣",
IF(AND(A1="VIP", B1>1000), "8折",
IF(AND(A1="普通", B1>500), "9折", "无折扣")))
案例3:学生奖学金评定
A列:平均成绩, B列:是否班干部, C列:志愿服务时长
评选条件:
1. 成绩>=85 且 志愿服务>=20小时
2. 成绩>=90
3. 班干部且成绩>=80且志愿服务>=10小时
公式:
=IF(OR(AND(A1>=85, C1>=20),
A1>=90,
AND(B1="是", A1>=80, C1>=10)),
"获得奖学金", "未获得")
案例4:库存管理预警
A列:当前库存, B列:日均销量, C列:采购在途
预警规则:
1. 红色预警:库存<3天销量 且 无在途
2. 黄色预警:库存<7天销量 或 (库存<3天销量 但有在途)
3. 绿色:其他情况
公式:
=IF(AND(A1<B1*3, C1=0), "红色预警",
IF(OR(A1<B1*7,
AND(A1<B1*3, C1>0)), "黄色预警", "绿色"))
八、逻辑函数与IF函数结合
1. IF + AND 典型模式
=IF(AND(条件1, 条件2), "结果1", "结果2")
应用:
=IF(AND(A1>60, B1>60), "双及格", "有不及格")
=IF(AND(A1>=18, A1<=60), "适龄", "非适龄")
2. IF + OR 典型模式
=IF(OR(条件1, 条件2), "结果1", "结果2")
应用:
=IF(OR(A1="病假", A1="事假"), "请假", "在岗")
=IF(OR(A1>90, B1>90), "有优秀", "无优秀")
3. IF + AND + OR 组合
=IF(OR(AND(条件1,条件2), 条件3), "结果1", "结果2")
应用:
=IF(OR(AND(A1="VIP", B1>1000), C1="双11"), "8折", "原价")
九、常见错误与解决
错误1:参数类型错误
错误:=AND("TRUE", 85>60) // "TRUE"是文本,不是逻辑值
正确:=AND(TRUE, 85>60) // 使用逻辑值或表达式
错误2:忘记比较运算符
错误:=AND(A1 60) // 缺少比较运算符
正确:=AND(A1>60, B1>60) // 使用完整的比较表达式
错误3:文本比较错误
错误:=AND(A1=北京) // 文本缺少引号
正确:=AND(A1="北京", B1="上海")
错误4:嵌套过深
// 难以阅读
=IF(AND(OR(A1>10,B1<5),NOT(C1="否"),XOR(D1,E1)),"是","否")
// 改进:拆分到多个单元格或使用LET函数
错误5:忽略空单元格
A1=空, B1=TRUE
=AND(A1, B1) // 返回FALSE(空单元格视为FALSE)
十、性能优化建议
1. 短路求值原则
Excel逻辑函数执行短路求值:
- AND():遇到第一个FALSE就停止,返回FALSE
- OR():遇到第一个TRUE就停止,返回TRUE
优化策略:
// 把最容易为FALSE的条件放AND()最前面
=AND(最容易假的条件, 其他条件, 最可能真的条件)
// 把最容易为TRUE的条件放OR()最前面
=OR(最容易真的条件, 其他条件, 最可能假的条件)
2. 使用布尔运算简化
// 传统写法
=IF(AND(A1>10, B1>20), TRUE, FALSE)
// 简化写法
=A1>10 AND B1>20
// 更复杂的简化
=(A1>10)*(B1>20)*(C1>30) // 全部满足时结果为1
3. 避免重复计算
// 不好的写法(重复计算SUM)
=IF(AND(SUM(A1:A10)>100, SUM(A1:A10)<200), "正常", "")
// 改进写法
=LET(total, SUM(A1:A10),
IF(AND(total>100, total<200), "正常", ""))
十一、记忆技巧与总结
真值表总结
| 函数 | 条件1 | 条件2 | 结果 | 记忆口诀 |
|---|---|---|---|---|
| AND | TRUE | TRUE | TRUE | 全真为真 |
| AND | TRUE | FALSE | FALSE | 有假即假 |
| OR | TRUE | FALSE | TRUE | 有真即真 |
| OR | FALSE | FALSE | FALSE | 全假为假 |
| NOT | TRUE | - | FALSE | 真假互换 |
| NOT | FALSE | - | TRUE | 真假互换 |
| XOR | TRUE | FALSE | TRUE | 同假异真 |
| XOR | TRUE | TRUE | FALSE | 同假异真 |
实用场景对应表
| 需求场景 | 推荐函数 | 示例 |
|---|---|---|
| 全部条件必须满足 | AND() | 多科及格、多条件审批 |
| 任意条件满足即可 | OR() | 优惠资格、请假类型 |
| 条件取反 | NOT() | 排除特定情况、状态反转 |
| 排他性条件 | XOR() | 开关互斥、投票表决 |
| 复杂组合条件 | AND+OR | 促销规则、奖学金评定 |
学习建议
- 从简单开始:先掌握单个函数用法
- 理解真值表:画图帮助记忆逻辑关系
- 结合实际案例:用工作中的例子练习
- 注意括号匹配:复杂公式注意括号层次
- 测试边界条件:测试TRUE/FALSE/空值等情况
一、学生成绩评定系统(20条记录)
| 学号 | 姓名 | 数学 | 语文 | 英语 | 体育 | 是否班干部 | 是否参加竞赛 |
|---|---|---|---|---|---|---|---|
| S001 | 张三 | 85 | 78 | 92 | 88 | 是 | 是 |
| S002 | 李四 | 92 | 95 | 88 | 75 | 是 | 否 |
| S003 | 王五 | 76 | 68 | 72 | 90 | 否 | 是 |
| S004 | 赵六 | 58 | 62 | 65 | 85 | 否 | 否 |
| S005 | 孙七 | 95 | 89 | 94 | 92 | 是 | 是 |
| S006 | 周八 | 45 | 52 | 48 | 95 | 否 | 否 |
| S007 | 吴九 | 88 | 76 | 81 | 78 | 是 | 否 |
| S008 | 郑十 | 72 | 85 | 79 | 88 | 否 | 是 |
| S009 | 钱一 | 96 | 94 | 97 | 82 | 是 | 是 |
| S010 | 王一 | 62 | 58 | 61 | 76 | 否 | 否 |
| S011 | 刘二 | 84 | 79 | 86 | 89 | 是 | 否 |
| S012 | 陈三 | 39 | 42 | 45 | 92 | 否 | 否 |
| S013 | 杨四 | 91 | 87 | 93 | 77 | 否 | 是 |
| S014 | 黄五 | 67 | 71 | 69 | 84 | 是 | 否 |
| S015 | 赵七 | 98 | 96 | 99 | 85 | 是 | 是 |
| S016 | 周九 | 53 | 56 | 51 | 91 | 否 | 否 |
| S017 | 吴十 | 82 | 88 | 85 | 79 | 是 | 是 |
| S018 | 郑一 | 89 | 92 | 87 | 88 | 否 | 否 |
| S019 | 王二 | 74 | 69 | 72 | 83 | 否 | 是 |
| S020 | 孙三 | 47 | 51 | 49 | 96 | 否 | 否 |
二、员工考勤权限表(15条记录)
| 工号 | 姓名 | 部门 | 职级 | 可远程办公 | 可调休 | 可加班 | 可请假 |
|---|---|---|---|---|---|---|---|
| E001 | 张明 | 技术部 | P7 | TRUE | TRUE | TRUE | TRUE |
| E002 | 李华 | 销售部 | P6 | FALSE | TRUE | TRUE | TRUE |
| E003 | 王芳 | 人事部 | P5 | TRUE | FALSE | FALSE | TRUE |
| E004 | 赵强 | 财务部 | P8 | TRUE | TRUE | TRUE | TRUE |
| E005 | 孙丽 | 技术部 | P6 | TRUE | TRUE | FALSE | TRUE |
| E006 | 周伟 | 市场部 | P5 | FALSE | FALSE | TRUE | TRUE |
| E007 | 吴刚 | 销售部 | P7 | TRUE | TRUE | TRUE | FALSE |
| E008 | 郑洁 | 技术部 | P9 | TRUE | TRUE | TRUE | TRUE |
| E009 | 钱勇 | 财务部 | P6 | FALSE | TRUE | FALSE | TRUE |
| E010 | 王静 | 人事部 | P5 | TRUE | FALSE | FALSE | FALSE |
| E011 | 刘洋 | 市场部 | P7 | TRUE | TRUE | TRUE | TRUE |
| E012 | 陈晨 | 技术部 | P6 | TRUE | TRUE | TRUE | TRUE |
| E013 | 杨光 | 销售部 | P8 | TRUE | TRUE | TRUE | TRUE |
| E014 | 黄蓉 | 人事部 | P4 | FALSE | FALSE | FALSE | TRUE |
| E015 | 赵云 | 财务部 | P7 | TRUE | TRUE | TRUE | TRUE |
三、产品库存预警表(12条记录)
| 产品ID | 产品名称 | 当前库存 | 安全库存 | 日均销量 | 是否季节性 | 是否易过期 | 是否促销中 |
|---|---|---|---|---|---|---|---|
| P001 | iPhone 15 | 150 | 50 | 12 | FALSE | FALSE | TRUE |
| P002 | 华为P60 | 45 | 30 | 8 | FALSE | FALSE | FALSE |
| P003 | 小米13 | 120 | 40 | 10 | FALSE | FALSE | TRUE |
| P004 | 空调 | 28 | 20 | 3 | TRUE | FALSE | TRUE |
| P005 | 冰箱 | 35 | 25 | 2 | FALSE | FALSE | FALSE |
| P006 | 牛奶 | 15 | 30 | 25 | FALSE | TRUE | FALSE |
| P007 | 面包 | 8 | 20 | 30 | FALSE | TRUE | TRUE |
| P008 | 羽绒服 | 60 | 40 | 5 | TRUE | FALSE | FALSE |
| P009 | 防晒霜 | 25 | 15 | 8 | TRUE | TRUE | TRUE |
| P010 | 月饼 | 120 | 50 | 15 | TRUE | TRUE | FALSE |
| P011 | 矿泉水 | 200 | 100 | 50 | FALSE | FALSE | FALSE |
| P012 | 巧克力 | 18 | 25 | 12 | FALSE | TRUE | TRUE |
四、练习题目与公式
练习1:AND()函数练习
题目1.1:三好学生评选
条件:数学、语文、英语三科均≥80分
在I列(新列)输入公式:
=AND(C2>=80, D2>=80, E2>=80)
张三:TRUE(85,78,92)❌ 语文未达标
李四:TRUE(92,95,88)✅
王五:FALSE
赵六:FALSE
孙七:TRUE✅
...
题目1.2:全优生评选
条件:所有科目(含体育)≥85分
在J列输入公式:
=AND(C2>=85, D2>=85, E2>=85, F2>=85)
孙七:TRUE(95,89,94,92)✅
钱一:FALSE(96,94,97,82)❌ 体育未达标
赵七:TRUE(98,96,99,85)✅
...
题目1.3:班级干部且成绩优秀
条件:是班干部且任意一科≥95分
在K列输入公式:
=AND(G2="是", OR(C2>=95, D2>=95, E2>=95))
李四:TRUE(班干部,数学92❌,语文95✅)
孙七:TRUE(班干部,数学95✅)
钱一:TRUE(班干部,数学96✅,语文94,英语97)
...
练习2:OR()函数练习
题目2.1:补考名单
条件:任意一科<60分
在L列输入公式:
=OR(C2<60, D2<60, E2<60, F2<60)
赵六:TRUE(数学58✅)
周八:TRUE(数学45✅,语文52,英语48)
刘二:FALSE
陈三:TRUE(数学39✅,语文42,英语45)
...
题目2.2:特殊人才选拔
条件:单科状元(任一科≥98分)或参加竞赛
在M列输入公式:
=OR(C2>=98, D2>=98, E2>=98, F2>=98, H2="是")
赵七:TRUE(数学98✅,英语99)
孙七:TRUE(参加竞赛✅)
钱一:TRUE(参加竞赛✅)
...
题目2.3:体育特长生
条件:体育≥90分 或 是班干部且体育≥85分
在N列输入公式:
=OR(F2>=90, AND(G2="是", F2>=85))
王五:TRUE(体育90✅)
赵六:FALSE(体育85,但不是班干部)
孙七:TRUE(班干部✅,体育92)
...
练习3:NOT()函数练习
题目3.1:非班干部学生
在O列输入公式:
=NOT(G2="是")
张三:FALSE(是班干部)
王五:TRUE(不是班干部)
赵六:TRUE
...
题目3.2:没有不及格科目
在P列输入公式:
=NOT(OR(C2<60, D2<60, E2<60, F2<60))
张三:TRUE(全部≥60)
赵六:FALSE(数学58❌)
周八:FALSE(多科不及格)
...
题目3.3:非竞赛型优等生
条件:三科均≥80分但未参加竞赛
在Q列输入公式:
=AND(NOT(H2="是"), AND(C2>=80, D2>=80, E2>=80))
李四:FALSE(参加竞赛❌)
吴九:TRUE(未参加竞赛✅,成绩达标)
郑十:FALSE(未参加竞赛,但语文68❌)
...
练习4:XOR()函数练习
题目4.1:专才型学生
条件:只有一门科目≥90分(排他性优秀)
在R列输入公式:
=XOR(C2>=90, D2>=90, E2>=90, F2>=90)
张三:FALSE(英语92✅,语文78❌,数学85❌)→ 只有一门≥90?✅ 但XOR计算的是奇数个TRUE
实际上:FALSE, FALSE, TRUE, FALSE → XOR结果为TRUE✅
李四:TRUE(数学92✅,语文95✅)→ 两门≥90,XOR返回FALSE
需要修正公式:=XOR(C2>=90, D2>=90, E2>=90, F2>=90)
题目4.2:权限互斥检查
使用员工考勤权限表: 条件:远程办公和加班权限只能有一个
在I列(新列)输入公式:
=XOR(D2, F2) // D列:可远程办公,F列:可加班
张明:FALSE(两个都有)
李华:FALSE(两个都有)
王芳:TRUE(可远程,不可加班)
孙丽:TRUE(可远程,不可加班)
...
题目4.3:库存特殊状态
使用产品库存预警表: 条件:季节性商品和易过期商品不能同时促销
在I列(新列)输入公式:
=NOT(XOR(F2, G2)) // F:是否季节性,G:是否易过期
或
=NOT(AND(F2, G2, H2)) // 更符合业务逻辑
空调:FALSE(季节性✅,不易过期❌,促销中✅)
防晒霜:TRUE(季节性✅,易过期✅,促销中✅)→ 应预警
月饼:FALSE(季节性✅,易过期✅,促销中❌)
练习5:综合应用练习
题目5.1:奖学金评选(综合AND/OR)
条件满足任一即可获得奖学金:
- 三科均≥90分
- 是班干部且无不及格科目且至少一科≥95分
- 参加竞赛且平均分≥85分
在S列输入公式:
=OR(
AND(C2>=90, D2>=90, E2>=90), // 条件1
AND(
G2="是", // 是班干部
NOT(OR(C2<60, D2<60, E2<60, F2<60)), // 无不及格
OR(C2>=95, D2>=95, E2>=95) // 至少一科≥95
),
AND(
H2="是", // 参加竞赛
(C2+D2+E2)/3 >= 85 // 平均分≥85
)
)
孙七:TRUE(条件1:95,89,94❌ 条件2:班干部✅,无不及格✅,数学95✅)
钱一:TRUE(条件1:96,94,97✅)
赵七:TRUE(条件1:98,96,99✅)
...
题目5.2:员工权限组合(综合逻辑)
使用员工考勤权限表: 高级权限:同时具有远程办公、调休、加班权限 基础权限:只有请假权限 特殊权限:可远程办公但不可加班,或者可加班但不可远程
在J列输入公式:
=IF(AND(D2, E2, F2), "高级权限",
IF(AND(H2, NOT(OR(D2, E2, F2))), "基础权限",
IF(XOR(D2, F2), "特殊权限", "普通权限")))
张明:高级权限
王芳:普通权限(可远程,不可调休加班)
周伟:特殊权限(不可远程,可加班)
...
题目5.3:智能库存预警(综合应用)
使用产品库存预警表: 红色预警:库存<3天销量 且 无促销 黄色预警:库存<7天销量 或 (易过期且库存<安全库存) 绿色正常:其他情况
在J列输入公式:
=IF(AND(B2/C2<3, NOT(H2)), "红色预警",
IF(OR(B2/C2<7,
AND(G2, B2<D2)), "黄色预警", "绿色正常"))
华为P60:黄色预警(45/8=5.6天<7)
牛奶:黄色预警(易过期✅且15<30)
面包:红色预警(8/30=0.27天<3且无促销❌,实际促销中✅)→ 应为黄色
需要修正:=IF(AND(B2/C2<3, NOT(H2)), "红色预警"...
五、验证答案示例
学生表验证(前5行)
| 学号 | AND练习1 | AND练习2 | AND练习3 | OR练习1 | OR练习2 | OR练习3 | NOT练习1 | NOT练习2 | NOT练习3 | XOR练习1 |
|---|---|---|---|---|---|---|---|---|---|---|
| S001 | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | TRUE |
| S002 | TRUE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE |
| S003 | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | TRUE | TRUE | TRUE | FALSE |
| S004 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE |
| S005 | TRUE | TRUE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE |
员工表验证(前5行)
| 工号 | XOR权限 | 权限等级 |
|---|---|---|
| E001 | FALSE | 高级权限 |
| E002 | FALSE | 高级权限 |
| E003 | TRUE | 特殊权限 |
| E004 | FALSE | 高级权限 |
| E005 | TRUE | 特殊权限 |
产品表验证(前5行)
| 产品ID | 库存预警 | XOR状态 |
|---|---|---|
| P001 | 绿色正常 | FALSE |
| P002 | 黄色预警 | TRUE |
| P003 | 绿色正常 | FALSE |
| P004 | 黄色预警 | FALSE |
| P005 | 绿色正常 | TRUE |
六、进阶挑战题
挑战1:智能分班系统
假设要将学生分到三个班级:
- A班:三科均≥85分 或 (是班干部且无不及格)
- B班:有1-2科≥85分 且 无不及格科目
- C班:其他学生
在T列输入公式:
=IF(OR(AND(C2>=85, D2>=85, E2>=85),
AND(G2="是", NOT(OR(C2<60, D2<60, E2<60)))), "A班",
IF(AND(COUNTIF(C2:E2, ">=85")>=1,
COUNTIF(C2:E2, ">=85")<=2,
NOT(OR(C2<60, D2<60, E2<60))), "B班", "C班"))
挑战2:动态权限矩阵
为员工表创建权限矩阵,显示所有权限组合状态:
权限代码生成:
=CONCAT(IF(D2,1,0), IF(E2,1,0), IF(F2,1,0), IF(H2,1,0))
权限说明:
1111:全权限
1101:可远程、调休、请假,不可加班
0011:可加班、请假,不可远程、调休
...
挑战3:库存智能补货
根据产品特性制定补货策略:
- 紧急补货:库存<安全库存 且 (易过期 或 促销中)
- 常规补货:库存<安全库存×1.5 且 非季节性
- 季节性备货:季节性商品 且 库存<安全库存×2
- 暂停补货:其他情况
在K列输入公式:
=IF(AND(B2<D2, OR(G2, H2)), "紧急补货",
IF(AND(B2<D2*1.5, NOT(F2)), "常规补货",
IF(AND(F2, B2<D2*2), "季节性备货", "暂停补货")))
七、学习要点总结
- AND():全部条件满足才为真 → 用于"必须同时满足"的场景
- OR():任一条件满足即为真 → 用于"满足任意一个"的场景
- NOT():取反操作 → 用于"排除"或"反转"场景
- XOR():奇数个真为真 → 用于"排他性"或"奇偶校验"场景
- 组合使用:AND/OR嵌套处理复杂业务规则
建议练习顺序:
- 先完成基础AND/OR/NOT练习
- 理解XOR的特殊性(奇偶判断)
- 尝试综合应用题目
- 挑战进阶题目,理解实际业务逻辑
调试技巧:
- 分步骤测试:先测试内层函数,再测试外层
- 使用F9键:选中公式部分,按F9查看计算结果
- 添加辅助列:复杂公式拆解到多个单元格
- 验证边界条件:测试TRUE/FALSE/空值等情况