Function NoDupesAtString(rng As Range, _
Optional sep As String = " ", _
Optional buReg As Long = 0) As String
' формула на листе имеет вид: =NoDupesAtString(A4;", ";1)
' A4 - ячейка, в которой нужно удалить повторы
' ", " - разделитель (по умолчанию пробел)
' 1 - без учета регистра (0 - с учетом регистра, по умолчанию)
Dim v, s As String: s = sep
If buReg = 0 Then
For Each v In Split(rng.Value, sep)
If Len(v) Then If InStr(s, sep & v & sep) = 0 Then s = s & v & sep
Next
Else
For Each v In Split(rng.Value, sep)
If Len(v) Then If InStr(UCase(s), sep & UCase(v) & sep) = 0 Then s = s & v & sep
Next
End If
NoDupesAtString = Mid(s, Len(sep) + 1, Len(s) - Len(sep) * 2)
End Function
|