if函数的多层if嵌套怎么优化嵌套

电脑教程子分类用数组公式解决 IF() 函数 7 层嵌套问题
Excel 中的函数嵌套最多可有 7 层。对于 IF(),有些时候可以配合AND(),OR()来解决多层次问题。不过有些时候用它们是解决不了的,这就需要我们考虑其它的方法。最开始,我还以为只有 IF() 函数有 7 层嵌套问题,后来用想用 CHOOSE() 替换 IF() 时,才发现 CHOOSE() 也不能做大于 7 层的嵌套。最后得出:Excel 中可能所有函数都不能超过7层嵌套。------------------------对 IF() 7 层嵌套的解决:------------------------先看看 IF() 函数的语法:IF(logical_test,value_if_true,value_if_false),这里要研究的是 logical_test ,它只能返回 TRUE 或 FALSE ,而 Excel 中 TRUE 值为1, FALSE 值为0,不过要想体现出 1 和 0 ,必须对 TRUE 和 FALSE 作加 0 或 乘 1 之类的操作(也就是说把类型转换一下)。再一点,也是非常关键的一点是:对于IF()结构来说,只要遇到 logical_test 为 TRUE(按照条件的顺序) ,则结束判断。原理清楚了之后,就开始实际操作了:首先,把条件按顺序陈列出来。比如:A1&-50,-50&=A1&0,A1=0,0&A1&50,...相当于:IF(A1&-50,...,IF((A1&=-50)*(A1&0),...,IF(A1=0,...,IF((A1&0)*(A1&50),...,...))))说明:这里的 * 含义为 AND , 之所以用它,是因为将用到数组公式。写到这里就差不多了,最后要做的就是:使条件和结果对应起来。根据刚才说的,只要遇到条件为 TRUE(按照条件的顺序) ,则结束判断。所以我们要找到第一个满足条件的位置。先给个例子:{=MIN(IF({TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}+0={1,1,1,1,1,1,1,1,1},{1,2,3,4,5,6,7,8,9}))}这里的{TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}即为条件,共有九个;{1,1,1,1,1,1,1,1,1}相当于一个全是 TRUE 的数组(这是为了方便,完全可以用TRUE替换);{1,2,3,4,5,6,7,8,9}是满足条件对应的操作(这里只是简单的数值)。MIN()目的是为了找到第一个满足条件的位置。这里有个问题,就是如果条件都为 FALSE 时,则 MIN() 返回0,这是因为没有与全不满足条件对应的项,如果再加个判断条件,就显得冗余了,简单的办法是对单元个设置 自定义数字格式 , 对 0 位置设置格式即可。比如:...;...;"数据未找到"上面的例子是一个标准的IF()结构,如果想让条件为 FALSE 时,执行相应的操作,只要把{1,1,1,1,1,1,1,1,1}中的1换成0即可IF(条件,真,假)&IF(条件,真,假)&IF(条件,真,假)&..............其中假为空,即输入""(两个双引号)=(I3/D3&=73.08)*7+(AND(I3/D3&73.08,I3/D3&=69.03))*6.5+(AND(I3/D3&69.03,I3/D3&=64.5))*6或一个单元格实现 =IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",""))))))))&IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",""))))))))&IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",""))))))))&IF(A1=25,"Y",IF(A1=26,"Z",""))(数组形式输入)。或将七层之外的IF语句,放在另外的单元格内来处理,例:C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推,可以实现在数据库语言中CASE语句的功能。当然,对于初学者会有一些困难。这里给出一个解决IF函数嵌套超出范围的方法,可能比较容易使初学者看懂。其思路是:一个单元格做不了的事,分给两个或更多的单元格来做,文字内容是这样,函数内容也是这样。例子:假如 A1=1,则 B1=A;A1=2,则 B1=B …… A1=26,则 B1=Z解决方法如下:B1 = IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",C1))))))))C1 = IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",D1))))))))D1 = IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",E1))))))))E1 = IF(A1=25,"Y",IF(A1=26,"Z","超出范围"))根据情况,可以将 C、D、E 这些从事辅助运算的单元格放在其它任何地方,或一个单元格也可以实现!=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",""))))))))&IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",""))))))))&IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",""))))))))&IF(A1=25,"Y",IF(A1=26,"Z",""))
阅读(...) 评论() 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
巧用vba突破excel中if函数7层嵌套的限制
下载积分:1000
内容提示:巧用vba突破excel中if函数7层嵌套的限制
文档格式:DOC|
浏览次数:130|
上传日期: 10:26:22|
文档星级:
该用户还上传了这些文档
巧用vba突破excel中if函数7层嵌套的限制
官方公共微信求助一个excel公式关于if多层嵌套的。, 求助一个excel公式关于if多层嵌
求助一个excel公式关于if多层嵌套的。 如图,怎么样才能把后面那些显示的去掉,但是公式还得存在,怎么样写一个if嵌套的语句。
jiaqi4-11-20 求助一个excel公式关于if多层嵌套的。
截图请截出行号和列标,以方便书写公式,假设余额在D列,那么在D3单元格输入以下公式,然后向下填充公式=IF(COUNT(B3:C3)=0,&乏氦催教诎寄挫犀旦篓&,D2+B3-C3)
乏氦催教诎寄挫犀旦篓D3中现在的公式=IF(COUNT(B3:C3)=0,&&,D3中原来的公式)下拉填充。
=if(B1&&0,B1-CI,&&)IF()函数应用中的注意问题?
谢邀使用IF函数主要要注意以下二点:一、
在多层嵌套时,一定要注意逻辑判断的递进层级与先后顺序,以免公式出错。IF函数很简单,但一些新手没有用过函数,在稍微复杂一点的情况时就嵌套出错,就主要是由于没有掌握好逻辑判断层次。二、在编写多层IF函数公式时,应考虑到其可容纳的嵌套层级上限,2003版为7级,2007版开始,实现了质的飞跃,达到了64级。
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 多层if嵌套怎么优化 的文章

 

随机推荐