ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-3-3 09:31 | 显示全部楼层
绝啦呵呵!大开眼界。

TA的精华主题

TA的得分主题

发表于 2004-3-5 06:29 | 显示全部楼层
刚刚完成的一个实例:保健推拿收费计算。(单位:钟,最低数量,0.5钟) 分别有两种收费:人民币和港币。 G3=消费钟数(0.5钟以上)
AC3=币种(人民币用1表示,港币用2表示,免费用0表示)
W3=特价(如果此格出现等于G3的正值,则表示该钟数以特价收费,1个钟以内收40,2个钟收人民币70、港币65,3个钟收人民币90、港币85,3个钟以上者,每个钟加收人民币或港币20元,遇0.5钟者也照收20元,)
X3=优惠(手工输入优惠价:45、40、35或30)
人民币收费:每钟收费50元,九折45元,八折40元,特价:1个钟40元,2个钟70元,3个钟90元,3个钟以上每钟加收20元,0.5钟也照收20元)
港币收费:每钟收费45元,九折40元,八折45元,特价:1个钟40元,2个钟65元,3个钟85元,3个钟以上每钟加收20元,0.5钟也照收20元) 无论人民币或港币,每个钟收费为45元时,0.5钟的费为25元。 =IF(AC3=1,IF(B3=0,0,SUM(IF(W3=0.5,20,0),IF(W3=1,40,0),IF(W3=1.5,60,0),IF(W3=2,70,0),IF(W3=2.5,90,0),IF(AND(W3>=3,W3=INT(W3)),(W3-3)*20+90,IF(W3>=3,(W3-3.5)*20+90+20,0)),IF(AND(W3=0,X3>0),IF(X3=45,INT(G3)*X3+25,IF(X3=35,INT(G3)*X3+20,INT(G3)*X3+(G3-INT(G3))*25)),0),IF(AND(W3=0,X3=0),G3*50,0))),IF(B3=0,0,SUM(IF(W3=0.5,20,0),IF(W3=1,40,0),IF(W3=1.5,60,0),IF(W3=2,65,0),IF(W3=2.5,85,0),IF(AND(W3>=3,W3=INT(W3)),(W3-3)*20+85,IF(W3>=3,(W3-3.5)*20+85+20,0)),IF(AND(W3=0,X3>0),G3*X3,0),IF(AND(W3=0,X3=0,G3=INT(G3)),G3*45,IF(AND(W3=0,X3=0),INT(G3)*45+25,0)))))

TA的精华主题

TA的得分主题

发表于 2004-3-5 15:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-3-5 16:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
换个函数如MATCH\CHOOSE.....可能会有更好的解决办法,也更简单

TA的精华主题

TA的得分主题

发表于 2004-3-5 17:10 | 显示全部楼层
我想版主并非是针对生成A-Z字母的问题的解决方法,只是想告诉大家一种思路,怎样来突破IF函数7层限制的一种方法。
其实生成A-Z的方法有很多,就没有必要在这里讨论了。

TA的精华主题

TA的得分主题

发表于 2004-3-5 19:23 | 显示全部楼层
IF函数的7层限制是微软给定的,除了微软,谁也改变不了这个“事实”。 所谓的“突破”和“实现”只是“变相”做到的,并非真正地达到了7层以上。 (如果不用多个单元,不用其它函数配合,你能做得到吗?)
[此贴子已经被作者于2004-3-5 19:35:03编辑过]

TA的精华主题

TA的得分主题

发表于 2004-3-5 19:34 | 显示全部楼层
这种牛角尖不钻也罢,还不如讨论一下如何处理各种实际问题好过。

TA的精华主题

TA的得分主题

发表于 2004-3-5 20:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-3-5 21:08 | 显示全部楼层
回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",""))
在一个单元格实现预期效果好象不很理想吧,以前我就试过,不信大家遇见实际问题试试看。

TA的精华主题

TA的得分主题

发表于 2004-3-5 22:39 | 显示全部楼层
以下是引用lumben在2004-3-5 19:23:00的发言:
IF函数的7层限制是微软给定的,除了微软,谁也改变不了这个“事实”。 所谓的“突破”和“实现”只是“变相”做到的,并非真正地达到了7层以上。 (如果不用多个单元,不用其它函数配合,你能做得到吗?)
To 朋友:
既然你承认已经做到了,实现了!就应该承认。我一直在强调版主的这种思路,版主只是给我们一种新的思路,让我们能在解决问题时多一种理念!就此而已。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 02:42 , Processed in 0.036465 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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