站長資訊網
        最全最豐富的資訊網站

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法,我們在工作中會遇到很多文章,像excel橫向變縱向這類問題應該大家也都遇到過吧,今天這篇excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法的文章,專門為你解答了這個問題,相信你看完后一定會收獲很多!

        在Excel中將橫向排列的數據轉換為縱向排列,在上文中,我們講解了通常用的方法:Excel中數據從橫向排列到縱向排列的轉換的方法,實際上那是通過選擇性粘貼的轉置功能實現的簡單將橫向排列的數據轉換為縱向排列,但很多情況下無法使用“轉置”的功能,例如下圖A1:G17區域為某網店部分商品的庫存數量,“商品尺寸”是橫向排列的,現在需要將這些數據按縱向排列,即將“商品尺寸”及其對應的“貨號”、“數量”排列到三列中,如圖J至L列所示。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        本文介紹用數據透視、數組公式和VBA等三種方法來實現這種橫向排列的數據轉換為縱向排列,以在Excel 2010操作為例,范例文件下載:百度網盤

        方法一:用數據透視表

        1、利用原始數據建立數據透視表。

        按組合鍵“Alt+D”,再按“P”鍵,打開“數據透視表和數據透視圖向導”對話框,選擇“多重合并計算數據區域”,單擊“下一步”。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        在彈出的對話框中再次單擊“下一步”,彈出““數據透視表和數據透視圖向導–步驟2b”,選擇工作表中的A1:G17區域,單擊“添加”按鈕。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        單擊“完成”按鈕,Excel會在新工作表中建立數據透視表。

        2、通過數據透視表獲取明細數據。

        右擊數據透視表行總計和列總計交叉的單元格,本例為H21,在彈出的快捷菜單中選擇“顯示詳細信息”(也可雙擊該單元格右下角的填充柄)。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        Excel會自動在新工作表中顯示該數據透視表數據源的明細數據,如圖所示。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        3、篩選C列中的非空數據,將A至C列數據復制到所需位置即可。

        方法二:用數組公式

        假如將轉換后的數據放在J至L列,在J2單元格輸入數組公式:

        =OFFSET(A$1,SMALL(IF(B$2:G$17="",4^7,ROW(B$1:G$16)),ROW(A1)),)&""

        公式輸入完畢按Ctrl+Shift+Enter結束,下同。然后拖動填充柄向下填充公式,直到公式返回空為止。

        在K2輸入數組公式:

        =OFFSET(A$1,,SMALL(IF(OFFSET(B$1,MATCH(J2,A$2:A$17,),,,6)<>"",COLUMN($A:$F)),COUNTIF(J$2:J2,J2)))

        在L2輸入數組公式:

        =OFFSET(A$1,MATCH(J2,A$2:A$17,),SMALL(IF(OFFSET(B$1,MATCH(J2,A$2:A$17,),,,6)<>"",COLUMN($A:$F)),COUNTIF(J$2:J2,J2)))

        然后選擇K2:L2,雙擊填充柄將公式填充到這兩列的其余單元格。

        excel橫向變縱向 Excel中數據從橫向排列到縱向排列的復雜轉換的幾種方法

        方法三、用VBA

        用下面的VBA代碼也可實現上述轉換,方法是按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼并運行。

        Sub 轉換()

        Dim Arr1, Arr2()

        Dim Rnum As Integer, Cnum As Integer, Tnum As Integer

        Dim i As Integer, j As Integer, k As Integer

        Application.ScreenUpdating = False

        Rnum = [A65536].End(xlUp).Row

        Cnum = 7

        Tnum = Rnum * Cnum

        Range("J2:L" & Tnum).ClearContents

        Arr1 = Range("A1:G" & Rnum)

        ReDim Arr2(1 To Tnum, 1 To 3)

        For i = 2 To Rnum

        For j = 2 To Cnum

        If Arr1(i, j) <> "" Then

        k = k + 1:

        Arr2(k, 1) = Arr1(i, 1)

        Arr2(k, 2) = Arr1(1, j)

        Arr2(k, 3) = Arr1(i, j)

        End If

        Next

        Next

        Range("J2").Resize(k, UBound(Arr2, 2)) = Arr2

        Application.ScreenUpdating = True

        End Sub

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 99热这里只有精品在线| 国产精品视频免费| 国产在线精品一区二区在线观看| 91久久精品电影| 欧美日韩人妻精品一区二区在线| 国内精品视频九九九九| 国产成人精品天堂| 少妇人妻无码精品视频| 免费人成在线观看欧美精品| 在线电影国产精品| 国产精品宾馆在线精品酒店| 亚洲韩国精品无码一区二区三区| 国产精品视频九九九| 九九热在线精品视频| 久久精品国产亚洲AV无码娇色| 欧美成人精品欧美一级乱黄一区二区精品在线 | 精品卡一卡二卡乱码高清| 香港三级精品三级在线专区| 精品久久久久久国产免费了| 国产福利精品视频自拍| 欧美精品免费线视频观看视频| 99re6这里有精品热视频| 国内精品久久久久久99蜜桃| 人妻精品久久久久中文字幕69 | 99精品视频在线观看婷| 亚洲国产精品久久久久| 久久国产亚洲精品麻豆| 成人久久精品一区二区三区| 500av导航大全精品| 97精品国产福利一区二区三区| 国产精品视频一区二区三区四 | 欧美日激情日韩精品| 久久91精品久久91综合| 国产乱码精品一区二区三区四川人| 国产精品国产三级国产AV主播| 色欲国产麻豆一精品一AV一免费| 亚洲精品无码不卡在线播HE| 亚洲欧美日韩久久精品第一区 | 99久久国产热无码精品免费久久久久| 四虎成人精品免费影院| 2024最新国产精品一区|