|
楼主 |
发表于 2016-4-1 10:36
|
显示全部楼层
本帖最后由 lidayu 于 2016-4-1 11:13 编辑
grf1973 发表于 2016-4-1 09:50
1、数据表中,5--7列为软肩章,8--9列为套肩章
jz = IIf(j
您好,如果汇总表增加“硬肩章”数据源表不变("软肩章", “硬肩章”)同样*2要怎么改呢?
我改成下面这样提示
Sub 小单位计数汇总()
Set d = CreateObject("scripting.dictionary")
arr = Sheets("数据源").[a1].CurrentRegion
For i = 2 To UBound(arr)
tmp = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 1) '临时条件:大单位+小单位+级别+性别
For j = 5 To 9
jz = IIf(j <= 10, "软肩章", "硬肩章", "套肩章") '肩章类型
k = IIf(j <= 10, 2, 2, 1) '软肩章计数*2,套肩章计数*1
If arr(i, j) = "√" Then
x = tmp & jz & arr(2, j) '数据表条件:大单位+小单位+级别+性别+肩章类型+肩章规格
d(x) = d(x) + k
End If
Next
Next
Sheet3.[c4:m13] = "" '该区域为空
arr = [a2:m13] '汇总表范围,不含标题栏
For i = 3 To UBound(arr) - 2 '汇总表起始行
If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1)
tmp = [a2] & [a3] & arr(i, 1) & arr(i, 2) '临时条件:大单位+小单位+级别+性别
For j = 3 To 10 '汇总范围列号
If arr(1, j) = "" Then arr(1, j) = arr(1, j - 1)
jz = IIf(j <= 8, "软肩章", "硬肩章", "套肩章") '肩章类型
x = tmp & jz & arr(2, j) '结果表条件:大单位+小单位+级别+性别+肩章类型+肩章规格
arr(i, j) = d(x) '计数结果
arr(11, j) = arr(11, j) + arr(i, j) '第12行汇总,行号需-1arr(11, j)
Next
arr(i, 11) = arr(i, 3) + arr(i, 4) + arr(i, 5)
arr(i, 12) = arr(i, 9) + arr(i, 10)
arr(i, 13) = arr(i, 11) + arr(i, 11)
arr(11, 11) = arr(11, 11) + arr(i, 11)
arr(11, 12) = arr(11, 12) + arr(i, 12)
Next
arr(11, 13) = arr(11, 12) + arr(11, 11) '第13行总计,行号需-1arr(12, j)
arr(12, 3) = arr(11, 13)
[a2:m13] = arr '汇总表范围,不含标题栏
End Sub
|
|