Вручную, вы можете создать функцию VBA, которая будет возвращать строку, представляющую уникальные значения .
Если есть какой-либо символ, который никогда не будет в значениях, вы можете разделитьзначения с этим символом (например, _
):
Function GetUniqueValuesString(rng As Range) As String
Dim rngValues() As Variant
rngValues = rng.Value
' The following line requires a reference to Microsoft Scripting Runtime
' (via Tools -> References...)
Dim dict As New Scripting.Dictionary
'The function only parses the first row of the range
Dim i As Integer
For i = 1 To UBound(rngValues, 2)
dict(rngValues(1, i)) = 1 ' 1 here is a dummy value
Next
GetUniqueValuesString = Join(dict.Keys, "_")
End Function
(Если каждое значение всегда одинаковое количество символов, вы можете просто объединить их без разделителя.)
Использование этой функции для горизонтального диапазона ячеек:
=GetUniqeValuesString(A4:D4)
должен возвращать строку только с уникальными значениями:
BGAA_TGHJ_WETY
Если применить эту функцию как к строкам библиотеки, так и к файлустрок, вы должны быть в состоянии соответствовать возвращаемому значению функции.
Обратите внимание, что функция имеет несколько ограничений, которые, возможно, должны быть разрешены:
- Предполагается, чтопорядок значений будет одинаковым. Другими словами,
BGAA
, TGHJ
, WETY
будет преобразован в строку, отличную от BGAA
, WETY
, TGHJ
. - Функция присоединяется только к первой строке;другие строки игнорируются.