Я знаю, что вы не просили функцию VBA, но в случае, если некоторые читатели захотят узнать, как сделать это через VBA, вот эта функция.Он принимает диапазон ячеек и создает только строку уникальных элементов.Вы также можете добавить разделитель (например, если вы хотите, чтобы они были разделены запятыми).
Function UniqueList(ByVal cell_range As range, _
Optional ByVal seperator As String = "") As String
Dim vArray As Variant
Dim result As String
Dim i As Long, j As Long
Dim v As Variant
Dim dictionary As Object
Set dictionary = CreateObject("scripting.dictionary")
vArray = cell_range.Value
For i = 1 To UBound(vArray, 1)
For j = 1 To UBound(vArray, 2)
If Len(vArray(i, j)) <> 0 Then
dictionary(vArray(i, j)) = 1
End If
Next
Next
For Each v In dictionary
result = result & (seperator & v)
Next
If Len(result) <> 0 Then
result = Right$(result, Len(result) - Len(seperator))
End If
UniqueList = result
End Function
Для тех, кому это нужно: он выгружает значения ячеек в массив вариантов, а затем заполняет словарь каждымкроме пустых ячеек).Так как в словарях хранятся только уникальные ключи, это устраняет дубликаты.Затем я перебираю словарь и создаю строку с каждой записью.Я убираю лишний разделитель в конце, чтобы список был чистым.