Is there function for string like SumIf (concatenate instead sum)?
Yes, for this task you can use combination of functions TEXTJOIN() and IF()
For example, if you have in range A2:A100 some text strings and in range B2:B100 condition for concatenate (or skip any cells) then use array formula like as
{=TEXTJOIN(", ";1;IF(B2:B100;A2:A100;""))}
User function:
Function ConcatIf ( compareRange As Variant, xCriteria As String, stringsRange As Variant, Optional Delimiter As String)
Dim nConcatif As String
nConcatif = “”
For i = 1 To ubound ( compareRange, 1 )
If compareRange ( i, 1 ) = xCriteria Then
nConcatIf = nConcatIf & Delimiter & stringsRange ( i, 1 )
End If
Next i
nConcatIf=Mid(nConcatIf, Len(Delimiter) + 1)
ConcatIf = nConcatIf
End Function