ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11126|回复: 7

[转帖] "And" "Or" "Not" 函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-2 22:09 | 显示全部楼层 |阅读模式
"And" "Or" "Not" 函数

http://hi.baidu.com/t_c_ming/item/13363ce4d61611aec10d7546


"And" "Or" "Not" 函数三个逻辑函数: AND (与) ; OR (或) ; NOT (非).
1. 最简单的一个 NOT (非) : "非" 就是"不是".  如果我们有一个逻辑 "我吃过早饭了", 那么 NOT("我吃过早饭了") 的结果就是 "我没有吃过早饭". (当然Excel没有办法这么智能判断中文句子, 这个只是例子, 大家不要Copy到Excel然后骂我骗人, 呵呵). 所以, NOT(TRUE) = FALSE ; NOT(FALSE) = TRUE (这样就明白了吧).  NOT函数只有一个参数(参数可以是一个值也可以是一个表达式).

例子:
"A3"=(3>2)  (结果是TRUE)  >>>  "A4"=NOT(3>2)  (结果是FALSE)
[A6=10; A7=15] "A8" =(A6-A7>0) (结果是FALSE)  >>>  "A9"=NOT(A6-A7>0) (结果是TRUE)
2. 第二个 AND (与) : “AND(与)” 就是”并且”的意思. AND函数有两个(或以上)参数, AND的功能就是取这几个参数的交集. 我们要记住的是, 只要参数中有任何一个的值是FALSE, 那么AND函数的值就是FALSE; 仅当所有参数都是TRUE的时候, AND函数的值才是TRUE.

