excel if函数,结果只显示第一个条件的结果,这是为什么?

=IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,2.5<E3<=9),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3)))

if条件中当一个值在一个区间内,即大于某值,且小于某值时,是不可以写在一起的,而是要分开写。所以公式

=IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,E3<=9,E3>2.5),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3)))

公式在D3与E3同时有值的条件下执行。若两个单元格任一为空时,不显示结果,则

=IF(OR(D3="",E3=""),"",IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,E3<=9,E3>2.5),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3))))

追问

如果要使得第二个条件最少100,该怎么改函数啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-23
你的公式中有:2.5<E3<=9
Excel的公式不可以这样写的,不能连续这样使用小于号,应该分解成2个条件,你都会用AND函数了,这意思应该一说就明白的,公式修改如下:
=IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,2.5<E3,E3<=9),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3)))
当然,还是会有FALSE的情况,因为你的if函数没有把所有的情况都考虑全。
要考虑齐全就是要这3个if函数都不满足的情况下,该显示什么结果?
就是在最后再加一个参数,我下面的公式是加了一个0。你可以根据自己的需求修改参数。
=IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,2.5<E3,E3<=9),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3,0)))追问

如果要使得第二个条件最少100,该怎么改函数啊

追答

什么叫“第二个条件最少100”?请叙述清楚。
你的if函数有三个,条件如下:
AND(D3275,2.51500,$E3>9)
你仔细看看,这些条件里面覆盖是不全面的,
例如D32.5,这种情况下返回什么呢?你都没涉及到。
你这个公式函数不多,就是if函数和and函数,你还是仔细把这两个函数理解清楚,然后再来编写公式吧。

追问

=IF(AND(D2<=275,E2<=2.5),55,IF(AND(275<D2,D2<=1500,2.5<E2,E2<=9),100,IF(OR(1500<D2,9<E2),300))),我现在改成这样了,但是如果我要算D2=500,E2=1.2,结果等于0.2*D2需要添加什么条件进去

追答

说过了,你的公式最后是少一个参数,你不写当然也可以保存,按省略参数来处理,
就是三个if函数都不满足时返回什么,加在300后面了。
=IF(AND(D2<=275,E2<=2.5),55,IF(AND(275<D2,D2<=1500,2.5<E2,E2<=9),100,IF(OR(1500<D2,9<E2),300,D2*0.2)))
一个标准的if函数是有三个参数的
if(参数1,参数2,参数3)
嵌套的if函数也是一样的要求。
if(参数1,参数2,if(参数3,参数4,if(参数5,参数6,参数7)))
嵌套三层的if函数结构是这样的,你缺少了参数7。你仔细看一下吧

本回答被提问者采纳
第2个回答  2019-05-23
最后一个if判断缺少判断为假的时候的输出参数,缺省的话就是输出FALSE。
你这三个条件都是与的关系,有很大一部分值的范围都没涵盖,最后都会是FALSE
第3个回答  2019-05-23
你的计算结果,都是0.2*D3,列式无意义了吧?
另外,不能用“2.5<E3<=9”,因改为“E3>2.5,E3<=9”。
=IF(AND(D3<=275,$E3<=2.5),0.2*D3,IF(AND(D3>275,E3>2.5,E3<=9),0.2*D3,IF(AND(D3>1500,$E3>9),0.2*D3)))
还有,E3有的加绝对化符号、有的没有,跟列式有关吗?追问

0.2*D3只是一个例子计算式子,可以改的,就是如果输入280,结果也出现FALSE这是为什么

追答

你有两组数据,至少有4组条件(大大、小小、大小、小大),你的公式D3还有3个值,条件就会更多。
而你的公式里面才3组条件,剩下的就有可能被判断错误FALSE了。
……
你已经采纳答案结束问题。算了!当我没说。

第4个回答  2019-05-23
函数 if(条件,结果1,结果2) 你的上面的表达式并没有意义,不管条件为真为假,结果都是D3*0.2 , 所以不管D3和E3值如何,结果= D3*2 就行。
相似回答