gpt4 book ai didi

vba - Excel 宏可更有效地合并重复单元格并汇总相应数据

转载 作者:行者123 更新时间:2023-12-04 21:15:55 25 4
gpt4 key购买 nike

我有以下代码,它合并重复的单元格,然后将其他列中的相应单元格相加。例如,如果我有:

mike  651
mike 115
john 380
bob 225
bob 200

结果输出将是:
mike  766
john 380
bob 425

该代码适用于较小的数据集,但是当我尝试在较大的数据集(大约 500,000 行)上使用它时,代码非常慢(需要一个多小时才能运行)。如何编辑我的代码以使其足够高效地合并重复项并快速汇总非常大数据集的相应数据?
Sub mergeDups()

lastRow = ActiveSheet.UsedRange.Rows.Count
Set r = ActiveSheet.UsedRange.Resize(1)
With Application.WorksheetFunction

For iRow = lastRow - 1 To 2 Step -1
Do While Cells(iRow, 1) = Cells(iRow + 1, 1)
LastCol = r(r.Count).Column
SumCol = LastCol + 1
For iCol = 2 To SumCol
Cells(iRow, iCol) = .Sum(Range(Cells(iRow, iCol), Cells(iRow + 1, iCol)))
Next iCol
Rows(iRow + 1).delete
Loop
Next iRow

End With

End Sub

最佳答案

这将 A:B 列相加,并将结果放在 D1 和下。

Sub mergeDups()
lastRow = ActiveSheet.UsedRange.Rows.Count
Range("D1").Consolidate Sources:=Array("R1C1:R" & lastRow & "C2"), LeftColumn:=True, Function:=xlSum
End Sub

我的任务大约一秒钟,有 50,000 行

关于vba - Excel 宏可更有效地合并重复单元格并汇总相应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com