例子:
[A15="ABC", A16="XYZ", A17="123"]  "A18 =AND(A15="ABC",A16="XYZ",A17="123")" 结果是"TRUE", 因为三个等式都是成立的. 那我来考考大家下面两个的计算结果是什么?
No. 1: "A19" = NOT(AND(A15="ABC",A16="XYZ",A17="123"))
No. 2: "A20" = AND(A15="ABC",A16="XYZ",A17=123)
第一个很简单吧, 就是把原来的结果在”非”一下, 那NOT(TRUE) 当然就是FALSE咯;
第二个呢? 结果为什么是FALSE? 大家注意了, 我上面写的是 (A17=”123”), 加了引号, 也就是说不是, 而是字符串"". 所以在第二个AND函数中, 前两个参数的结果是TRUE, 但是第三个参数的结果是FALSE, 所以整个函数的结果是FALSE. (这时候大家有可能会问: 我在单元格里面输入123, 它就自动是一百二十三啊, 我怎么输入才能是字符串"123"呢?  这个时候我们不能输入 "123", 如果这样的话, Excel会当作 前后两个双引号加上字符串123; 其实很简单, 我们在数字123前面加上一个单引号就可以了. 这样数字123就变成字符串123了. 这个还有什么用呢? 比如你输入身份证或者银行卡的时候, 数字太长Excel会自动截断后面的数字同时变成科学计数法 (如A24), 这个时候我们只要在前面加一个单引号就搞定了(如B24).

3. 第三个是 OR (或) : OR其实和AND的用法和参数都一样, 区别是"AND只要有一个参数是FALSE则结果是FALSE"; "OR函数只要有一个参数是TRUE则结果就是TRUE".

例子: 我们继续用上面AND例子中的数字: [A15="ABC", A16="XYZ", A17="123"].  那么:
A29 = OR(A15="ABCD",A16="XYZW",A17="123")  结果是TRUE, 大家看到第一和第二个参数都是FALSE, 但是第三个参数是TRUE, 所以结果是TRUE;
A30 = OR(A15="ABCD",A16="XYZW",A17="1234")  结果是FALSE, 大家看到三个参数都是FALSE, 所以结果是FALSE (一个TRUE都没有);
好, 关于AND / OR / NOT 的基础我们已经讲完了, 相信大家对这三个函数有了一定的认识. 但是我们在实际的应用中一般都不会这么简单, 通常都需要多种判断的结合. 对于学理科的朋友相信不会有难度, 但是文科的朋友可能就要建立一下逻辑思维的概念, 把你想要实现的东西先转化成一个逻辑语言, 然后在写成函数就不难了. (这个是对一般情况而言, 如有例外请见谅)
我们现在来举个例子: 如下图所示数据, 列出了Team A 和Team B 中每个人的电话量和邮件处理量. 我们的问题是: 请找出电话和邮件量都多于20个的Agent.

分析题目 (就像我们在学校考试一样, 拿到题目第一就要审题): 要找出电话和邮件量都多于20的Agent, 也就是说 "电话量要大于20" 并且 "邮件量也要大于20":
"电话量要大于20" 用公式表达就是 (G4>20)
"邮件量要大于20" 用公式表达就是 (H4>20)
那么: "电话量要大于20" 并且 "邮件量也要大于20" 就是: I4 = AND(G4>20, H4>20) (然后我们用之前说的把鼠标移到I4单元格的右下角变成粗体十字的时候双击. 这样我们就得到下面的结果:

这样看其实已经知道结果了. 但是很难看是不是? 那我们就用前面讲的IF函数来"美化"一下: 如果"电话和邮件量都多于20个", 则显示"Good", 其他显示"Normal". 怎么写?
J4==IF(AND(G4>20, H4>20),"Good","Normal")  (再次强调, 字符串要用引号, 这个大家容易忘记) 结果如下:

好. 我们现在把题目再弄复杂一些, 我们要找出 "电话和邮件量都多于20个"或者"邮件量超过30个", 同时"名字不叫John"的Agent. 继续审题:
要求1: "电话和邮件量都多于20个" 这个我们前面已经做了: AND(G4>20, H4>20)
要求2: "邮件量超过30个" : (H4>30)
要求3: "名字不叫John" : (F4<>"John")  []  或者还可以怎样写? 我们前面学了NOT, 所以也可以写成 (NOT(F4=”John”))  [对于字符串的比较Excel是区分大小写的, 这个大家要注意].  接下来怎么做? 接下来就是变形金刚开始合体了.
看看我们的题目: 有一个"或者" 和 一个"同时". 我们把, 把. 那么函数就变成 =AND(OR(要求1, 要求2),要求3). 把上面的式子都套上去再用IF "美化"一下就变成:
=IF(AND(OR(AND(G4>20, H4>20), (H4>30)), NOT(F4="John")),"符合条件","不符合条件")
这样就得出了我们想要的结果 (如下图):

当我们在写嵌套函数的时候(就是一个函数套另外一个函数), 初学者一般都比较难适应, 这个时候我的建议是你先把函数分开在不同的单元格里面, 然后最后Copy到一起, 然后再慢慢学习2个函数的嵌套, 3个函数的嵌套…..这样就会习惯了.
Excel会自动在嵌套函数中把相对应的括号标上不同的颜色(如下图), 这样你在检查你的公式的时候就比较容易定位. (如果是色盲我就没有办法了)


以上例子的数据在这里.
在这里我还要强调一下, 学习Excel和"卖油翁"一样, 要"手熟", 也就是要"多练", 多练习才能记住函数的用法, 真正理解了函数你在要实现一个功能的时候才能想起来要用哪个函数.  熟能生巧嘛..... 加油.


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-2 22:10 | 显示全部楼层
今天算是系统学习了这些DD

点评

主题外链图片不显示,请直接上传。  发表于 2012-7-2 22:17

TA的精华主题

TA的得分主题

发表于 2012-7-2 22:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好东西  就是图都挂了

TA的精华主题

TA的得分主题

发表于 2012-7-3 09:27 | 显示全部楼层
说得简单一点吧
AND函数必须满足所有的要求才能使其结果为正确
OR函数只要满足一个要求就能使结果为正确
NOT函数判断对错

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-3 09:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 引子玄 于 2012-7-3 09:31 编辑
追梦不停的人 发表于 2012-7-3 09:27
说得简单一点吧
AND函数必须满足所有的要求才能使其结果为正确
OR函数只要满足一个要求就能使结果为正确
...


言简意赅,概括得很到位。{:soso_e179:}

TA的精华主题

TA的得分主题

发表于 2012-7-3 11:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 Eutopian 于 2012-7-3 11:43 编辑

1 AND 1 = 1               1 * 1 = 1
1 AND 0 = 0   相當於 1 * 0 = 0
0 AND 0 = 0               0 * 0 = 0
===========================
1 OR 1 = 1                 1 + 1 = 1
1 OR 0 = 1     相當於 1 + 0 = 1
0 OR 0 = 0                 0 + 0 = 0
===========================
NOT 1 = 0
NOT 0 = 1

TA的精华主题

TA的得分主题

发表于 2013-1-11 10:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-7-28 08:12 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 03:32 , Processed in 0.048252 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表