如何在Excel 2010中转置

我有一个以下格式的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 .... 

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

尝试这个

 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 

我能够很快地做到这一点,结合使用串联和反串联以及http://www.cpearson.com/excel/TableToColumn.aspx公&#x5F0F;

 =$A1&","&B1 

EX1

 =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) 

EX4

祝你好运。