Excel公式:如果条件则执行该条件

时间:2016-01-22 19:47:16

标签: excel if-statement formula

一些excel IF语句可能会变得相当长,我正在寻找一种更简单的方法来编写它们。例如,如果我要写:

If($B$4+13=7,$B$4+13,FALSE)

我认为这会更容易:

If($B$4+13=7,[Do the left hand side of the equation without making me re-type it], FALSE)

特别是如果条件很长且很复杂。

有什么我可以写的代替:

[Do the left hand side of the equation without making me re-type it]

谢谢!

2 个答案:

答案 0 :(得分:1)

好吧,为什么不这样做

=如果($ B $ 4 + 13 = 7,7,FALSE)

比较分为两部分。您知道要比较的内容,因此不要再次编写公式,只需使用TRUE部分中的比较值。

编辑:使用重复公式简化长而复杂的IF语句的另一种方法:

=IF(A1="x",<complex formula>*100,<complex formula>*200)

重写

=<complex formula>*if(A1="x",100,200)

答案 1 :(得分:0)

Jeeped建议使用UDF,所以我想我会抓住它:

Function SUPERIF(LeftCondition, RightCondition, Optional Operator = "EQUALS", Optional Side = "LEFT")
Dim Result

If (Side = "LEFT") Then
    Result = LeftCondition
    ElseIf (Side = "RIGHT") Then
    Result = RightCondition
    Else
    SUPERIF = xlErrValue
End If

If (Operator = "EQUALS") Then
    If (LeftCondition = RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

If (Operator = "GREATER") Then
    If (LeftCondition > RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

If (Operator = "GRTEQL") Then
    If (LeftCondition >= RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

If (Operator = "LESS") Then
    If (LeftCondition < RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

If (Operator = "LESSEQL") Then
    If (LeftCondition <= RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

If (Operator = "NOT") Then
    If (LeftCondition <> RightCondition) Then
    SUPERIF = Result
    Else
    SUPERIF = False
    End If
End If

End Function

这将作为公式输入:=SUPERIF(A1, B1, "GREATER", "RIGHT")这将测试A1是否大于B1,如果是,则返回B1的值。

我将最后两个参数设为可选,默认值为“EQUALS”和“LEFT”,因此您只需编写SUPERIF([some formula], [some other formula])并且只要两者的结果相同即可返回值在左边。对于您提供的示例,它将写为=SUPERIF($B$4+13,7)

注意,如果您使用UDF,则需要在启用宏的情况下保存工作簿(* .xlsm)。