Excel多条件判断需求:基于初始与当前体重返回对应值
Excel多条件体重判断公式解决方案
首先需要纠正原规则中的逻辑冲突:原规则第一条D6<0,9*D5返回1与第二条0,8*D5<D6<0,9*D5返回2存在范围重叠,无法同时成立。结合体重变化的常规逻辑,推测正确的规则顺序应为:
- 若
D6 ≥ 0,9*D5(体重下降幅度≤10%),返回1 - 若
0,8*D5 < D6 < 0,9*D5(体重下降幅度10%~20%),返回2 - 若
0,65*D5 < D6 ≤ 0,8*D5(体重下降幅度20%~35%),返回4 - 若
D6 ≤ 0,65*D5(体重下降幅度≥35%),返回5 - 其他异常情况(如单元格为空、体重为负等)返回0
兼容所有Excel版本的嵌套IF公式
使用逗号作为小数点分隔符(适配部分地区的Excel设置):
=IF(ISNUMBER(D5)*ISNUMBER(D6)=FALSE,0,IF(D6>=0,9*D5,1,IF(D6>0,8*D5,2,IF(D6>0,65*D5,4,5))))
如果你的Excel使用点作为小数点分隔符,将公式中的逗号替换为点即可:
=IF(ISNUMBER(D5)*ISNUMBER(D6)=FALSE,0,IF(D6>=0.9*D5,1,IF(D6>0.8*D5,2,IF(D6>0.65*D5,4,5))))
Excel 365/2021版本简化公式(SWITCH函数)
逗号分隔符版本:
=IF(NOT(ISNUMBER(D5)*ISNUMBER(D6)),0,SWITCH(TRUE,D6>=0,9*D5,1,D6>0,8*D5,2,D6>0,65*D5,4,TRUE,5))
点分隔符版本:
=IF(NOT(ISNUMBER(D5)*ISNUMBER(D6)),0,SWITCH(TRUE,D6>=0.9*D5,1,D6>0.8*D5,2,D6>0.65*D5,4,TRUE,5))
公式说明
- 增加
ISNUMBER判断,避免因D5/D6为空或非数值导致的错误,此时返回0 - 按从高到低的区间顺序判断,确保每个区间逻辑互斥且覆盖所有情况
内容的提问来源于stack exchange,提问作者chi delta
相关产品推荐
相关产品推荐

