0

我有一个格式如下的 excel 表

a 2 3 4 0 0 0 0 0   
a 2 5 6 7 0 0 0 0  
a 4 5 9 0 0 0 0 0  
b 5 5 9 0 0 0 0 0   
b 1 1 1 1 1 1 1 1

我想结束这样的事情

a 2  
a 3  
a 4  
a 2  
a 5  
a 6  
a 7  
a 4  .....  
b 1  
b 1   
b 1 ....
4

3 回答 3

1

尝试这个

Sub move()

    Dim cell As Range, _
        found As Range
    Dim letter As String

    Set cell = Range("B1")
    Set found = Range("A:A").Find("*", Range("A1"), searchdirection:=xlPrevious).Offset(2, 0)

    Do While (cell.Value <> "")
        letter = cell.Offset(0, -1).Value
        Do While (cell.Value <> 0)
            found.Value = letter
            found.Offset(0, 1).Value = cell.Value
            Set cell = cell.Offset(0, 1)
            Set found = found.Offset(1, 0)
        Loop
        Set cell = Cells(cell.Row + 1, 2)
    Loop

End Sub
于 2012-10-17T21:00:42.710 回答
1

我能够通过连接和去连接的组合以及来自http://www.cpearson.com/excel/TableToColumn.aspx的公式很快地做到这一点

=$A1&","&B1

防爆1

=OFFSET($K$1:$R$5,TRUNC((ROW()-ROW($U$1))/COLUMNS($K$1:$R$5),0),MOD(ROW()-ROW($U$1),COLUMNS($K$1:$R$5)),1,1)

Ex2

=LEFT(U1,FIND(",",U1,1)-1)

Ex3

=RIGHT(U1,FIND(",",U1,1)-1)

防爆4

祝你好运。

于 2012-10-17T21:01:55.907 回答
1

查看我的unpivot 加载项(只需添加一个标题行,之后您可以将其删除)。它将以您需要的格式返回数据。

于 2012-10-17T20:40:20.197 回答