如何删除单元格中的重复值,并用/?

我在Excel中有多个单元格,如下所示:

b1= E4I8/E4I8/E4I8/E4I8 b2=D3B2/B30C1/D3B2/D3B2/D3B2/B30C1 multiple /xxxx/ 

如何在同一个单元格中删除这些重复的文本string?

谢谢

此函数使用字典的键从传入的string(添加对Microsoft Scripting Runtime的引用)构build一个唯一的部分列表:

 Public Function UniqueParts(separator As String, toParse As String) As String Dim d As New Scripting.Dictionary, part As Variant, i As Integer For Each part In Split(toParse, separator) d(part) = 1 Next UniqueParts = Join(d.Keys, "/") End Function 

您可以在Excel公式中使用此function:

 =UniqueParts("/","E4I8/E4I8/E4I8/E4I8") 

或与单元格引用:

 =UniqueParts("/",B2) 

你也可以在一个遍历一系列单元格的macros中使用它。

如果使用VBA可以解决你的问题,我build议以下function:(不需要参考!)

 Function UniqueFromCell(rngCell, splitString) Dim myCol As New Collection Dim itmCol Dim i As Long Dim arrTMP As Variant arrTMP = Split(rngCell, splitString) For i = 1 To UBound(arrTMP) On Error Resume Next myCol.Add arrTMP(i), CStr(arrTMP(i)) On Error GoTo 0 Next i Dim result For Each itmCol In myCol result = result & itmCol & splitString Next UniqueFromCell = Left(result, Len(result) - Len(splitString)) End Function 

要在Excel中调用它,您需要input两个参数:单元格和分隔符:

 =UniqueFromCell(B4,"/")