永发信息网

用VBA数组或字典 进行多条件多列汇总

答案:2  悬赏:30  手机版
解决时间 2021-04-08 07:59
  • 提问者网友:动次大次蹦擦擦
  • 2021-04-07 12:24
用VBA数组或字典 进行多条件多列汇总



最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-04-07 12:30
sub s()
    arr = [a1].currentregion
    set d = createobject("scripting.dictionary")
    k = 1
    for i = 2 to ubound(arr)
        t = arr(i, 1) & arr(i, 2)
        if not d.exists(t) then
            k = k + 1
            d(t) = k
            if k <> i then
                arr(k, 1) = arr(i, 1)
                arr(k, 2) = arr(i, 2)
                arr(k, 3) = arr(i, 3)
            end if
        else
            arr(d(t), 3) = arr(d(t), 3) + arr(i, 3)
        end if
    next
    [f1].resize(k, 3) = arr
end sub
全部回答
  • 1楼网友:罪歌
  • 2021-04-07 13:14
Sub s()     arr = [a1].CurrentRegion     Set d1 = CreateObject("scripting.dictionary")     Set d2 = CreateObject("scripting.dictionary")     For i = 1 To UBound(arr)         d1(arr(i, 1) & " " & arr(i, 2)) = d1(arr(i, 1) & " " & arr(i, 2)) + arr(i, 3)         d2(arr(i, 1) & " " & arr(i, 2)) = d2(arr(i, 1) & " " & arr(i, 2)) + arr(i, 4)     Next     i = 0     For Each k In d1.Keys         i = i + 1         Cells(i, 7).Resize(, 2) = Split(k)         Cells(i, 9) = d1(k)         Cells(i, 10) = d2(k)     Next End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