valores una repetidos registros quitar para macro lista hojas extraer duplicados detectar datos con como columnas buscar excel excel-vba excel-formula spreadsheet

excel - repetidos - ¿Cómo elimino los valores duplicados en una celda separada con un/?



macro para detectar datos duplicados (2)

Tengo varias celdas en Excel que tienen lo siguiente:

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

¿Cómo elimino estas cadenas de texto duplicadas en la misma celda?

Gracias


Esta función utiliza las teclas de un diccionario para crear una lista única de partes a partir de una cadena transferida (agregue una referencia a Microsoft Scripting Runtime ):

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

Puede usar esta función en una fórmula de Excel:

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

o con una referencia de celda:

=UniqueParts("/",B2)

También puede usar esto dentro de una macro que itera sobre un rango de celdas.


Si el uso de VBA puede resolver su problema, propongo la siguiente función: (¡no se requieren referencias!)

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

Para llamarlo en Excel necesita poner dos parámetros: celda y marca de separación:

=UniqueFromCell(B4,"/")