Note: The other languages of the website are Google-translated. Back to English

如何在Excel中将IF函数与AND,OR和NOT一起使用?

在Excel中,IF函数对于检查单元格是否满足条件并根据评估结果(True和False)返回不同的值非常有用。 并将IF函数与AND,OR,NOT函数结合使用,将改变检查单元格的条件。 在这里,我将介绍如何使用IF和AND函数,IF和OR函数以及如何在Excel中组合多个IF函数。

假设我们有一个销售表,如下面的屏幕截图所示,现在我们要评估销售价值并将其分组为“非凡“”“”中间“和”".
doc if 和 or not 1

现在,将行标题和列标题复制到一个空白区域(在我们的示例中为范围A16:E28),如以下屏幕截图所示。
doc if 和 or not 2


如何在Excel中使用IF函数

Excel中IF函数的基本形式如下所示: = IF(逻辑测试,value_if为true,value_if_false)

在我们的情况下,我们要检查销售量是否低。 如果单元格B2中的值等于或小于80,则返回文本“低”;如果单元格B2中的值大于80,则返回空白。

输入公式 = IF(B2 <= 80,“低”,“”) 进入单元格B17,然后将“填充手柄”拖动到范围B17:E28。 请参阅以下屏幕截图:
doc if 和 or not 3

轻松地将多个工作表/工作簿/ CSV文件组合到一个工作表/工作簿中

将来自不同工作簿的数十张表合并为一张表可能很麻烦。 但是使用Kutools for Excel的 合并(工作表和工作簿) 实用程序,只需单击几下就可以完成! 全功能30天免费试用!
广告组合床单书1

如何在Excel中使用If函数和AND函数

如果要同时检查一个单元格是否满足多个条件,可以在Excel中组合IF函数和AND函数。
Excel中AND函数的基本形式是 = AND(逻辑1,逻辑2,逻辑3等)

现在,在我们的案例中,我们要同时检查一个销售量是否大于80而小于160,如果是,则返回“中间”文本,如果否,则返回空白。

输入公式 = IF(AND(B2> 80,B2 <160),“ Middle”,“”) 进入单元格B17,然后将“填充手柄”拖动到范围B17:E28。 请参阅以下屏幕截图:


如何在Excel中使用IF函数和OR函数

如果要检查单元格是否满足多个条件之一,可以在Excel中组合IF函数和OR函数。

Excel中OR功能的基本形式是 = OR(逻辑1,逻辑2,逻辑3,等等)

在我们的示例中,我们要查找大于180或小于20的非常规销售量。如果销售量是非常规的,则返回“非常规”文本,如果没有返回空白。

输入公式 = IF(OR(B2> 180,B2 <20),“非凡”,“”) 进入单元格B17,然后将“填充手柄”拖动到范围B17:E28。 请参阅以下屏幕截图:


如何在Excel中将多个IF函数合并为一个公式

在我们的示例中,如果要使用一个公式评估所有销量,则可以应用复杂的IF函数。

如果销量等于或小于20,则返回文本“非常规”; 如果销售量等于或小于80,则返回文本“低”; 如果等于或小于160,则返回文本“ Middle”;如果等于或小于200,则返回文本“ High”。

输入公式 = IF(B2 <= 20,“非凡”,IF(B2 <= 80,“低”,IF(B2 <= 160,“中”,IF(B2 <= 200,“高”,“”)))) ) 进入单元格B17,然后将“填充手柄”拖动到范围B17:E28。 请参阅以下屏幕截图:

注意丝带 公式太难记了吗? 将公式另存为自动文本条目,以供日后再次使用!
阅读全文...     免费试用

