正在提取单元格中唯一的 7 位数字字符串...Excel

Extracting unique 7-digit string in a cell...Excel

在excel中,我想在一个包含一串数字的单元格中提取唯一的 7 位数字。在提取前 7 个唯一数字后(放置在相邻的列中),接下来的 7 个唯一数字从前一个唯一的 7 位字符串的最后一个数字开始。

例如(我插入了分隔符以查看以下字符串应该从哪里开始)

120381634|782540251|996314825168993247556112006387453961284587863952145786329520048752123666520473015444

1st  (unique 7-digits) 1203864
2nd                    7825401

此 udf 将允许您设置每个字符串的唯一字符的长度以及哪个值 return:

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,7,ROW(A1)),"")

然后向下抄写直到出现空白。

第二个参数是字符串输出的长度。我使用 ROW(A1) 作为计数器,所以它会 return 1,2,3,4,... 因为它被拖到列中。它也可以是硬编码数字。