excel提示“无法输入指定的公式,因为它使用的嵌套层数超出了当前文件格式的允许值。

=IF(AND(G2<1000,C2="住宅"),0,IF(AND(G2>=1000,G2<2000,C2="住宅"),0,IF(AND(G2>=2000,G2<20000,C2="住宅"),0,IF(AND(G2>=20000,C2="住宅"),G2*0.015*F2,IF(AND(G2<1000,C2="非住宅"),0,IF(AND(G2>=1000,G2<2000,C2="非住宅"),0,IF(AND(G2>=2000,G2<20000,C2="非住宅"),0,IF(AND(G2>=20000,C2="非住宅"),G2*0.015*F2,"/"))))))))
=IF(AND(G2<1000,C2="住宅"),0,IF(AND(G2>=1000,G2<2000,C2="住宅"),0,IF(AND(G2>=2000,G2<20000,C2="住宅"),0,IF(AND(G2>=20000,C2="住宅"),G2*0.015*F2,IF(AND(G2<1000,C2="非住宅"),0,IF(AND(G2>=1000,G2<2000,C2="非住宅"),0,IF(AND(G2>=2000,G2<20000,C2="非住宅"),0,IF(AND(G2>=20000,C2="非住宅"),G2*0.05*F2,"/"))))))))

一开始的公式有误,最后的改为G2*0.05*F2。

第1个回答  推荐于2016-05-15
2003函数嵌套最多七层。
楼主的公式累赘了。其实等同于:
=IF(G2<20000,0,IF(OR(C2="住宅",C2="非住宅"),G2*0.015*F2,"/"))
当然,如果,前面的那些0只是模拟数据,实际各不相同,那就另当别论了。这种情况下,建议第一层判断用C2,然后在第二层用Lookup函数将G2落入的范围用序列{0,1000,2000,2000}来获取对应的值追问

你说对了,详情再看补充问题。另一条公式里面,0变成了一条有2个不同系数的计算方式,一个是0.04,一个是0.06。

追答

=IF(G2<20000,0,IF(C2="住宅",G2*0.015*F2,IF(C2="非住宅",G2*0.05*F2,"/")))

楼主看看这样可以吗

本回答被提问者采纳
第2个回答  2014-09-18
好像是嵌套的问题,不行你得改变算法。=if(and(g2>=2000,or(c2="住宅",c2="非住宅")),g2*0.015*f2,0)
第3个回答  2014-09-18
这个IF公式,我看完,感觉结果是 G2>=20000且C2=住宅或非住宅,得G2*1.5%*F2,其他为0
如果真实结果是这样的话,你就简写了。前面的IF都是没用。
你试下这个公式能实现吗?
=IF(AND(G2>=20000,OR(C2={"住宅","非住宅"})),G2*1.5%*F2,0)
第4个回答  2014-09-18
IF函数只能嵌套7层,而你嵌套了8层。
第5个回答  2014-09-18
2003版.xls格式文档的IF函数嵌套不能超过7层。
你这个公式前面几个结果都是0的话,可以合并。
相似回答