如何将行组转置为列


0

我的源表如下所示

ID   Product   Amount
22   product1  $10
22   product2  $20
22   product3  $30
33   product2  $4
33   product3  $5
44   product1  $78
44   product4  $90

这是我需要的决赛桌:

ID  product1 product2 product3 product4
22       $10      $20      $30     
33                 $4       $5
44       $78                        $90

可能将“ 转置”列
DavidPostill

1
不能重复。这不仅是移调,而是重组。
fixer1234 2013年

Answers:


1

http://www.excel-easy.com/examples/transpose.html

首次在Google上投放Excel 2010换位。

基本上,您选择了所有要转置的数据(包括任何列或行标题)Ctrl + C进行复制,右键单击要粘贴其并粘贴特殊字符的左上方单元格,选中转置框并单击确定,您就完成了。


如果可以的话,我会将其标记为重复项。superuser.com/questions/553666/...
安德鲁·亨德里克斯

1
请仔细阅读问题。这与移调无关。
fixer1234 2013年

1

Sheet1中使用如下数据:

在此处输入图片说明

运行短宏:

Sub TwoDee()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim N As Long, i As Long, v1 As String, v2 As String, v3 As Long
    Dim iRow As Long, iCol As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    s2.Cells.Clear

    N = s1.Cells(Rows.Count, "A").End(xlUp).Row
    s1.Range("A2:B" & N).Copy s2.Range("A2")
    s2.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo
    s2.Range("B:B").RemoveDuplicates Columns:=1, Header:=xlNo
    s2.Range("B2:B" & N).Copy
    s2.Range("B1").PasteSpecial Transpose:=True
    s2.Range("B2:B" & N).Clear

    For i = 2 To N
        v1 = s1.Cells(i, 1).Value
        v2 = s1.Cells(i, 2).Value
        v3 = s1.Cells(i, 3).Value
        iRow = s2.Range("A:A").Find(What:=v1, After:=s2.Range("A1")).Row
        iCol = s2.Range("1:1").Find(What:=v2, After:=s2.Range("A1")).Column
        s2.Cells(iRow, iCol) = v3
    Next i
End Sub

将在Sheet2中生成此代码:

在此处输入图片说明


1

这可以通过使用数据透视表来完成。与选定的单个细胞或整个表中,导航到 InsertTablesPivot Table

然后将ID拖动到“行”区域,将“乘积”拖动到“列”区域,将“金额”拖动到“值”区域。试一下格式和标签,直到获得所需的内容:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.