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
  |