Excel精英培训网

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

[已解决]请教VBA多条件汇总的写法

[复制链接]
发表于 2013-9-24 21:28 | 显示全部楼层 |阅读模式
请教高手关于多条件汇总VBA的写法
最好有人思路说明
便于我这种菜鸟依葫芦画葫芦地学习一下
最佳答案
2014-9-11 09:19

复制代码
Sub JustTest()
    Dim d As New Dictionary, I&, lngR&, j&, lngC&
    Dim Arr, Ar&(1 To 10, 1 To 11)
    With Sheet2
        Arr = .[c2:m2]
        For I = 1 To UBound(Arr, 2)
            d.Add Arr(1, I), I
        Next I
        Arr = .[b4:b8]
        For I = 1 To UBound(Arr)
            d.Add Arr(I, 1) & "R", I
        Next I
    End With
    With Sheet1
        Arr = .Range("b2:g" & .Cells(.Rows.Count, 2).End(3).Row).Value
    End With
    For I = 1 To UBound(Arr)
        lngR = IIf(Arr(I, 6) = "Æóòμ", 0, 5) + d(Left(Arr(I, 5), 2) & "R")
        For j = 2 To 4
            lngC = d(Arr(I, j))
            Ar(lngR, lngC) = Ar(lngR, lngC) + Arr(I, 1)
        Next j
    Next I
    With Sheet2
        With .[c4:m13]
            .ClearContents
            .Value = Ar
        End With
    End With
    Set d = Nothing
End Sub


看下合你要求不?

Book1.zip

10.07 KB, 下载次数: 15

发表于 2013-9-24 22:01 | 显示全部楼层
看不懂你的要求!
你就不会做一个结果范例?
回复

使用道具 举报

 楼主| 发表于 2014-2-22 14:53 | 显示全部楼层
用VBA多条件求和

Book1.zip

11.32 KB, 下载次数: 17

回复

使用道具 举报

发表于 2014-2-22 18:44 | 显示全部楼层
jszjglrf 发表于 2014-2-22 14:53
用VBA多条件求和

表二的四级分类怎么和A、B列对应?表格设计有问题。
回复

使用道具 举报

 楼主| 发表于 2014-9-11 07:02 | 显示全部楼层
jszjglrf 发表于 2014-2-22 14:53
用VBA多条件求和

三维表式
回复

使用道具 举报

发表于 2014-9-11 09:05 | 显示全部楼层
正常
关注
次级
可疑
损失
这些类别是如何划分的?
回复

使用道具 举报

发表于 2014-9-11 09:19 | 显示全部楼层    本楼为最佳答案   

复制代码
Sub JustTest()
    Dim d As New Dictionary, I&, lngR&, j&, lngC&
    Dim Arr, Ar&(1 To 10, 1 To 11)
    With Sheet2
        Arr = .[c2:m2]
        For I = 1 To UBound(Arr, 2)
            d.Add Arr(1, I), I
        Next I
        Arr = .[b4:b8]
        For I = 1 To UBound(Arr)
            d.Add Arr(I, 1) & "R", I
        Next I
    End With
    With Sheet1
        Arr = .Range("b2:g" & .Cells(.Rows.Count, 2).End(3).Row).Value
    End With
    For I = 1 To UBound(Arr)
        lngR = IIf(Arr(I, 6) = "Æóòμ", 0, 5) + d(Left(Arr(I, 5), 2) & "R")
        For j = 2 To 4
            lngC = d(Arr(I, j))
            Ar(lngR, lngC) = Ar(lngR, lngC) + Arr(I, 1)
        Next j
    Next I
    With Sheet2
        With .[c4:m13]
            .ClearContents
            .Value = Ar
        End With
    End With
    Set d = Nothing
End Sub


看下合你要求不?

Book1.rar

18 KB, 下载次数: 35

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 15:17 , Processed in 0.250309 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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