При анализе данных в Excel вы можете обнаружить, что они содержат несколько повторяющихся строк. В этом случае, возможно, вы захотите быстро объединить строки. Это рost предложит 2 быстрых способа получить его.
Многим пользователям часто приходится объединять повторяющиеся строки и суммировать соответствующие значения в Excel. Например, у меня есть ряд данных на листе Excel, который содержит множество повторяющихся записей, как на следующем снимке экрана. Следовательно, я хочу объединить повторяющиеся строки и суммировать соответствующие значения в другом столбце. Будет определенно хлопотно, если я сделаю это вручную. Поэтому я использую следующие 2 способа реализовать это.
Способ 1: используйте функцию «Консолидация»
- Прежде всего, щелкните пустую ячейку, в которую вы хотите поместить объединенные и суммированные данные.
- Затем перейдите на вкладку «Данные» и нажмите кнопку «Консолидировать».
- Во всплывающем диалоговом окне убедитесь, что в поле «Функция» выбрано «Сумма».
- Затем, щелкните
.
- Позже выберите диапазон, который вы хотите объединить, и нажмите
.
- После этого нажмите кнопку «Добавить» в диалоговом окне «Консолидация».
- Затем отметьте опции «Верхняя строка» и «Левая колонка».
- Наконец, нажмите кнопку «ОК».
- Сразу же строки объединяются, как показано на следующем снимке экрана.
Способ 2: используйте код Excel VBA
- В самом начале выберите нужный вам диапазон.
- Затем запустите редактор VBA в соответствии с «Как запустить код VBA в вашем Excel».
- Затем скопируйте следующий код VBA в модуль.
Sub MergeRowsSumValues()
Dim objSelectedRange As Excel.Range
Dim varAddressArray As Variant
Dim nStartRow, nEndRow As Integer
Dim strFirstColumn, strSecondColumn As String
Dim objDictionary As Object
Dim nRow As Integer
Dim objNewWorkbook As Excel.Workbook
Dim objNewWorksheet As Excel.Worksheet
Dim varItems, varValues As Variant
On Error GoTo ErrorHandler
Set objSelectedRange = Excel.Application.Selection
varAddressArray = Split(objSelectedRange.Address(, False), ":")
nStartRow = Split(varAddressArray(0), "$")(1)
strFirstColumn = Split(varAddressArray(0), "$")(0)
nEndRow = Split(varAddressArray(1), "$")(1)
strSecondColumn = Split(varAddressArray(1), "$")(0)
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = nStartRow To nEndRow
strItem = ActiveSheet.Range(strFirstColumn & nRow).Value
strValue = ActiveSheet.Range(strSecondColumn & nRow).Value
If objDictionary.Exists(strItem) = False Then
objDictionary.Add strItem, strValue
Else
objDictionary.Item(strItem) = objDictionary.Item(strItem) + strValue
End If
Next
Set objNewWorkbook = Excel.Application.Workbooks.Add
Set objNewWorksheet = objNewWorkbook.Sheets(1)
varItems = objDictionary.keys
varValues = objDictionary.items
nRow = 0
For i = LBound(varItems) To UBound(varItems)
nRow = nRow + 1
With objNewWorksheet
.Cells(nRow, 1) = varItems(i)
.Cells(nRow, 2) = varValues(i)
End With
Next
objNewWorksheet.Columns("A:B").AutoFit
ErrorHandler:
Exit sub
End Sub
- После этого нажмите «F5», чтобы запустить этот макрос сейчас.
- Когда макрос завершится, появится новая книга Excel, в которой вы увидите объединенные строки и суммированные данные, как показано на рисунке ниже.
сравнение
| Преимущества | Недостатки | |
| Метод 1 | Простота в эксплуатации | Невозможно обработать два столбца не рядом друг с другом |
| Метод 2 | 1. Удобно для повторного использования | 1. Немного сложно понять новичкам в VBA |
| 2. Исходный лист Excel не испортится, так как он поместит объединенные данные в новый файл. | 2. Невозможно обработать два столбца не рядом друг с другом |
При обнаружении сбоя Excel
Как мы все знаем, Excel может время от времени давать сбой. В этом случае, в худшем случае, текущий файл Excel может быть поврежден напрямую. В это время у вас нет другого выбора, кроме как попытаться Восстановление Excel. Это требует от вас либо обращения за помощью к профессионалам, либо использования специализированного инструмента восстановления Excel, такого как DataNumen Excel Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая и коррумпированных лиц SQL Server и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com








