如何检查整个Excel工作表中公式中的特定文本?

时间:2019-02-07 15:26:08

标签: excel-formula contains sumifs

我正在寻找一个公式,如果该工作表中的任何公式包含“ SUMIF”,它将检查整个工作表。如果有,则公式应返回“是”,否则返回“否”。

3 个答案:

答案 0 :(得分:0)

尝试以下用户定义功能:

Public Function Zum(rng As Range) As String
    Dim r2 As Range, r3 As Range
    Set r2 = rng

    On Error GoTo out
        Set r3 = r2.Cells.SpecialCells(xlCellTypeFormulas)
    On Error Resume Next
    For Each r In r3
        t = r.Formula
        If InStr(t, "SUMIF") > 0 Then
            Zum = "Yes"
            Exit Function
        End If
    Next r
out:
    Zum = "No"
End Function

它基于Range,但是您可以将范围设置为任何特定工作表上的所有单元格。例如,要测试Sheet2,请将其放在Sheet1中的任何单元格中:

=ZUM(Sheet2!1:1048576)

答案 1 :(得分:0)

您将需要执行以下操作:

  1. 选择一个范围并命名。因此,您以后可以在公式中使用它
  2. 使用COUNTIF公式和名称范围。

    =COUNTIF(YourRange, "=SUMIF")

  3. 使用IF公式将其包围,将1或0转换为“是”或“否”

    =IF(COUNTIF(YourRange, "=SUMIF")=1, "Yes", "No")

答案 2 :(得分:0)

对于公式路线,必须限制搜索范围:

=IF(SUMPRODUCT(--(ISNUMBER(SEARCH("=SUMIF",FORMULATEXT(Sheet2!A1:Z100))))),"Yes","No")

由于内存不足,尝试整张纸都将导致错误。