EXCEL-VBA帶合并單元格的數(shù)據(jù)轉置

數(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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容