Как проверить весь лист Excel для конкретного текста в формулах? - PullRequest
0 голосов
/ 07 февраля 2019

Я ищу формулу, которая проверит весь лист, если какая-либо из формул в этом листе содержит «SUMIF».Если они есть, формула должна возвращать «Да», в противном случае «Нет».

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Вам нужно будет сделать следующее:

  1. Выберите диапазон и назовите его.Это значит, что вы сможете использовать его в формуле позже
  2. Используйте формулу COUNTIF с диапазоном имен.

    =COUNTIF(YourRange, "=SUMIF")

  3. Окружите это формулой IF, чтобы преобразовать 1 или 0 в «Да» или «Нет»

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

0 голосов
/ 07 февраля 2019

Для маршрута формулы нужно ограничить поиск:

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

Попытка сделать весь лист приведет к ошибке из-за нехватки памяти.

0 голосов
/ 07 февраля 2019

Попробуйте следующую пользовательскую функцию:

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)
...