excel如何更有效率的进行条件求和(字典方法)

时间:2024-10-11 23:40:03

1、【第一步】 打开需要进行条件求和的表格,可以看到下图,我用来测试的表格有15132行,是万行以上的数据量,A到C列为原始数据区域,我们需要在I列计算出各个货号的总销量。

excel如何更有效率的进行条件求和(字典方法)

2、【第二步】 我们在I列输入函数 =SUMIF(A:A,H2,C:C) ,然后向下填充公式,就可以得出各个货号的总销量,计算过程需要运行一段时间,接下我用代码来测试使用sumif函数得出结果所需时间。

excel如何更有效率的进行条件求和(字典方法)

3、【第三步】 我们在“开发工具”选项卡,找到Visual Basic ,打开VB代码编辑器,或者直接按下组合键 Alt+F11 也可以打开VB代码编辑器。

excel如何更有效率的进行条件求和(字典方法)

4、【第四步】 在打开的VB代码编辑器中,插入以下代码:Public Sub 用sumif公式得出总数量() Dim RowUBound1, RowUBound2, T1, T2 Appl足毂忍珩ication.ScreenUpdating = False RowUBound1 = Cells(Rows.Count, "H").End(3).Row RowUBound2 = Cells(Rows.Count, "A").End(3).Row '用sumif公式得出总数量 T1 = Timer Range("I2").FormulaR1C1 = "=SUMIF(C[-8],RC[-1],C[-6])" Range("I2").AutoFill Destination:=Range("I2:I" & RowUBound1) T2 = Timer Application.ScreenUpdating = True MsgBox "用SUMIF函数计算 " & RowUBound2 & _ " 行数据并得出总数量用时: " & Format(T2 - T1, "0.0000") & "秒。"End Sub

excel如何更有效率的进行条件求和(字典方法)

5、【第五步】 点击运行代码,用timer方法得出,用sumif函数计算15132行数据用户2.8672秒,整个运行过程需要等待一会儿,这段代码是模拟sumif函数并向下填充所需要的时间,

excel如何更有效率的进行条件求和(字典方法)

6、【第六步】 我们再一次打开VB代码胆咣骜岱编辑器,插入下面的一段代码:Public Sub 用字典得出总销量() Dim T1, T2, ARR, I, d As Object, 伊怕锱鳏RowUBound2 RowUBound2 = Cells(Rows.Count, "A").End(3).Row Set d = CreateObject("scripting.dictionary") T1 = Timer ARR = [a1].CurrentRegion For I = 2 To UBound(ARR) d(ARR(I, 1)) = d(ARR(I, 1)) + ARR(I, 3) Next [h2].Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items)) d.RemoveAll T2 = Timer MsgBox "用字典方法计算 " & RowUBound2 & _ " 行数据并得出总销量用时: " & Format(T2 - T1, "0.0000") & "秒。"End Sub

excel如何更有效率的进行条件求和(字典方法)

7、【第七步】 我们再次点击运行刚插入的代码段,这段是用字典方法,进行条件求和的,运行开始后,立即弹出:用字典方法计算15132行数据并得出总销量用时0.0508秒,0.1秒都不到,比sumif函数快很多,对于大量数据更有效率。

excel如何更有效率的进行条件求和(字典方法)
© 手抄报圈