2014-07-17 92 views
-1

对于过去使用excel的人来说,这可能非常容易,但我无法得到正确的公式。MS Excel if语句

我有一个大的电子表格,我需要添加一个标记,但添加的标记取决于变量。不幸的是,这个结果必须是一个已经大的公式的结尾,########表示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 

单元格D2 =具有数值 单元格G2 =具有其中的形状。

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

+0

你用 “配发” 很多吗?至于你的问题,我倾向于使用额外的单元格来获得中间结果。 – Bathsheba

+0

不幸的是,语法和拼写不是我最强烈的一点。因此,例如,而不是在公式末尾添加大if语句。有它,它会查找一组单元格,它们将从单独的if语句中获取值? – user3711893

回答

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

这项工作就像一个宝石,一旦所有的价格已经生成一个宏运行并删除公式的后。在单元格中使用破损版本还是更好的做法吗? – user3711893

+0

我不喜欢在Excel和大公式中使用嵌套的IF。 您可以创建一个代表((100-V2)/ 100)* U2 * D2的单元格和代表标记(IFs)的单元格 假设这些单元格将是Z2和AA2,例如... 您可以生成公式=(1+(AA2/100))* Z2 –

0

我不是嵌套if S IN Excel中的大风扇,特别是当它们包含和/或条件。典型配方看起来像这样:

=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似乎是值> 55的结果,它是否是一个正方形。您真的可以将您的第一个条件限制为值> 55
  2. 您尚未定义如果值恰好为55,会发生什么情况。是其中一种情况> =或< =?
+0

完整的心灵滑移,如果值为55,则应该认为它与>>相同。一旦所有信息完成,所有公式都将被删除,CSV将被保存并上传到电子商务网站。 – user3711893

1

短一点(地址D2 = 55):

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

伟大的高尔夫球答案! – Hambone