可以将公式改为
=INDEX({"09","08","07","06","05","04","03","00"},MATCH(,0/(CHOOSE(ROW(1:8),F4125,BN4125,BM4125,BJ4125,BH4125,BF4125,AW4125,A4125)>0),))
同时按下CTRL+SHIFT+回车,输入数组公式。
若改为只有四层,公式
=INDEX({"09","08","07","06"},MATCH(,0/(CHOOSE(ROW(1:4),F4125,BN4125,BM4125,BJ4125)>0),))
自己找规律更改。
这样嵌套层数就限制不住公式了。
不知道你完整的算法,就上面的可以这么做。
IF(F4125>0,"09",“A")&IF(BN4125>0,"08",“A")&...(假设这一串公式叫:那一串)
得到的结果是A0807...或0908A...或09A08...
你需要结果应该是第一个0N,用find(”0“,那一串)得到第一个0的位置,然后mid(那一串,find结果,2)
if嵌套超出7层03版的系统是不允许的。也就是说if()括号里不允许存在7个if条件。那么用&令其嵌套不超出7层就可以了。
=IF(F4125>0,"09",IF(BN4125>0,"08",IF(BM4125>0,"07",IF(BJ4125>0,"06",IF(BH4125>0,"05","")))))&IF(AND(BN4125<=0,BM4125<=0,BJ4125<=0,BH4125<=0),IF(BF4125>0,"04",IF(AW4125>0,"03",IF(A4125>0,"00",""))))
改用2007版就可以了,2003版可以这样试试=IF(F4125>0,"09",IF(BN4125>0,"08",IF(BM4125>0,"07",IF(BJ4125>0,"06",IF(BH4125>0,"05","")))))&IF(AND(BN4125<=0,BM4125<=0,BJ4125<=0,BH4125<=0),IF(BF4125>0,"04",IF(AW4125>0,"03",IF(A4125>0,"00"))),"")
用辅助列的办法,
把对应的关系用列表方式列出来
然后用vlookup或其他函数取回对应的数值即可