EXCEL函数这么用函数表达出来 ,我用IF函数 只能显示出第一个,假设数值是300,但是一直显示0.2%?

这么用函数表达出来 ,我用IF函数 只能显示出第一个=IF(150>E58>0,0.2%,IF(250>E58>=150,0.3%,IF(450>E58>=250,0.4%,IF(E58>=450,0.5%))))数值是300,但是一直显示0.2%,错在那里?

EXCEL中的条件判断,对类似“150>n>0”这种形式,是分级判断的,不会同时将n与150和0进行比较,造成判断结果与预期结果不一致。
以n=300为例,会先判断150>300,返回值为FALSE;再判断FALSE>0,返回TRUE(逻辑值会被判断为大于数值)。
因此,你的公式永远返回第一个值0.2%。
公式可改为:
=IF(E58=0,0,IF(E58<150,0.2%,IF(E58<250,0.3%,IF(E58<450,0.4,0.5))))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-03
类似150>E58>0,应该写作AND(E58>0,E58<150)

或者用如下公式
=LOOKUP(E58,{0.00001,150,250,450},{0.2,0.3,0.4,0.5}%)

=LOOKUP(E58,{0.00001,150,250,450;0.2,0.3,0.4,0.5})%

=LOOKUP(E58,{0.00001,150,250,450;2,3,4,5})/1000
下拉填充
第2个回答  2021-12-02
if函数,第一个条件如果满足,则显示0.2%,否则执行后一个条件。按题意if函数第一个条件应该是n>=450,返回0.55%,否则执行下一个条件。if(n>=450,0.55%,if(n>=250,0.4,......。按此写出if函数本回答被提问者采纳
第3个回答  2021-12-03
=IF(E58>=450,0.5%,IF(E58>=250,0.4%,IF(E58>=150,0.3%,IF(E58>0,0.2%,""))))
数值从大到小降序排(450,250,150,0)
=IF(E58<=0,"",IF(E58<150,0.2%,IF(E58<250,0.3%,IF(E58<450,0.4%,0.5%))))
数值从小到大升序排(0,150,250,450)