MS Excel if语句

时间:2014-07-17 13:58:36

标签: excel excel-formula

对于过去使用excel分配的人来说,这可能非常容易,但我无法获得正确的公式。

我有一个大型电子表格,我需要添加一个标记,但添加的标记取决于变量。不幸的是,这个结果必须在一个已经很大的公式的末尾,########表示将放置IF语句的位置。

IF >55 and is square = 15
IF >55 and is not square = 15
IF <55 and is Square = 25
IF <55 and is not square = 30

Cell D2 =具有数值 Cell G2 =有形状。

=(((100-V2)/100)*U2*D2)+((((100-V2)/100)*U2*D2)/100*##########)

3 个答案:

答案 0 :(得分:1)

我真的建议你将公式分解为单元格,但如果它需要在一个单元格中,那么公式也可以完成......

IF(D2>55;IF(G2="square";15;15);IF(G2="square";25;30))

所以它会像:

=(((100-V2)/100)*U2*D2)+((((100-V2)/100)*U2*D2)/100*IF(D2>55;IF(G2="square";15;15);IF(G2="square";25;30)))

答案 1 :(得分:1)

稍短(地址D2 = 55):

=15+15*(D2<55)-5*(D2<55)*(G2="Square")

答案 2 :(得分:0)

我不是Excel中嵌套if的忠实粉丝,特别是当它们包含和/或条件时。典型的公式看起来像:

=if(and(c1,c2),x1,if(and(c3,c4),x2,...

YUCK!

我绝对是VBA的极简主义者,但这似乎是一个很好的应用。制作一个自定义函数,如:

Function FooBoo(Val As Integer, Shape As String) As Integer

  Dim result As Integer

  If Val > 55 And Shape = "square" Then
    result = 15
  ElseIf Val > 55 Then
    result = 15
  ElseIf Val < 55 And Shape = "square" Then
    result = 25
  ElseIf Val < 55 Then
    result = 30
  End If

  FooBoo = result

End Function

然后你可以在Excel中调用它:

=(((100-V2)/100)*U2*D2)+((((100-V2)/100)*U2*D2)/100*FooBoo(val,shape))

如果它是工作簿本身的一部分,它的可移植性不比任何其他Excel公式便宜,并且它更透明,更易于维护。

另外,不相关,但我确实在你的逻辑中注意到了一些事情:

  1. 15似乎是值&gt;的结果。 55,不管它是否是正方形。你真的可以将你的第一个条件限制为值&gt; 55
  2. 如果价值恰好是55,您还没有定义会发生什么。其中一个条件是&gt; =或&lt; =?