EXCEL中如何解决IF函数嵌套不能超过8层数的问题

A1输入的可能性有10种:赵,钱,孙,李,周,吴,郑,王,冯,陈
当A1为“赵”时,B1为公式:"ZHAO"&C1&"-"&D1;
当A1为“冯”时,B1为公式:"FENG"&C1&"-"&D1;

当A2为“王”是,B2为公式:"WANG"&C2&"-"&D2......

问题有两个:
1、如果用IF,超过8层就不行了;
2、如果用LOOKUP,B2调出来的是公式,怎么样能让公式里的行数放在那里,就为所在行数?

恳请高手帮忙!

用自定义函数。ATL+F11,插入模块,把代码粘进去

Public Function fx(x As Range)
Select Case x
Case "赵"
fx = "ZHAO" & [C1] & "-" & [D1]
Case "冯"
fx = "FENG" & [C1] & "-" & [D1]
case "王"
(这里可参照上面的样式,自已写其它条件,N个都行)
End Select

然后返回EXCEL中,=fx(a1) 就可以用了
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-17
1、2003及以下版本IF嵌套最多为7层,2007以上版本IF最多64层
2、利用定义名称功能可是突破7层,把其中的一层或者多层定义为名称
然后就可以随便多少层了
第2个回答  推荐于2017-12-16
if(if...)&if()再继续,我做过一个题目,反正基本可以解决嵌套问题。http://zhidao.baidu.com/question/113687061.html本回答被提问者采纳
第3个回答  2009-08-28
在$E$1:$F$10做一个汉字和拼音的对照表,E列汉字,F列拼音。
B1=VLOOKUP(A1,$E$1:$F$10,2,FALSE)&C1&"-"&D1
下拉
第4个回答  2009-08-28
如果你单纯做数据的话,用两列分开套试试,不过这只是我凭空想象,没用过,不过想想还是可能的,我做过其它的两列的
相似回答