Страницы: 1
RSS
Удаление дубликатов строки.
 
Всем Доброго, уважаемые форумчане! Помогите, пожалуйста, решить задачу.
Суть:
Есть 2 столбца, в первом встречаются повторяющиеся значения. Нужно удалить дубли, при этом сложить значения в ячейках этих же строк во втором столбце.
Пробовал с помощью словаря решить - не хватило знаний, как результат: дубли просто исчезли из списка совсем.
Пример приложил.


Скрытый текст
 
Обязательно макросом?
Для Excel 2021+
Код
=УНИК(A:A)
=СУММЕСЛИ(A:A;D1;B:B)
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Обязательно макросом?Для Excel 2021+
Вовсе не обязательно. На 2007 не будет работать?
 
Нет, не будет
Макрос
Код
Sub UNIQUE_PLUS()
Dim arr()
Dim I&
Dim dic As Object
With Worksheets("как есть")
  arr = .Range("A1:B" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
End With
Set dic = CreateObject("Scripting.Dictionary")
With dic
  For I = LBound(arr, 1) To UBound(arr, 1)
    If Not .Exists(arr(I, 1)) Then
      .Add arr(I, 1), arr(I, 2)
    Else
      .Item(arr(I, 1)) = .Item(arr(I, 1)) + arr(I, 2)
    End If
  Next
End With
With Worksheets("как есть")
  .Range("G1").Resize(dic.Count) = Application.Transpose(dic.Keys)
  .Range("H1").Resize(dic.Count) = Application.Transpose(dic.Items)
End With
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Еще вариант макрос, исключающий возможную(!) ошибку не совпадающей индексации ключей и элементов в словаре
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Благодарю! Буду тестить.
 
Для коллекции
Слияние двух списков без дубликатов
потом собрать числовые данные в новый список труда не составит...
Страницы: 1
Читают тему
Наверх