ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 437|回复: 4

[讨论] 多条件求和的方法有多少种

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-17 13:39 | 显示全部楼层 |阅读模式



   昨天在网上找了好久的多条件汇总求和的教程,结果都是用的字典,而我一点也不懂。


   早上上班摸鱼搞了个for循环加if判断,也不知道有什么样的缺点!


   发到论坛想请哪位大侠看到后给指点一二,或者提供下其它的方法。


   真心感谢!


Sub 成绩汇总()


Dim arr, myarr, j As Byte, r As Byte

myarr = Range("b1").CurrentRegion

arr = Range("h1").CurrentRegion

For r = 2 To UBound(arr)

    For j = 2 To UBound(myarr)

         If myarr(j, 1) = arr(r, 1) And myarr(j, 2) = arr(r, 2) And arr(r, 3) = "" Then

             arr(r, 3) = myarr(j, 3)

        Else

             If myarr(j, 1) = arr(r, 1) And myarr(j, 2) = arr(r, 2) And arr(r, 3) <> "" Then

                arr(r, 3) = arr(r, 3) + myarr(j, 3)

              End If

            End If

        Next j

    Next r

    If Range("j2") = "" Then

        Range("h1:j" & UBound(arr)) = arr

    End If

End Sub


成绩单汇总.rar

12.79 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2023-5-17 14:03 | 显示全部楼层
数组汇总也可以的,但字典代码更简洁,尤其大数据量情况下字典比数组明显更快;

最快的还是SQL,常用的SQL语法也简单;
我对比写了字典的代码,不算输出,汇总部分的代码是很短的;

成绩单汇总.rar

17.86 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2023-5-17 14:20 | 显示全部楼层
别管crr(r,3)是不是空了,直接加就行了。
image.png

TA的精华主题

TA的得分主题

发表于 2023-5-17 14:26 | 显示全部楼层
补充了SQL方法汇总,这个最快也最简单,还能实现很多复杂的功能;

如果只是要做汇总,示例代码就可以了;

成绩单汇总.rar

22.1 KB, 下载次数: 16

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-17 15:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
fanyoulin 发表于 2023-5-17 14:03
数组汇总也可以的,但字典代码更简洁,尤其大数据量情况下字典比数组明显更快;

最快的还是SQL,常用的S ...

感谢,我下载学习下。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 10:48 , Processed in 0.037594 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表