Если у вас все в порядке с созданием пользовательской функции (UDF), то для этого вы можете создать собственную функцию рабочего листа.
В этой функции вы будете выполнять быстрый цикл в диапазоне ввода и проверять, равна ли любая ячейка в этом диапазоне «IF». Если это так, вы удалите букву столбца из свойства .Address
.
Public Function getIFCols(ByVal rng As Range) As String
Dim retVal As String, cel As Range
For Each cel In rng.Cells
If cel.Value = "IF" Then
retVal = Trim(retVal & " " & colLtr(cel))
End If
Next
getIFCols = Replace(retVal, " ", ", ")
End Function
Private Function colLtr(colRng As Range) As String
colLtr = Split(colRng.Address, "$")(1)
End Function
Вы будете называть эту функцию так:
=getIFCols(B1:F1)
Самое замечательное в этой функции - она не требует заданного количества столбцов. Так что если вам нужно проверить 3 столбца в одной строке и 10 в другой, это довольно динамично.