ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: qhm

如何实现函数IF的嵌套超过七层?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-18 08:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
半榻提供的思路非常值得我们学习,佩服
但是前面有不少同学非要较劲,说硬套那个公式有问题,你不根据相同情况修改当然有问题了
对于个人所得税函数,我个人认为还是用自定义函数
对于无数层嵌套问题,if肯定不合适,我认为用列表和lookup来实现比较好

TA的精华主题

TA的得分主题

发表于 2009-4-18 11:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-4-18 13:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-22 21:31 | 显示全部楼层
原帖由 半榻茶烟 于 2002-10-21 22:40 发表
=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 ...

六楼的这个方法很好用,而且可以复制公式到新的单元格,我用这个方法解决了我的问题:
D3             D4
90--100    4.0
85--89      3.7
81--84      3.3
78-80       3.0
75--77      2.7
72--74       2.3
69--71     2.0
66--68     1.7
63--65       1.3
60--62        1.0
D4里的公式:=IF(D3>=90,"4.0",IF(AND(D3>=85,D3<=89),"3.7",IF(AND(D3>=81,D3<=84),"3.3",IF(AND(D3>=78,D3<=80),"3.0", IF(AND(D3>=75,D3<=77), "2.7",IF(AND(D3>=72,D3<=74), "2.3",IF(AND(D3>=69,D3<=71), "2.0","")))))))&IF(AND(D3>=66,D3<=68),"1.7",IF(AND(D3>=63,D3<=65),"1.3",IF(AND(D3>=60,D3<=62),"1.0",0)))

TA的精华主题

TA的得分主题

发表于 2009-5-23 22:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-7-8 21:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=IF(C9>=97,100,IF(C9>=94,97,IF(C9>=92,94,IF(C9>=90,92,IF(C9>=88,90,IF(C9>=87,88,""))))))&IF(C9>=85,87,IF(C9>=84,85,IF(C9>=80,80,IF(C9>=75,80,IF(C9>=70,70,60)))))*0.45

107楼的方法我也试了,还是不行。

当C9>=87时,得数就会出错,也就是说&前给定的条件无法计算出得数,请看下列计算得数
得分     计算结果
73.92         31.5
86.69         39.15
85.82         39.15
84.92         38.25
78.24         36
90.60         9239.15
87.54         8839.15
87.08         8839.15


为什么呢

TA的精华主题

TA的得分主题

发表于 2009-7-18 10:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=(IF(C9>=97,100,IF(C9>=94,97,IF(C9>=92,94,IF(C9>=90,92,IF(C9>=88,90,IF(C9>=87,88,""))))))&IF(C9>=85,87,IF(C9>=84,85,IF(C9>=80,84,IF(C9>=75,80,IF(C9>=70,70,60))))))*0.45
楼上的看看这样可以吗?

TA的精华主题

TA的得分主题

发表于 2009-8-3 19:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 56楼 redhh 的帖子

这个不行,单元格出现FALSE

TA的精华主题

TA的得分主题

发表于 2009-8-3 19:19 | 显示全部楼层

这个也不行

原帖由 llc3791 于 2009-4-17 23:19 发表
★ 献给初学者:《循序渐进学Excel》视频教程 ★
一个单元格也可以实现!
=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, ...

提示单元格FALSE,不能进行下一步计算

TA的精华主题

TA的得分主题

发表于 2009-8-4 10:49 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 04:55 , Processed in 0.047752 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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