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] 

谢谢!

那么,为什么不做

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

比较有两个部分。 你知道你想要比较什么,所以不要再写公式,只用TRUE部分的比较值。

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

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

重写

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

Jeepedbuild议一个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 

这将作为一个公式input,如下所示: =SUPERIF(A1, B1, "GREATER", "RIGHT")这将testing看A1是否大于B1,如果是,则返回B1的值。

我做了最后两个参数是可选的,默认值是“EQUALS”和“LEFT”,所以你可以写SUPERIF([some formula], [some other formula]) ,只要两者的结果是相同的如果将返回左侧的值。 对于你提供的样本,它会写成=SUPERIF($B$4+13,7)

请注意,如果您使用UDF,则需要使用启用了macros的(* .xlsm)保存工作簿。