EXCEL中关于if函数的问题

=IF(F3<1000,500,IF(1000<F3<2000,1000,IF(2000<F3<3000,2000,3000)))用这个公式想表达如果F3<1000时得到500,1000<F3<2000时得到1000,2000<F3<3000时得到2000否则得到3000,但是结果只能得到500或3000,这个公式有什么问题吗?

第1个回答  2011-07-07
问题大了,1000<F3<2000这样的表达方法是不对的,正确的表示方法:
=IF(F3<1000,500,IF(F3<2000,1000,IF(F3<3000,2000,3000)))
你写成:
1000<F3<2000
运算过程为:先判断1000<F3,结果为TRUE再运算TRUE<2000,结果为FALSE,因为在EXCEL中的规定如下:
负数<0<正数<文本<FALSE<TRUE,直接参与比较运算时,TRUE总是最大的,所以你写的公式在进行第二层判断时,就得不到正确结果了。
第2个回答  2011-07-07
1000<F3<2000这种格式是不能判断的,其实你这个只要写成=IF(F3<1000,500,IF(F3<2000,1000,IF(F3>3000,2000,3000)))就行。
第3个回答  2011-07-07
IF(C2<1000,500,IF(C2<2000,1000,IF(C2<3000,2000,3000)))

怎么会出现 2000<F3 <3000这样的判断呢,即使要用应该用下面的方法

F3>2000 and F3<3000
但你现在的要求,用不着这么判定。
第4个回答  2011-07-07
1000<F3<2000这样的写法是不合语法的
改成and(F3>1000,F3<2000)本回答被提问者采纳
第5个回答  2011-07-07
在EXCEL中,2000<F3<3000要写成AND(F3>2000,F3<3000)
而且你的公式也不够简洁,跟下面的公式比比看
=IF(F3<1000,500,IF(F3<2000,1000,IF(F3<3000,2000,3000)))
相似回答