最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (56)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
how do i make this formulas talk to one another: =IF(OR(AND(MID(K2,6,1)="N",(MID(K2,6,1)="C"),(MID(K2,6,1)="H"),(MID(K2,6,1)="I"),(MID(K2,6,1)="B"),(MID(K2,6,1)="F"),(MID(K2,6,1)="L"),(MID(K2,6,1)="M"),(MID(K2,6,1)="P"),(MID(K2,6,1)="R"),(MID(K2,6,1)="P"),ISTEXT(G2)="61"),OR(AND(RIGHT(K2,2)=G2))),"Good","Review") =IF(AND(RIGHT(K2,2)=G2),"Good","Review") or =IF(NOT(OR(AND(MID(K2,6,1)="N",(MID(K2,6,1)="C"),(MID(K2,6,1)="H"),(MID(K2,6,1)="I"),(MID(K2,6,1)="B"),(MID(K2,6,1)="F"),(MID(K2,6,1)="L"),(MID(K2,6,1)="M"),(MID(K2,6,1)="P"),(MID(K2,6,1)="R"),(MID(K2,6,1)="P"),ISTEXT(G2)="61"),(RIGHT(K2,2)=G2))),"Good","Review")
马萨尔
该评论由网站上的主持人最小化
我有收费计算,例如。 费用金额为 0 则下一列应为 0。如果费用大于 1 且小于 250,则下一列应为 250。如果费用超过 250,则实际费用应在下一列中(252)
拉曼五世
该评论由网站上的主持人最小化
如何确定细胞的年龄? 这个公式对吗 =IF(I2<30,"future payment",AND(IF(I2>30<=45,"30-45days",AND(IF(I2>45<=60,"45-60days", AND(IF(I2>60,"61+天
",0)))))))
普拉莫德
该评论由网站上的主持人最小化
嗨,普拉莫德,
您不能直接在公式中使用 I2>30<=45。 我已经为您更改了公式: =IF(I2<=30,"FUTURE PAYMENT",IF(B2<=45, "30-45 DAYS", IF(B2<=45, "45-60DAYS", IF( B2<=60, "60+DAYS", ""))))
唐凯利
该评论由网站上的主持人最小化
我试图让公式返回 4 个可能的答案,即(R-regular,A-absent,L-late,OT-overtime)。 我的常规基础是单元格的值是否为“8”。 所以这是我到目前为止制定的公式 =IF(H16>7.9,"OT",IF(H16<7.9,"L",IF(H16=8,"R","A")))。 它只返回(OT 和 L)一些非常错误的东西,我无法弄清楚。 我只是新手,所以请帮助我。
丹·金尼弗
该评论由网站上的主持人最小化
Try this: =IF(OR(H16=0,H16=""),"A",IF(H16=8,"R",IF(H16&lt;7.9,"L","OT")))
Anh Nguyen
该评论由网站上的主持人最小化
我试图让公式返回 4 个可能的答案,即(R-regular,A-absent,L-late,OT-overtime)。 我的常规基础是单元格的值是否为“8”。 所以这是我到目前为止制定的公式 =IF(H16>7.9,"OT",IF(H16<7.9,"L",IF(H16=8,"R","A")))。 它只返回(OT 和 L)一些非常错误的东西,我无法弄清楚。 我只是新手,所以请帮助我
丹·金尼弗
该评论由网站上的主持人最小化
高丹,
试试这个公式 =IF(H16=8,"R",IF(H16<7.9,"OT","L"))
唐凯利
该评论由网站上的主持人最小化
我正在尝试做 IF(OR(A1=1;AND(A2=1;A3=1)))
米尔科·蒂普卡
该评论由网站上的主持人最小化
嗨米尔科,
感谢您的评论。 你想得到什么计算结果? 你能告诉我更多关于你的问题吗?
唐凯利
该评论由网站上的主持人最小化
=IF(OR((I2=(T2+U2),(I2=(U2+V2)),"Closed","OPEN")
如何做到这一点?
林西
该评论由网站上的主持人最小化
=IF(OR(I2=T2+U2,I2=U2+V2),"CLOSED","OPEN")
唐凯利
该评论由网站上的主持人最小化
你好,我有一个非常复杂的公式,我正在尝试编写,承认失败让我很生气。 到目前为止,我有:


=IF(AND(B2="Prudential",OR(C2={"10 年期限","15 年期限","20 年期限","30 年期限"})),D2*0.75,(IF( C2="UL",D2*0.8,"0")))


它工作得很好。 但是,我需要再添加大约 37 家具有自己佣金结构的公司。 我很确定我只需要一个带有一堆嵌套 IF 的怪物 OR 语句,我只是在想办法准确地找出放置它们的位置。 任何帮助都会很棒。 谢谢!
该评论由网站上的主持人最小化
高丹,
你的问题还不清楚。 您可能会通过为至少 2 家公司提供解决方案来解释更多。 但是,只是有助于缩短您的 OR 函数。 OR(C2={"10","15","20","30"}&"年度期限")。
Anh Nguyen
该评论由网站上的主持人最小化
你好! 我目前正在创建一个模板,该模板将根据学员的分数为我提供一个值。


我希望我可以为任何获得某个测验的团队成员添加 5 %


这就是我的想法。


5 = 100%
4= 99.9% 至 90%
3= 90% 至 85%
2= 85% 至 80%
1= &lt;79.99


希望各位大神帮我看看公式
金德特拉
该评论由网站上的主持人最小化
大家好,我需要为以下内容编写一个公式:

如果 A1 = "底部" AND A9 <14,则为 14,否则为 A9

OR A1 = "TOPS" AND A9 <5,则为 5,否则为 A9
FG
该评论由网站上的主持人最小化
嗨,FG,
您无法创建公式来满足 Excel 中的两个条件之一。
唐凯利
该评论由网站上的主持人最小化
嗨,凯利!

我实际上想出了一个解决方法!


=ROUND((IFERROR((IF(OR(AND($I9="BOTTOMS",BL9&gt;=$BY$3),AND($I9="TOPS",BL9&gt;=$BY$4)),BL9,VLOOKUP($I9,$BX$3:$BY$4,2,FALSE))),0)),0)


I9 - 根据输入的商品代码填充“BOTTOMS”或“TOPS”
BL9 - 商店指数定义的最小集合
BY9 - 买方定义的最小设置(即底部的 14 个单位和顶部的 5 个单位)
BX$3:$BY$4 - 如果 if 语句为假,则查找买方定义的最小集合
FG
该评论由网站上的主持人最小化
你好。 我怎样才能把它写成公式?

如果年份等于当前年份,则加 1。
如果年份是上一年,则加 1 或开始 1。
如果年份是 2 年前,则加 1 或开始 1。
KJ
该评论由网站上的主持人最小化
我正在尝试编写一个公式来查看

1. 这个数字是超过 1000 英镑还是低于 -1000 英镑

2. Plus 是下一个单元格超过 55% 或更多



到目前为止,我有 =OR(M4>=1000,M4<=-1000) 超过或低于 1000 英镑加减,但我不确定如何添加第二个标准假设它是 AND(N2>=55%)但是当我将它添加到公式中时它不起作用。
米歇尔 (Michelle)
该评论由网站上的主持人最小化
嗨米歇尔,
加载屏幕截图可以帮助我们了解您的问题并且需要更轻松!
唐凯利
该评论由网站上的主持人最小化
我将如何将其写入一个函数?


如果 D26 和 E26 为空白,则 C26-L7
如果 D26 不是空白而 E26 是空白,则 D26-L7
如果 E26 不是空白,则 E26-L7
G
该评论由网站上的主持人最小化
=IF(AND(D26="",E26=""),(C26-L7),IF(AND(D26&lt;&gt;"",E26=""),D26-L7,E26-L7))
唐凯利
该评论由网站上的主持人最小化
III
II
II
II

II
II
II
II

如何在excel中制作公式 - 如果列的任何一个值为III,则结果应显示为III,如果列的任何值为II,则如果II和III不存在,则结果应显示为II显示为我
基兰
该评论由网站上的主持人最小化
我想知道一件事,我在excel中制作了一个用户名和密码表,其中第三部分是状态我想知道如果我在状态的第三列中使用多个“if”和“or”中的公式对于列用户名,我可以同时使用他们的用户名或电话号码,然后我输入密码,如果用户名或电话号码中的任何一个与密码一起使用,如果有人在用户名状态中输入符号失败,则它会在状态登录列中给出。 如果有人可以回答我,这是用于 excel 中的电子邮件验证,如果回答了谢谢
穆罕默德哈里斯
该评论由网站上的主持人最小化
嗨,哈里斯,
您能否发送有关您的问题的屏幕截图?
唐凯利
该评论由网站上的主持人最小化
你好,
下面的等式是什么?

在单元格 K2 中,使用 IF 和 OR 函数以及结构化引用输入公式,以确定 Adam Moriarty 是否可以成为组长。
一种。 IF 功能应首先确定工作人员的服务年限是否大于 3 或工作人员的大学毕业生身份是否为“是”。 请记住使用对服务年限和大学毕业生列的结构化参考。
湾。 如果工作人员满足其中一项或两项标准,则该函数应返回文本 Yes。
C。 如果工作人员不符合这两个标准,该函数应返回文本 No。
杰西斯
该评论由网站上的主持人最小化
嗨,杰西斯,
感谢您的评论。 很抱歉,我想不出一个合适的公式来满足你的条件。 要了解有关 IF 功能的更多信息,我想这个网页很有帮助。
https://support.office.com/en-us/article/IF-function-69aed7c9-4e8a-4755-a9bc-aa8bbff73be2
唐凯利
该评论由网站上的主持人最小化
A 列有数值。 C & D 列有文字。

如果 A 列的任何行中的 2 个或多个单独的数值匹配,则评估 C 列和 D 列中的那些行以查找与给定文本不匹配并计为 1 的任何文本。如果文本匹配,则分配值 0 .


因此,如果..

A1:A2 = 1

A3:A4 = 2

C1=狗
C2=猫
C3=狗
C4:马


D1=猫
D2=狗
D3=马
D4=狗


由于 A1 和 A2 相互匹配,因此计算 C1、C2、D1、D2,如果任何单元格与“Dog”或“Cat”都不匹配,则分配值 1。在此示例中,由于所有单元格都包含“Dog”或"Cat" 将分配 0 值。

此外,

由于 A3 和 A4 相互匹配,请评估 C3、C4、D3、D4,如果任何单元格与“狗”或“猫”都不匹配,则分配值 1。在此示例中,由于单元格 C4 和 D3 包含的内容不是“Dog”或“Cat”将被赋值为 1。


预先感谢您!
驾驶室
该评论由网站上的主持人最小化
嗨驾驶室,
要了解有关 IF 功能的更多信息,我想这个网页很有帮助。
https://support.office.com/en-us/article/IF-function-69aed7c9-4e8a-4755-a9bc-aa8bbff73be2
唐凯利
该评论由网站上的主持人最小化
嗨,
我有个问题。 请帮我。

在一行中,具有不同值的 3 列必须在目标单元格中​​显示不同的解释。


=IF(A3&gt;0,"Welcome",IF(B3&gt;0,"Win",IF(C3&gt;0,"Will","HI")))



谢谢皮纳基
皮纳基·巴塔查亚
该评论由网站上的主持人最小化
嗨皮纳基,
在您的公式中,如果 A3 > 0,则 B3 和 C3 也可能大于 0。同样,当 B3 > 0 时,A3 和 C3 也可能大于 0。

通常在If函数中可以设置=IF(A3>0, "Welcome",””),即A3>0时返回“welcome”,A3不小于0时不返回。 在这个函数中,两个条件 A3>0 和 A3<=0 是互斥的。

在我的例子中 =IF(B2<=20,"Unordinary",IF(B2<=80, "Low", IF(B2<=160, "Middle", IF(B2<=200, "High", "" )))),第三个条件B3<=160包含第二个条件B2<=80,第二个条件也包含第一个。
kelly001
该评论由网站上的主持人最小化
大家好,


我正在尝试构建一个 IF 语句来帮助我们计算服务水平。 我们需要一个队列名称来具有与所有其他队列不同的时间要求。 我试图弄清楚如何让公式计算所有队列名称(B 列),以表明它们在我们的服务水平协议 (SLA) 范围内(如果它们在队列中的时间少于 30 秒)。 但是,对于名为 TS_DX_CP_ES* 的队列,如果少于 90 秒,我需要它显示它在 SLA 内。

我目前有以下公式,它适用于 90 秒规则,但如果我尝试下一个 IF 公式并更改队列名称和时间要求,我会收到错误消息。


当前有效的公式 =IF(AND([@[Queue Name]]="TS_DX_CP_ES*",[@[Queue time]]<0.00104166666666667),1,0)

给出#VALUE 的公式! 错误 - =IF(AND([@[Queue Name]]="TS_DX_CP_ES*",[@[Queue time]]<0.00104166666666667),1,0),IF(AND([@[Queue Name]]]="TS_PLU_US *",[@[队列时间]]<0.000358796296296296),1,0)



有什么建议或帮助吗?
马特·奥多姆(Matt Odom)
该评论由网站上的主持人最小化
大家好,


我正在尝试构建一个 IF 语句来帮助我们计算服务水平。 我们需要一个队列名称来具有与所有其他队列不同的时间要求。 我试图弄清楚如何让公式计算所有队列名称(B 列),以表明它们在我们的服务水平协议 (SLA) 范围内(如果它们在队列中的时间少于 30 秒)。 但是,对于名为 TS_DX_CP_ES* 的队列,如果少于 90 秒,我需要它显示它在 SLA 内。

我目前有以下公式,它适用于 90 秒规则,但如果我尝试下一个 IF 公式并更改队列名称和时间要求,我会收到错误消息。


当前有效的公式 =IF(AND([@[Queue Name]]="TS_DX_CP_ES*",[@[Queue time]]<0.00104166666666667),1,0)

给出#VALUE 的公式! 错误 - =IF(AND([@[Queue Name]]="TS_DX_CP_ES*",[@[Queue time]]<0.00104166666666667),1,0),IF(AND([@[Queue Name]]]="TS_PLU_US *",[@[队列时间]]<0.000358796296296296),1,0)
马特·奥多姆(Matt Odom)
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点