|
求高手出现啊!!!
本人之前已熬了无数个夜晚,做了无数次透视图,就是无法做到预期的那样啊!
之前做过这样的工作:每个缺陷项都填上对应的条款和条款内容,进行透视,但是因为部分条款没有对应的缺陷项,所以这些没有对应缺陷项的条款就不会在透视表中出现,但是,我是希望这些条款不管有没有对应的缺陷项,都出现在最后的表中,并进行统计~
(图片不知为什么,不能上传了。。。可详见此贴:http://www.excelpx.com/thread-429541-1-1.html(一开始似乎发错地方了,所以重新发了个贴))
要求:
1.将《缺陷统计分析表》中的“缺陷及问题”和“产品类别”对应到《指导原则》中的“条款”和“条款内容”中去。
2.统计该条款对应有多少条缺陷项。
3.《缺陷统计分析表》中的“缺陷及问题”和“产品类别”和《指导原则》中的“条款”和“条款内容”都不能少。
说明:
1.有的条款会对应多个缺陷项,有的条款没有对应的缺陷项。
2.“条款”和“条款内容”是唯一对应的。
无论用函数、透视表等等,什么手段都可以,就是希望能批量处理,因为实在太多了!
非常感谢!!!!
附件请测试。
- Private Sub CommandButton1_Click()
- Dim arr, brr, crr, drr, i&, j&, d As Object, r&
- Set d = CreateObject("scripting.dictionary")
- arr = Sheets(1).[a1].CurrentRegion
- brr = Sheets(2).[a1].CurrentRegion
- ReDim crr(1 To UBound(arr) + UBound(brr), 1 To 6)
- For i = 2 To UBound(arr)
- d(arr(i, 4)) = d(arr(i, 4)) & "," & i
- Next i
- For i = 2 To UBound(brr)
- r = r + 1
- crr(r, 1) = brr(i, 1)
- crr(r, 2) = brr(i, 2)
- crr(r, 3) = brr(i, 3)
- If d.exists(brr(i, 2)) Then
- drr = Split(d(brr(i, 2)), ",")
- For j = 1 To UBound(drr)
- crr(r, 4) = arr(drr(j), 5)
- crr(r, 5) = arr(drr(j), 2)
- If j = 1 Then crr(r, 6) = UBound(drr)
- If UBound(drr) > j Then r = r + 1
- Next j
- Else
- crr(r, 6) = 0
- End If
- Next i
- [a2].Resize(r, 6) = crr
- End Sub
复制代码
|
|