本教程说明了如何在Excel中使用嵌套的嵌套来检查多个条件。您还将学习其他一些功能,这些功能可能是在Excel中使用嵌套公式的好替代方法。
您通常如何在Excel工作表中实现决策逻辑?在大多数情况下,您将使用IF公式测试您的状况并在满足条件时返回一个值,如果未满足条件,则另一个值。为了评估多个条件并根据结果返回不同的值,您可以在彼此之间嵌套多个IF。
尽管非常受欢迎,但嵌套语句不是检查Excel中多个条件的唯一方法。在本教程中,您会发现一些绝对值得探索的替代方案。
excel嵌套如果语句
这是以通用形式嵌套的经典excel:
if(条件1 ,结果1 ,if(条件2 , result2 ,if( condition3 , result3 , result4 )))))))))您可以看到,如果函数嵌入到上一个函数的value_if_false参数中,则每个后续词。每个函数都包含在其自身的括号集中,但是所有关闭括号都在公式的末尾。
我们的通用嵌套如果公式评估3个条件,并返回4个不同的结果(如果条件不正确,则返回4)。如果语句告诉Excel进行以下操作:
测试条件1 ,如果为true-返回结果1 ,如果false -test条件2 ,如果为true -return r esult2 ,if false -test条件3 ,如果true -true -return -return result3 ,如果false -return result4例如,让我们根据他们的销售量来找出许多卖家的佣金:
委员会 | 销售量 |
3% | $ 1- $ 50 |
5% | $ 51- $ 100 |
7% | $ 101- $ 150 |
10% | 超过$ 150 |
在数学中,更改附加的顺序不会更改总和。在Excel中,更改函数的顺序会改变结果。为什么?因为嵌套的如果公式返回与第一个真实条件相对应的值。因此,在您的嵌套if语句中,根据公式的逻辑,将条件排列在正确的方向上 - 高到低或低到高。在我们的情况下,我们首先检查“最高”状况,然后检查“第二高”,依此类推:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
如果我们从自下而上的情况下将条件放在相反的顺序中,结果将是错误的,因为我们的公式将在第一个逻辑测试(B2> = 1)之后停止,任何值大于1。例如,我们的销售额为100美元 - 大于1,因此该公式不会检查其他条件并结果返回3%。
如果您宁愿将条件从低到高排列,请首先使用“少于“操作员”并评估“最低”状况,然后使用“第二个最低”,依此类推:
=IF($B2
如您所见,要构建嵌套if语句的逻辑一直到末尾,需要进行很多思考。而且,尽管Microsoft Excel允许在一个公式中功能最多嵌套64个,但这不是您在工作表中真正想做的事情。因此,如果您(或其他人)凝视着您的excel嵌套,如果公式试图弄清楚它的实际功能,那么该重新考虑您的策略并可能在您的武器库中选择其他工具了。
有关更多信息,请参阅excel nested If语句。
如果有或/和条件嵌套
如果您需要评估几组不同的条件,则可以使用或功能表达这些条件,然后将功能嵌套在IF语句中,然后将IF语句彼此嵌套。
嵌套在Excel中或语句中
通过使用或函数,您可以在每个功能的逻辑测试中检查两个或更多不同的条件,如果有(至少一个)或参数评估为true,则返回true。要查看实际工作原理,请考虑以下示例。
假设您有两列销售,例如1月在B列中的销售额和C列的2月销售额。换句话说,您建立一个具有以下逻辑的公式:如果Jan或2月的销售额大于150美元,则卖方获得10%的佣金,如果Jan或2月的销售大于或等于101美元,则卖方获得7%的佣金,等等。
要完成它,请编写一些语句,例如或(B2> 150,C2> 150),然后将它们嵌套到上面讨论的IF函数的逻辑测试中。结果,您将获得此公式:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))
并根据较高的销售额分配委员会:
有关更多公式的示例,请参阅excel if if或convate。
嵌套在Excel和语句中
如果您的逻辑测试包括多种条件,并且所有这些条件都应评估为true,请使用和功能表达它们。
例如,要根据销售量较低的佣金分配佣金,请采取上述公式并替换或用和语句。换句话说,您告诉Excel仅当Jan和Feb的销售额大于150美元,如果Jan和2月的销售额大于或等于101美元,则返回10%,依此类推。
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
结果,如果公式根据B和C列中的较低数量计算佣金。
如果您想返回0%而不是空白单元格,请用0%替换最后一个参数中的一个空字符串('''):
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
可以在此处找到更多信息:如果有多个和/或条件,则表现出色。
vlookup而不是嵌套如果在Excel中
当您处理“比例”时,即覆盖整个范围的数值的连续范围,在大多数情况下,您可以使用vlookup函数而不是嵌套IF。
对于初学者,制作一个参考表,如下面的屏幕快照所示。然后,构建具有近似匹配的Vlookup公式,即将range_lookup参数设置为true。
假设查找值在B2中,并且参考表为f2:g5,则公式如下:
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
请注意,我们使用绝对参考($ f $ 2:$ g $ 5)修复了Table_array ,以正确复制到其他单元格:
通过将Vookup公式的最后一个参数设置为True,您可以告诉Excel搜索最接近的匹配项- 如果找不到确切的匹配项,请返回下一个小于查找值的最大值。结果,您的公式不仅将匹配查找表中的确切值,还将匹配介于两者之间的任何值。
例如,B3中的查找值为$ 95。该数字在查找表中不存在,在这种情况下,具有精确匹配的Vlookup将返回#N/A错误。但是,具有近似匹配的Vlookup继续进行搜索,直到找到小于查找值的最近值(在我们的示例中为$ 50),并从同一行中的第二列返回一个值(为5%)。
但是,如果查找值小于查找表中的最小数字,或者查找单元格是空的?在这种情况下,Vlookup公式将返回#N/A错误。如果不是您真正想要的,则在未找到查找值时嵌套vlookup在IFERROR内部并向输出提供值。例如:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
重要说明!对于具有近似匹配的vlookup公式可以正常工作,必须按升序排序查找表中的第一列,从最小到最大。
有关更多信息,请参阅确切的匹配vlookup vs.近似匹配vlookup。
IFS语句作为嵌套的替代
在Excel 2016及以后的版本中,Microsoft引入了一个特殊功能,以评估多种条件 - IFS功能。
一个IFS公式最多可以处理127个逻辑_test / value_if_true对,以及第一个评估对true“ wins”的逻辑测试:
ifs(logical_test1,value_if_true1,[logical_test2,value_if_true2] ...)...)根据上述语法,如果可以以这种方式重建公式,则我们的嵌套是:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
请注意,如果未满足指定条件,则IFS功能将返回#N/A错误。为了避免这种情况,您可以在公式的末尾添加一个logical_test / value_true ,它将返回0或空字符串(“”)或您想要的任何值,如果以前的逻辑测试都不是正确的:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
结果,如果B列中的相应单元格为空或包含文本或负数,则我们的公式将返回一个空字符串(空白单元),而不是#N/A错误。
笔记。像嵌套IF一样,Excel的IFS函数返回与评估为true的第一个条件相对应的值,这就是为什么IFS公式中逻辑测试的顺序很重要的原因。
有关更多信息,请参阅Excel IFS功能而不是嵌套IF。
选择代替嵌套如果在Excel中的公式
Excel中单个公式中测试多个条件的另一种方法是使用“选择函数”,该功能旨在根据该值的位置从列表中返回值。
应用于我们的样本数据集,该公式采用以下形状:
=CHOOSE((B2>=1) (B2>=51) (B2>=101) (B2>150), 3%, 5%, 7%, 10%)
在第一个参数( index_num )中,您可以评估所有条件并添加结果。鉴于True等于1,然后false为0,因此您可以计算返回值的位置。
例如,B2中的值为$ 150。对于此值,前三个条件是正确的,最后一个条件(B2> 150)为假。因此, index_num等于3,这意味着返回第三个值,为7%。
提示。如果逻辑测试都不是正确的,则index_num等于0,公式将返回#value!错误。一个简单的修复程序是在IFERROR函数中包装选择:
=IFERROR(CHOOSE((B2>=1) (B2>=51) (B2>=101) (B2>150), 3%, 5%, 7%, 10%), "")
有关更多信息,请参阅Excel选择具有公式示例的功能。
如果在Excel中,开关功能是嵌套的简洁形式
在处理固定的预定义值的情况下,而不是比例时,开关函数可以是if语句的复杂嵌套的紧凑型替代方案:
switch(expression,value1,result1,value2,result2,…,[默认])开关函数可根据值列表评估表达式,并返回对应于第一个发现匹配的结果。
如果您想根据以下等级而不是销售量来计算佣金,则可以在Excel中使用此紧凑版的嵌套版本:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
或者,您可以制作一个参考表,如下面的屏幕截图中所示,并使用单元格引用而不是硬编码值:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
请注意,除了第一个带有$符号的引用以外,我们锁定所有参考,以防止它们在将公式复制到其他单元格时更改:
笔记。 Switch功能仅在Excel 2016及更高版本中可用。
有关更多信息,请参阅Switch功能 - 嵌套IF语句的紧凑形式。
在Excel中函数串联多个
如上一个示例中所述,仅在Excel 2016中引入了开关功能。要处理较旧的Excel版本中的类似任务,您可以通过使用Convatenate Operator(&)或CondateNate功能组合两个或更多IF语句。
例如:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
或者
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
您可能已经注意到,我们在两个公式中将结果乘以1。这样做是为了将Concatenate公式返回的字符串转换为一个数字。如果您的预期输出是文本,则不需要乘法操作。
有关更多信息,请参阅Excel中的Concatenate功能。
您会看到Microsoft Excel提供了一些嵌套的好替代方案,如果公式,希望本教程为您提供了一些有关如何在工作表中利用它们的线索。要仔细查看本教程中讨论的示例,欢迎您下面下载我们的示例工作簿。我感谢您阅读,并希望下周在我们的博客上见到您!
练习工作簿下载
excel嵌套if语句 - 示例(.xlsx文件)
以上是excel嵌套if语句 - 示例,最佳实践和替代方案的详细内容。更多信息请关注PHP中文网其他相关文章!

Google主张Countif:综合指南 本指南探讨了Google表中的多功能Countif函数,展示了其超出简单单元格计数的应用程序。 我们将介绍从精确和部分比赛到Han的各种情况

本教程提供了共享Excel工作簿,涵盖各种方法,访问控制和冲突解决方案的综合指南。 现代Excel版本(2010年,2013年,2016年及以后)简化了协作编辑,消除了M的需求

本教程探讨了将.xls文件转换为.jpg映像的各种方法,包括内置的Windows工具和免费的在线转换器。 需要创建演示文稿,安全共享电子表格数据或设计文档吗?转换哟

本教程阐明了Excel名称的功能,并演示了如何定义单元格,范围,常数或公式的名称。 它还涵盖编辑,过滤和删除定义的名称。 Excel名称虽然非常有用,但通常是泛滥的

本教程阐明了平均值的标准偏差和标准误差之间的区别,指导您掌握标准偏差计算的最佳Excel函数。 在描述性统计中,平均值和标准偏差为interinsi

该Excel教程演示了如何计算正方根和n根。 找到平方根是常见的数学操作,Excel提供了几种方法。 计算Excel中正方根的方法: 使用SQRT函数:

解锁Google表的力量:初学者指南 本教程介绍了Google Sheets的基础,这是MS Excel的强大而多才多艺的替代品。 了解如何轻松管理电子表格,利用关键功能并协作


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境