String excel中的iserror公式

String excel中的iserror公式,string,excel,error-handling,find,match,String,Excel,Error Handling,Find,Match,在excel中,如果我有以下内容 =匹配(“abc”,A:A,0) 如果它出错,那么它会抛出类似 #value 所以我想说 =iserror((匹配(“abc”,A:A,0),“未找到”,匹配(“abc”,A:A,0)) 但这似乎是一段混乱的代码。运行相同的公式两次,是否可以更好地格式化以得到相同的结果 干杯我不知道有什么内置方法可以做到这一点,但您可以编写自己的VBA函数: Function GracefulError(varValue As Variant, strMessage As S

在excel中,如果我有以下内容

=匹配(“abc”,A:A,0)

如果它出错,那么它会抛出类似

#value
所以我想说

=iserror((匹配(“abc”,A:A,0),“未找到”,匹配(“abc”,A:A,0))

但这似乎是一段混乱的代码。运行相同的公式两次,是否可以更好地格式化以得到相同的结果


干杯

我不知道有什么内置方法可以做到这一点,但您可以编写自己的VBA函数:

Function GracefulError(varValue As Variant, strMessage As String) As Variant
    If IsError(varValue) Then
        GracefulError = strMessage
    Else
        GracefulError = varValue
    End If
End Function
用法:

=GracefulError(match("abc",A:A,0), "Not found")

您使用的是哪个版本的Excel?在Excel 2007或更高版本中,您可以使用IFERROR函数以避免重复

=IFERROR(匹配(“abc”,A:A,0),“未找到”)

或者在早期版本中,您可以使用COUNTIF


=IF(COUNTIF(A:A,“abc”)、MATCH(“abc”,A:A,0),“Not found”)

我在想,唯一的问题是它的可移植性稍差。但为这个想法欢呼:)