Option Explicit
Function JoinTextIf(TextJoin As Range, rg As Range, vDieuKien As Variant)
If TextJoin.Columns.Count <> 1 Or rg.Columns.Count <> 1 Or (TextJoin.Rows.Count <> rg.Rows.Count) Then
JoinTextIf = CVErr(xlErrValue)
Exit Function
End If
Dim i As Long
Dim sText As String
On Error Resume Next
For i = 1 To rg.Cells.Count
If IsError(rg(i)) = False Then
If rg(i) = vDieuKien Then
If sText = "" Then
sText = TextJoin(i)
Else
sText = sText + ";" + TextJoin(i)
End If
End If
End If
If Err.Number <> 0 Then
JoinTextIf = CVErr(xlErrValue)
Exit Function
End If
Next
JoinTextIf = sText
End Function