如何在Excel中将长表格转换为宽表格?
一张图片胜过千言万语。 比方说,在一张表中我有下面的表格:
使用这些信息,我想在另一个表格中以编程方式生成这样的表格(将长表格解开为宽表格)
你怎么能做到这一点?
使用VBA:
Range("G1:K99").Clear For Each xx In Range("A:A") If xx.Value = "" Then Exit Sub Range("G1").Offset(xx.Value, 0) = xx.Value For e = 1 To 99 If Range("G1").Offset(xx.Value, e) = "" Then Range("G1").Offset(xx.Value, e) = xx.Offset(0, 1).Value Exit For End If Next Next
该表是从列“G”创build的。 如果你想要另一张表:
Sheets(2).Range("G1: ...
在…之前添加表格
没有VBA,遵循这个计划:
添加公式:
M2 -> =IFERROR(MATCH(L2;$A$1:$A$8;);"") N2 -> =IFERROR(MATCH(L2;INDIRECT("$A" & (M2+1) & ":$A$8");)+M2;"") O2 -> =IFERROR(MATCH(L2;INDIRECT("$A" & (N2+1) & ":$A$8");)+N2;"") P2 -> =IFERROR(INDEX($B$1:$B$8;M2);"") Autocomplete also columns to R
和自动完成…
我还可以看到另一种方法。 添加两列“计数”和“密钥”。
添加公式并展开:
C2 -> =COUNTIF($B$2:B2;B2) D2 -> =B2&"|"&C2 G2 -> =IFERROR(INDEX($A:$A;MATCH($F2&"|"&COLUMN(A1);$D:$D;0));"")