數(shù)據(jù):
數(shù)據(jù)
轉置后結果:
結果
Sub 數(shù)據(jù)轉置()
Dim arr, LastRow&, LastCol&, brr(1 To 66666, 1 To 5)
Dim k&, Zone$, City$, i&, j&
With Sheets("銷量")
LastRow = .Cells(Rows.Count, 4).End(xlUp).Row
LastCol = .Cells(14, Columns.Count).End(xlToLeft).Column
arr = .Range(.Cells(13, 2), .Cells(LastRow, LastCol)).Value '原始數(shù)據(jù)
End With
For i = 3 To UBound(arr) '遍歷原始數(shù)據(jù)(行方向)
If arr(i, 1) <> "" Then Zone = arr(i, 1) '區(qū)域
If arr(i, 2) <> "" Then City = arr(i, 2) '城市
For j = 4 To UBound(arr, 2) '遍歷每個日期
k = k + 1 '計數(shù)
brr(k, 1) = Zone
brr(k, 2) = City
brr(k, 3) = arr(i, 3) '門店
brr(k, 4) = arr(2, j) '日期
brr(k, 5) = arr(i, j) '日申請量
Next
Next
With Sheets("轉置數(shù)據(jù)") '//輸出數(shù)據(jù)
.UsedRange.Offset(1, 0).ClearContents '//清空工作表
.Range("a2").Resize(k, 5) = brr
End With
End Sub
對于合并單元格的處理,只需要將合并單元格區(qū)域中的第一個單元格(也就是有數(shù)據(jù)的)放入一個變量當中,同時余下的單元格如果是空,就讀取變量即可。
示例文件下載:
鏈接: http://pan.baidu.com/s/1c1HVIzY 密碼: dpd3