有一檢查表:結(jié)論有空白虏等,同一個(gè)檢查項(xiàng)目也有多個(gè)結(jié)果弄唧。
檢查表
結(jié)果:
結(jié)果
要求:同一姓名,同一檢查項(xiàng)目得結(jié)果用“/”鏈接起來霍衫,放在一個(gè)單元格候引。
操作方法:brr(行,列)確定數(shù)據(jù)的放置位置慕淡,這里姓名為行背伴,檢查項(xiàng)目為列。
Sub Cat_two()
Dim arr, brr(1 To 10000, 1 To 11)
'//定義足夠大的數(shù)組brr來放置數(shù)據(jù)
Set d = CreateObject("scripting.dictionary") '//創(chuàng)建字典峰髓,定位行列
arr = Sheet4.[a1].CurrentRegion '//原始數(shù)據(jù)
r = 1: c = 1 '//第一行第一列
For i = 2 To UBound(arr) '//遍歷原始數(shù)據(jù)
If arr(i, 3) <> "" Then '//做了檢查才符合數(shù)據(jù)要求
'// 用字典來確定每個(gè)姓名所在的行
If Not d.exists(arr(i, 1)) Then r = r + 1: d(arr(i, 1)) = r
'//用字典來確定每個(gè)項(xiàng)目所在的列
If Not d.exists(arr(i, 2)) Then c = c + 1: d(arr(i, 2)) = c
'//讀取行列傻寂,組成坐標(biāo)(行,列)
m = d(arr(i, 1)): n = d(arr(i, 2))
brr(m, 1) = arr(i, 1) '//姓名
brr(1, n) = arr(i, 2) '//項(xiàng)目
'//檢查結(jié)論鏈接起來,坐標(biāo)(m,n)確定其位置携兵,mid去除第一個(gè)逗號
brr(m, n) = Mid(brr(m, n) & "/" & arr(i, 3), 2, 999)
End If
Next
'//清空區(qū)域疾掰,輸出數(shù)組數(shù)據(jù)
Sheet2.Cells.ClearContents
Sheet2.[a1].Resize(r, c) = brr
End Sub
當(dāng)我們需要轉(zhuǎn)置數(shù)據(jù)得時(shí)候,可以用此套路來將一維表轉(zhuǎn)為二維表徐紧。
示例文件下載:
鏈接: http://pan.baidu.com/s/1hrZyL04 密碼: gxh2