Excel嵌套IF函数超出限制求助(无需VLOOKUP/VBA)
解决方案:用IFS函数替代嵌套IF(Excel 2019+/365)
直接使用IFS函数,它支持多条件平级判断,完全避免嵌套层级限制,逻辑和原公式完全一致,且更易读:
=IFS( AQ1<=-6,"-6", AQ1=-5,IF(AR1>=5,AQ1&".5",AQ1), AQ1=-4,IF(AR1>=2,IF(AR1<4,AQ1&".2",IF(AR1<7,AQ1&".4",AQ1&".7")),AQ1), AQ1=-3,IF(AR1>=0,IF(AR1<2,AQ1&".0",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<8,AQ1&".6",AQ1&".8"))))),AQ1), AQ1=-2,IF(AR1>=-1,IF(AR1<1,AQ1&".-1",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<9,AQ1&".7",AQ1&".9"))))))),IF(AR1>=-5,AQ1&".5",AQ1)), AQ1=-1,IF(AR1>=-2,IF(AR1<-1,AQ1&".-2",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<9,AQ1&".7",AQ1&".9"))))))))),AQ1), AQ1=0,IF(AR1>=-3,IF(AR1<-1,AQ1&".-3",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<8,AQ1&".7",AQ1&".8"))))))))),AQ1), AQ1=1,IF(AR1>=-3,IF(AR1<-2,AQ1&".-3",IF(AR1<-1,AQ1&".-2",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<8,AQ1&".6",AQ1&".8"))))))))),AQ1), AQ1=2,IF(AR1>=-2,IF(AR1<0,IF(AR1>=-1,AQ1&".-2",AQ1&".-3"),IF(AR1<1,AQ1&".-1",IF(AR1<2,AQ1&".0",IF(AR1<3,AQ1&".1",IF(AR1<4,AQ1&".2",IF(AR1<5,AQ1&".3",IF(AR1=6,AQ1&".4",IF(AR1>=6,AQ1&".6",AQ1))))))))),AQ1), AQ1=3,IF(AR1>=-1,IF(AR1<2,AQ1&".-3",IF(AR1<3,IF(AR1>=0,AQ1&".-1",AQ1&".0"),IF(AR1<4,AQ1&".1",IF(AR1<5,AQ1&".2",IF(AR1<6,AQ1&".3",IF(AR1>=5,AQ1&".5",AQ1))))))),AQ1), AQ1=4,IF(AR1>=0,IF(AR1<5,AQ1&".-4",IF(AR1<6,AQ1&".0",IF(AR1>=2,AQ1&".2",AQ1))),AQ1), AQ1=5,IF(AR1>=0,AQ1&".0",AQ1), AQ1>=6,"6", TRUE,AQ1 )
说明:
- 公式按
AQ值分组处理,每个分组内的AR区间判断用少量嵌套,整体层级远低于Excel限制 - 用
&替代CONCATENATE简化公式,功能完全一致 - 最后
TRUE,AQ1作为默认返回值,匹配原公式逻辑
旧版Excel兼容方案(无IFS函数)
如果使用Excel 2016及更早版本,可使用以下拆分层级的公式,控制单层级不超过旧版Excel的7层限制:
=IF(AQ1<=-6,"-6",IF(AQ1=-5,IF(AR1>=5,AQ1&".5",AQ1),IF(AQ1=-4,IF(AR1>=2,IF(AR1<4,AQ1&".2",IF(AR1<7,AQ1&".4",AQ1&".7")),AQ1),IF(AQ1=-3,IF(AR1>=0,IF(AR1<2,AQ1&".0",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<8,AQ1&".6",AQ1&".8"))))),AQ1),IF(AQ1=-2,IF(AR1>=-1,IF(AR1<1,AQ1&".-1",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<9,AQ1&".7",AQ1&".9"))))))),IF(AR1>=-5,AQ1&".5",AQ1)),IF(AQ1=-1,IF(AR1>=-2,IF(AR1<-1,AQ1&".-2",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<9,AQ1&".7",AQ1&".9"))))))))),AQ1),IF(AQ1=0,IF(AR1>=-3,IF(AR1<-1,AQ1&".-3",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<7,AQ1&".6",IF(AR1<8,AQ1&".7",AQ1&".8"))))))))),AQ1),IF(AQ1=1,IF(AR1>=-3,IF(AR1<-2,AQ1&".-3",IF(AR1<-1,AQ1&".-2",IF(AR1<0,AQ1&".-1",IF(AR1<1,AQ1&".0",IF(AR1<2,AQ1&".1",IF(AR1<3,AQ1&".2",IF(AR1<4,AQ1&".3",IF(AR1<5,AQ1&".4",IF(AR1<6,AQ1&".5",IF(AR1<8,AQ1&".6",AQ1&".8"))))))))),AQ1),IF(AQ1=2,IF(AR1>=-2,IF(AR1<0,IF(AR1>=-1,AQ1&".-2",AQ1&".-3"),IF(AR1<1,AQ1&".-1",IF(AR1<2,AQ1&".0",IF(AR1<3,AQ1&".1",IF(AR1<4,AQ1&".2",IF(AR1<5,AQ1&".3",IF(AR1=6,AQ1&".4",IF(AR1>=6,AQ1&".6",AQ1))))))))),AQ1),IF(AQ1=3,IF(AR1>=-1,IF(AR1<2,AQ1&".-3",IF(AR1<3,IF(AR1>=0,AQ1&".-1",AQ1&".0"),IF(AR1<4,AQ1&".1",IF(AR1<5,AQ1&".2",IF(AR1<6,AQ1&".3",IF(AR1>=5,AQ1&".5",AQ1))))))),AQ1),IF(AQ1=4,IF(AR1>=0,IF(AR1<5,AQ1&".-4",IF(AR1<6,AQ1&".0",IF(AR1>=2,AQ1&".2",AQ1))),AQ1),IF(AQ1=5,IF(AR1>=0,AQ1&".0",AQ1),IF(AQ1>=6,"6",AQ1))))))))))))))))))))))))))))))
使用方法:
- 复制对应版本的公式
- 粘贴到AO1单元格
- 下拉填充至目标单元格即可,计算效率与原公式一致
内容的提问来源于stack exchange,提问作者Pachino
相关产品推荐
相关产品推荐

