EXCEL表格的IF函数超过7层,怎么办?

A7=IF(M7="F",O7*$G$343,IF(M7="LK",O7*$G$343,IF(M7="T",O7*$G$344,IF(M7="L",O7*$G$345,IF(M7="X",O7*$G$346,IF(M7="A",O7*$G$347,IF(M7="B",O7*$G$348,IF(M7="C",O7*$G$349,IF(M7="D",O7*$G$350)))))))))

请问这个IF公式超过了7层,用OFFICE2003有什么办法解决?
我的意思是:单元格M7,有很多个分类,F、T、A、B、C、D……,而根据不同的分类,得出的结果是等于O7乘于相应的比例(每种分类有不同的比率)。希望我的表达能让你们看得懂。

按你公式改成如下
=IF(OR(M7={"F","LK"}),G343,IF(M7="T",G344,IF(M7="L",G345,IF(M7="X",G346,IF(M7="A",G347,IF(M7="B",G348,IF(M7="C",G349,IF(M7="D",G350,""))))))))*O7

再缩简
=IF(OR(M7={"F","LK"}),G343,IF(M7="T",G344,IF(M7="L",G345,IF(M7="X",G346,IF(OR(M7={"A","B","C","D"}),INDIRECT("G"&346+CODE(M7)-64),"")))))*O7
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-30
可以用自定义名称来解决。另,你的前两个if可以合并为一个,你这两个是用的同一结果)
从你的公式看来,可以考虑用vlookup函数试下追问

我试过用VLOOKUP,可是他不运算结果,只显示公式,我要的结果是有运算后的结果,不同分类有不同的运算比例计算后的结果

追答

你M7对应的G列值是固定的吗?
换句话说你的343行以后的这些行,是不是有M7中的字母与G列对应
如F列的F343:F350中的数据是不是你M7中的数据?如果是,请用以下函数
=VLOOKUP(M7,F343:G350,2,0)*O7

这个区域的行数还可以更多,这样就解决了if函数7层的问题了

第2个回答  2012-09-30
=IF(ISERR(FIND(LEFT(A4,1),"地墙天洁灯专水土")),IF(OR(F4=0,F4=""),"",MAX(B$1:B3)+1),TEXT(FIND(LEFT(A4,1),"地墙天洁灯专水土"),"[DBNum1]"))
相似回答