Добрый день! Подскажите, пжл., как удалить одинаковые значения в пределах одной ячейки? Значения в пределах ячейки разделены точкой. Можно формулой или макросом. Пример прилагаю. Заранее спасибо!
Добрый день! Подскажите, пжл., как удалить одинаковые значения в пределах одной ячейки? Значения в пределах ячейки разделены точкой. Можно формулой или макросом. Пример прилагаю. Заранее спасибо!grigor30
dm = Split(d, ".") Dim NoDupes As New Collection Dim i As Integer On Error Resume Next For i = 0 To UBound(dm) NoDupes.Add dm(i), CStr(dm(i)) Next i For Each Item In NoDupes ndps = ndps & "." & Item Next Item ndps = Mid(ndps, 2, 256) End Function
[/vba]
udf
[vba]
Код
Function ndps(d As String) As String
dm = Split(d, ".") Dim NoDupes As New Collection Dim i As Integer On Error Resume Next For i = 0 To UBound(dm) NoDupes.Add dm(i), CStr(dm(i)) Next i For Each Item In NoDupes ndps = ndps & "." & Item Next Item ndps = Mid(ndps, 2, 256) End Function
Dim arr(), coll As Collection Dim var, lr As Long, i As Long, ii As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A1").Resize(lr).Value
On Error Resume Next For i = 1 To UBound(arr) If arr(i, 1) <> "" Then Set coll = New Collection var = Split(arr(i, 1), ".") For ii = 0 To UBound(var) coll.Add Item:=var(ii), Key:=var(ii) Next ii var = Empty For ii = 1 To coll.Count var = var & coll(ii) & "." Next ii var = Left(var, Len(var) - 1) arr(i, 1) = var End If Next i On Error GoTo 0
Dim arr(), coll As Collection Dim var, lr As Long, i As Long, ii As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A1").Resize(lr).Value
On Error Resume Next For i = 1 To UBound(arr) If arr(i, 1) <> "" Then Set coll = New Collection var = Split(arr(i, 1), ".") For ii = 0 To UBound(var) coll.Add Item:=var(ii), Key:=var(ii) Next ii var = Empty For ii = 1 To coll.Count var = var & coll(ii) & "." Next ii var = Left(var, Len(var) - 1) arr(i, 1) = var End If Next i On Error GoTo 0