MS Excel if语句

MS Excel if语句,excel,excel-formula,Excel,Excel Formula,对于过去使用excel allot的人来说,这可能真的很容易,但我就是无法得到正确的公式 我有一个大的电子表格,我需要添加一个标记,但添加的标记取决于变量。不幸的是,这个结果必须在一个已经很大的公式的末尾,即表示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 IF>55且为正方形=

对于过去使用excel allot的人来说,这可能真的很容易,但我就是无法得到正确的公式

我有一个大的电子表格,我需要添加一个标记,但添加的标记取决于变量。不幸的是,这个结果必须在一个已经很大的公式的末尾,即表示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
IF>55且为正方形=15
如果>55且不是方形=15

如果我真的建议你把公式分成几个单元格,但是如果需要放在一个单元格中,公式也可以做

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)))

我不太喜欢Excel中嵌套的
if
s,尤其是当它们包含和/或条件时。典型的公式如下所示:

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

我绝对是一个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公式,而且它更透明,更易于维护

同样,不相关,但我确实注意到了你逻辑中的一些东西:

  • 15似乎是大于55的值的结果,不管它是否为正方形。您确实可以将第一个条件的值限制为>55
  • 您尚未定义如果值正好为55会发生什么情况。其中一种情况>=或稍微短一点(地址D2=55):


    =15+15*(D2是否使用“分配”很多?至于你的问题,我倾向于在中间结果中使用额外的单元格。不幸的是,语法和拼写不是我的强项。因此,例如,不要在公式末尾添加大if语句。让它查找一组单元格,这些单元格将具有独立if语句中的值?这项工作是li比如gem,一旦生成了所有的价格,一个宏就会运行并删除公式的后面部分。在单元格中使用一个分解版本会更好吗?我不喜欢在Excel和大公式中使用嵌套IF。你可以创建一个表示((100-V2)/100)*U2*D2的单元格和一个表示标记(IFs)的单元格假设这些单元格将是Z2和AA2,例如…您可以生成公式=(1+(AA2/100))*Z2Complete mind slip,如果值为55,则应视为与so>=相同。一旦所有信息完成,所有公式都将被删除,并保存CSV并上载到电子商务站点。
    
    =(((100-V2)/100)*U2*D2)+((((100-V2)/100)*U2*D2)/100*FooBoo(val,shape))
    
    =15+15*(D2<55)-5*(D2<55)*(G2="Square")