拆分单元格并删除重复项?

我正在为学校做一个项目的剪辑和path集。 我有一个类似于以下的长数据列表

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'

试试这个用户定义的function。

 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 

假设你的string是在A2那么你可以尝试上面的用户定义的function,像这样…

 =RemoveDuplicates(A2) 

在这里输入图像说明

这是一个用户自定义函数UDF来创build它插入模块并粘贴下面的代码

  1. Alt + F11打开VB编辑器
  2. 点击InsertModule然后粘贴代码
 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 

closuresVB编辑器后,你可以在fx中看到函数
在B1
=Customduplicate(A1, " ")
您必须在函数的参数中包含“”一个空格的分隔符“”
A1是你的第一个单元格
你可以把它拖下来
你可以使用这个UDF和其他分隔符“,”