Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3385|回复: 9

[已解决]VBA实现多条件求和(三项内容相同,则将对应的第四项求和)

[复制链接]
发表于 2015-8-27 17:40 | 显示全部楼层 |阅读模式
如图 将年份 月份 编号相同的项的数据求和
因为年份很多大概50年
如:1953 年的 1月 中 前五天编号是1  求这五天的数据的和
以此类推 每个月都有6组编号 分别是1——6  每年12个月  以为每天数不同 所以每各小组天数不同
每个月前5组每组五天 第六组天数不定 若该月31天 第六组6填 28天 第六组3填
最佳答案
2015-8-28 09:16
首先说明,gdpgdp317 说的对,用数据透视表最快最好。
下面是我写的,我也是菜鸟
Sub qiuHe()
    Dim arr, arr2(1 To 4)
    arr = Range("A2:F" & Range("A65536").End(xlUp).Row)
    arr2(1) = arr(1, 1)
    arr2(2) = arr(1, 2)
    arr2(4) = arr(1, 6)
    arr2(3) = arr(1, 5)
    For x = 2 To UBound(arr)
        If arr(x, 6) = arr(x - 1, 6) And arr(x, 1) = arr(x - 1, 1) And arr(x, 2) = arr(x - 1, 2) Then
            arr2(3) = arr2(3) + arr(x, 5)
        Else
            Cells(Range("J65536").End(xlUp).Row + 1, 10).Resize(1, 4) = arr2
            arr2(1) = arr(x, 1)
            arr2(2) = arr(x, 2)
            arr2(4) = arr(x, 6)
            arr2(3) = arr(x, 5)
        End If
    Next
    Cells(Range("J65536").End(xlUp).Row + 1, 10).Resize(1, 4) = arr2

End Sub

查找.jpg

1

1
 楼主| 发表于 2015-8-27 17:42 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-8-27 17:42 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-8-27 17:59 | 显示全部楼层
我再顶!
回复

使用道具 举报

 楼主| 发表于 2015-8-27 18:27 | 显示全部楼层
我顶···········
回复

使用道具 举报

发表于 2015-8-27 19:37 | 显示全部楼层
数据透视表,如何?
回复

使用道具 举报

发表于 2015-8-28 09:16 | 显示全部楼层    本楼为最佳答案   
首先说明,gdpgdp317 说的对,用数据透视表最快最好。
下面是我写的,我也是菜鸟
Sub qiuHe()
    Dim arr, arr2(1 To 4)
    arr = Range("A2:F" & Range("A65536").End(xlUp).Row)
    arr2(1) = arr(1, 1)
    arr2(2) = arr(1, 2)
    arr2(4) = arr(1, 6)
    arr2(3) = arr(1, 5)
    For x = 2 To UBound(arr)
        If arr(x, 6) = arr(x - 1, 6) And arr(x, 1) = arr(x - 1, 1) And arr(x, 2) = arr(x - 1, 2) Then
            arr2(3) = arr2(3) + arr(x, 5)
        Else
            Cells(Range("J65536").End(xlUp).Row + 1, 10).Resize(1, 4) = arr2
            arr2(1) = arr(x, 1)
            arr2(2) = arr(x, 2)
            arr2(4) = arr(x, 6)
            arr2(3) = arr(x, 5)
        End If
    Next
    Cells(Range("J65536").End(xlUp).Row + 1, 10).Resize(1, 4) = arr2

End Sub

查找.jpg
回复

使用道具 举报

 楼主| 发表于 2015-8-28 11:03 | 显示全部楼层
gdpgdp317 发表于 2015-8-27 19:37
数据透视表,如何?

年份贴别多 而且有好几个站的数据....我们是做水文的 比较麻烦
回复

使用道具 举报

 楼主| 发表于 2015-8-28 11:14 | 显示全部楼层
wanao2008 发表于 2015-8-28 09:16
首先说明,gdpgdp317 说的对,用数据透视表最快最好。
下面是我写的,我也是菜鸟
Sub qiuHe()

大神 搞定了!!!求QQ 以后多交流 你在哪学的VBA?
回复

使用道具 举报

发表于 2015-8-29 18:55 | 显示全部楼层
niuchennc 发表于 2015-8-28 11:14
大神 搞定了!!!求QQ 以后多交流 你在哪学的VBA?

都是自学的,没有上过专业课。
很多时候我也经常是在论坛发求助贴,每经高手指点一次就多学会一些。
多加点论坛或QQ群吧,其实我很菜{:251:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 03:24 , Processed in 0.424453 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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