用VBA数组或字典 进行多条件多列汇总
用VBA数组或字典 进行多条件多列汇总
答案:2 悬赏:30 手机版
解决时间 2021-04-08 07:59
- 提问者网友:动次大次蹦擦擦
- 2021-04-07 12:24
最佳答案
- 五星知识达人网友:何以畏孤独
- 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
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