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)的宏保存工作簿。
我能想到的唯一事情就是将左手部分放在它自己的细胞中。即提前预先计算它,然后您可以在多个地方引用该细胞。 – Ditto
您的目的与[IFERROR功能]类似(https://support.office.com/zh-cn/article/IFERROR-function-F59BACDC-78BD-4924-91DF-A869D0B08CD5),我们不再需要测试在使用预期公式获得结果之前出现错误。目前还没有** IFTRUE **功能,但它们没有足够的东西来创建,所以你可能会在未来的版本中获得幸运。与此同时,一个简单的UDF可以实现这一点。 [历史]在IFERROR临近之前,人们正在使用UDF来完成IFERROR行为。如果你提供了样本公式,我怀疑它可以改进。 – Jeeped