对于过去使用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*##########)
答案 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公式便宜,并且它更透明,更易于维护。
另外,不相关,但我确实在你的逻辑中注意到了一些事情: