【问题标题】:iserror formulae in excelexcel中的iserror公式
【发布时间】:2012-05-01 23:19:32
【问题描述】:

如果我有以下情况,则在 excel 中

=match("abc",A:A,0)

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

的东西
#value

所以我说

=iserror((match("abc",A:A,0),"未找到",match("abc",A:A,0))

但这似乎是混乱的代码.. 两次运行相同的公式,可以更好地格式化以给出相同的结果吗?

干杯

【问题讨论】:

    标签: string excel error-handling find match


    【解决方案1】:

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

    =IFERROR(MATCH("abc",A:A,0),"Not found")

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

    =IF(COUNTIF(A:A,"abc"),MATCH("abc",A:A,0),"Not found")

    【讨论】:

      【解决方案2】:

      我不知道执行此操作的内置方法,但您可以编写自己的 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")
      

      【讨论】:

      • 我在想这个,唯一的问题是它的便携性有点差。但为这个想法欢呼:)
      猜你喜欢
      • 2016-02-02
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多