如何在Excel中将长表格转换为宽表格?
Posted
技术标签:
【中文标题】如何在Excel中将长表格转换为宽表格?【英文标题】:How to convert a long form table to wide form table in Excel? 【发布时间】:2014-08-16 21:45:18 【问题描述】:一张图片胜过一千个字。假设在一张纸上我有下表:
使用这些信息,我想以编程方式在另一张表中生成这样的表格(将长表格分解为宽表格):
你如何做到这一点?
【问题讨论】:
@A.S.H 我不认为这是一个坏问题。我问这个问题是因为我不是excel专家。我可以在一秒钟内在 R 中做到这一点,但很好奇它是否可以像使用 excel 电子表格一样有效地在“excel”中完成。 当我发表评论时,我没有注意到这是一个非常古老的帖子,因为一个新的答案而恢复了。 【参考方案1】:使用 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”列创建的表。如果你想要另一张纸:
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
和自动完成...
【讨论】:
【参考方案2】:我也可以看到另一种方法。添加两列 Count 和 Key。
添加公式并展开:
C2 -> =COUNTIF($B$2:B2;B2)
D2 -> =B2&"|"&C2
G2 -> =IFERROR(INDEX($A:$A;MATCH($F2&"|"&COLUMN(A1);$D:$D;0));"")
【讨论】:
以上是关于如何在Excel中将长表格转换为宽表格?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Power BI 将一张 Excel 工作表中的多个表格转换为一张表格?