我正在为学校的项目做剪辑和路径集。我有一个类似于以下
的LONG数据列表1 9 9 9 9 9 16
1 9 9 9 9 9 17
1 9 9 9 9 9 15
1 9 9 9 9 9 18
1 9 9 9 9 9 19
1 9 9 9 9 9 20
1 9 9 9 9 9 21
1 9 9 9 9 10 16
1 9 9 9 9 10 17
1 9 9 9 9 10 15
1 9 9 9 9 10 18
几千个条目,每个条目在一个单元格中,每个数字用空格分隔。我希望能够删除重复的数字,在本例中为9,以获得:
1 9 15
1 9 16
1 9 17
1 9 18
1 9 19
1 9 20
1 9 21
我该怎么做?请像我一样向我解释5.我对VBA或公式等一无所知。需要注意的是,其中一些可能具有以下值:
1 11 11 19
删除' 1'不好,我需要特别删除' 11'
答案 0 :(得分:3)
尝试此用户定义的功能。
Function RemoveDuplicates(ByVal rng As Range) As String
Dim arr() As String
Dim i As Long
Dim dict
arr = Split(rng.Value, " ")
Set dict = CreateObject("Scripting.Dictionary")
For i = 0 To UBound(arr)
dict.Item(arr(i)) = ""
Next i
RemoveDuplicates = Join(dict.keys, " ")
End Function
假设您的字符串在A2中,那么您可以尝试上面这个用户定义的函数......
=RemoveDuplicates(A2)
答案 1 :(得分:0)
创建它的用户定义函数UDF插入模块并粘贴以下代码
Insert
,Module
,然后粘贴代码Function Customduplicate(txt As String, Optional delim As String = " ") As String Dim e With CreateObject("Scripting.Dictionary") .CompareMode = vbTextCompare For Each e In Split(txt, delim) If Trim(e) <> "" And Not .exists(Trim(e)) Then .Add Trim(e), Nothing Next If .Count > 0 Then Customduplicate = Join(.keys, delim) End With End Function
关闭VB编辑器后,您可以在fx中看到函数
在B1
=Customduplicate(A1, " ")
你必须包括分隔符&#34; &#34;功能参数中的一个空格
A1是你的第一个细胞
你可以把它拖下来
您可以将此UDF与其他分隔符一起使用&#34;,&#34;