此 udf 将允许您设置每个字符串的唯一字符的长度以及要返回的值:
Function UniqueSeven(str As String, lngth As Long, k As Long) As String
Dim dict As Object
Set dict = CreateObject("scripting.Dictionary")
Dim test() As Variant
ReDim test(1 To Len(str) / lngth)
Dim j As Long
j = 1
Dim i As Long
For i = 1 To Len(str)
If dict.Count < lngth And i < Len(str) Then
On Error Resume Next
dict.Add Mid(str, i, 1), Mid(str, i, 1)
On Error GoTo 0
Else
Dim key As Variant
For Each key In dict.keys
test(j) = test(j) & dict(key)
Next key
j = j + 1
dict.RemoveAll
dict.Add Mid(str, i, 1), Mid(str, i, 1)
End If
Next i
UniqueSeven = test(k)
End Function
你会这样使用它:
使用 A1 中的字符串,将其放入单元格中:
=IFERROR(UniqueSeven($A$1,7,ROW(A1)),"")
并复制下来,直到你得到空白。
第二个参数是字符串输出的长度。我用作ROW(A1)
计数器,所以它会返回 1,2,3,4,... 因为它被拖到列中。它也可以是硬编码的数字。