Когато анализирате данните в Excel, може да откриете, че съдържат множество дублиращи се редове. В този случай може би ще искате бързо да консолидирате редовете. Това стрost ще предложи 2 бързи начина да го получите.
Много потребители често трябва да обединяват дублиращите се редове и да сумират съответните стойности в Excel. Например имам набор от данни в работен лист на Excel, който съдържа много дублиращи се записи, като следната екранна снимка. Следователно искам да консолидирам дублиращите се редове и да сумирам съответните стойности в друга колона. Определено ще бъде обезпокоително, ако направя това ръчно. Затова използвам следните 2 начина да го реализирам.
Метод 1: Използвайте функцията „Консолидиране“
- Първо щракнете върху празна клетка, където искате да поставите обединените и обобщените данни.
- След това се обърнете към раздела „Данни“ и кликнете върху бутона „Консолидиране“.
- В изскачащия диалогов прозорец се уверете, че в полето „Функция“ е избрано „Sum“.
- След това кликнете върху
бутон.
- По-късно изберете диапазона, който искате да консолидирате и щракнете
бутон.
- След това щракнете върху бутона „Добавяне“ в диалоговия прозорец „Консолидиране“.
- Впоследствие проверете опциите „Най-горен ред“ и „Лява колона“.
- Накрая щракнете върху бутона „OK“.
- Веднага редовете се консолидират, както е показано на следващата екранна снимка.
Метод 2: Използвайте VBA код на Excel
- В самото начало изберете диапазона, който искате.
- След това задействайте редактора на 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








