Ниже моя исходная таблица
Name Sales
---------------------------------
Thomas 100
Jay 200
Thomas 100
Mathew 50
Вывод мне нужен, как показано ниже
Name Sales
---------------------------------
Thomas 200
Jay 200
Mathew 50
В принципе, у меня есть 2 столбца, которые могут иметь дубликаты, и мне нужно объединить второй столбецосновано на первом столбце.
Текущий код, который я имею, как показано ниже.Работает отлично.На 4500 записей уходит около 45 секунд.Мне было интересно, есть ли более эффективный способ сделать это ... поскольку это кажется тривиальным требованием.
'Combine duplicate rows and sum values
Dim Rng As Range
Dim LngRow As Long, i As Long
LngLastRow = lRow 'The last row is calculated somewhere above...
'Initializing the first row
i = 1
'Looping until blank cell is encountered in first column
While Not Cells(i, 1).Value = ""
'Initializing range object
Set Rng = Cells(i, 1)
'Looping from last row to specified first row
For LngRow = LngLastRow To (i + 1) Step -1
'Checking whether value in the cell is equal to specified cell
If Cells(LngRow, 1).Value = Rng.Value Then
Rng.Offset(0, 1).Value = Rng.Offset(0, 1).Value + Cells(LngRow, 2).Value
Rows(LngRow).Delete
End If
Next LngRow
i = i + 1
Wend
Обратите внимание, что это часть большего приложения Excel, и, следовательно, мне определенно нужнорешение находиться в Excel VBA.