Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2602|回复: 8

[已解决]求高手帮忙解决超过7层的if函数公式

[复制链接]
发表于 2015-2-25 22:55 | 显示全部楼层 |阅读模式
求高手帮忙解决超过7层的if函数公式,
最佳答案
2015-2-26 09:43
CHOOSE函数也有缺点,就是它的判断条件必须是自然数。

其实就用IF函数也可以突破七层嵌套:
如果计算结果是数值(或者日期、时间):
=IF(条件1,结果1,)+IF(条件2,结果2,)+IF(条件3,结果3,)+IF(条件4,结果4,)+IF(条件5,结果5,)+......+IF(条件100,结果100,)
如果计算结果是文本:
=IF(条件1,结果1,)&IF(条件2,结果2,)&IF(条件3,结果3,)&IF(条件4,结果4,)&IF(条件5,结果5,)&......&IF(条件100,结果100,)

当然,实际工作中是很少这样使用IF函数的。因为太多数情况可以用CHOOSE、LOOKUP等函数组合得到更加简短的公式。

新建 Microsoft Excel 工作表.rar

5.81 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-2-26 01:08 | 显示全部楼层
  1. =IF(G2<3,EDATE("2014-11-26",G2),IF(G2<7,EDATE("2014-12-26",G2),))
复制代码
回复

使用道具 举报

发表于 2015-2-26 01:12 | 显示全部楼层
本帖最后由 tgydslr 于 2015-2-26 01:18 编辑
  1. =IF(G2<7,EDATE("2014-11-26",G2+(G2>2)),)
复制代码

点评

楼下公式就是一层嵌套啊。。255个那是参数。。他也突破不了七层嵌套。你说的太笼统了 容易让人误解。  发表于 2015-2-26 07:14
回复

使用道具 举报

发表于 2015-2-26 01:15 | 显示全部楼层

除了if嵌套,还可以CHOOSE
  1. =CHOOSE(G2,DATE(2014,12,26),DATE(2015,1,26),DATE(2015,2,26),DATE(2015,3,26),DATE(2015,4,26),DATE(2015,5,26),DATE(2015,6,26),DATE(2015,7,26),DATE(2015,8,26),DATE(2015,9,26),DATE(2015,10,26),DATE(2015,11,26))
复制代码
新建 Microsoft Excel 工作表.rar (8.43 KB, 下载次数: 7)

点评

破解if嵌套超过7层的最好办法也就是choose了,最多可以到255个  发表于 2015-2-26 01:22

评分

参与人数 1 +19 收起 理由
tgydslr + 19 很给力!

查看全部评分

回复

使用道具 举报

发表于 2015-2-26 01:18 | 显示全部楼层
本帖最后由 tgydslr 于 2015-2-26 01:20 编辑
  1. =EDATE("2014-11-26"*(G2<7),(G2<7)*(G2+(G2>2)))
复制代码
回复

使用道具 举报

发表于 2015-2-26 09:43 | 显示全部楼层    本楼为最佳答案   
CHOOSE函数也有缺点,就是它的判断条件必须是自然数。

其实就用IF函数也可以突破七层嵌套:
如果计算结果是数值(或者日期、时间):
=IF(条件1,结果1,)+IF(条件2,结果2,)+IF(条件3,结果3,)+IF(条件4,结果4,)+IF(条件5,结果5,)+......+IF(条件100,结果100,)
如果计算结果是文本:
=IF(条件1,结果1,)&IF(条件2,结果2,)&IF(条件3,结果3,)&IF(条件4,结果4,)&IF(条件5,结果5,)&......&IF(条件100,结果100,)

当然,实际工作中是很少这样使用IF函数的。因为太多数情况可以用CHOOSE、LOOKUP等函数组合得到更加简短的公式。
回复

使用道具 举报

发表于 2015-2-26 09:51 | 显示全部楼层
qinqh_yl 发表于 2015-2-26 09:43
CHOOSE函数也有缺点,就是它的判断条件必须是自然数。

其实就用IF函数也可以突破七层嵌套:

这个讲解非常透彻,对于工作中非常多的同事并不会choose、lookup函数,但是大家对if函数理解起来相对容易。所以工作中遇到的表格通常不使用非常生僻的函数,因为很多时候解释起来非常麻烦,对于if函数解释起来要容易许多。
回复

使用道具 举报

发表于 2015-2-26 10:49 | 显示全部楼层
=VLOOKUP(G2,{1,"2014-12-26";2,"2015-1-26";3,"2015-2-26";4,"2015-3-26";5,"2015-4-26";6,"2015-5-26"},2,1)
回复

使用道具 举报

 楼主| 发表于 2015-2-26 12:59 | 显示全部楼层
tgydslr 发表于 2015-2-26 01:08

非常感谢各位老师的热心帮助!如果就解决本次需求二楼的方法最简洁,只将公式修改为=EDATE("2014-11-26",G2)就行了,但是用if函数突破七层限制觉得还是版主的方法为正解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-22 03:05 , Processed in 0.313498 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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