关于MAX / IF语句的Excel查询

我有我所希望的是一个简单而可行的问题,但是据说,我还没有弄明白。

我怎样才能改变下面的代码,如果F5是0,单元格将显示0? 在所有其他情况下,它应该显示至less“43”。

后面的代码工作; 即:显示的最小值是43,但是,我不知道如何改变它,所以如果F5是0,它将显示0。

=MAX(SUM(IF(F5<=0,0,39), IF(F5>30,(C5*0.08), IF(F5>20,(C5*0.07), IF(F5>10,(C5*0.06), IF(F5>5,(C5*0.05), IF(F5>2,(C5*0.04), IF(F5>1,(C5*0.03), IF(F5>=0.25,(C5*0.02), IF(F5>=0,(0.03*C5*F5),0))))))))),43) 

非常感谢!

一般如果Excel中的条件是

 =IF(F5=0,0,43) 

所以,我想你会得到所需的答案,如果你开始

 =IF(F5=0,0,<ur calculated formula>) 

我不确定你的配方的运作

 =MAX(SUM(IF(F5<=0,0,39), IF(F5>30,(C5*0.08), IF(F5>20,(C5*0.07), IF(F5>10,(C5*0.06), IF(F5>5,(C5*0.05), IF(F5>2,(C5*0.04), IF(F5>1,(C5*0.03), IF(F5>=0.25,(C5*0.02), IF(F5>0,(0.03*C5*F5), IF(F5=0,0,0)))))))))),43) 

两个想法:无论你有F5 <= 0,它应该可能是F5 <0 ,因为你想F5 = 0是一个特定的事情。 而且,由于嵌套了很多层次,所以在单元格中看起来很难。 你可能会考虑一个UDF:

 Function getNum(F5 as Single, C5 as Single) as Single 'Start with initial value of 43 getNum = 43 'Change return value to zero if F5 is zero If F5 = 0 Then getNum = 0 'Otherwise add some more, depending on inputs ElseIf F5 < 0 Then getNum = getNum + 39 ElseIf F5 > 30 Then getNum = getNum + C5*0.08 ElseIf F5 > 20 Then getNum = getNum + C5*0.07 ElseIf F5 > 10 Then getNum = getNum + C5*0.06 ElseIf F5 > 5 Then getNum = getNum + C5*0.05 ElseIf F5 > 2 Then getNum = getNum + C5*0.04 ElseIf F5 > 1 Then getNum = getNum + C5*0.03 ElseIf F5 > 0.25 Then getNum = getNum + C5*0.02 ElseIf F5 > 0 Then getNum = getNum + C5*F5*0.03 End If End Function 

把它放在一个模块中,然后用= getNum(F5,C5)在单元格中调用它,

我没有对它进行testing,所以它可能不完全正确,但是你可以看到比一堆嵌套的IF更容易理解。