如何在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中将长表格转换为宽表格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在电脑中将Excel表格格式转换成PDF格式?

如何使用 Power BI 将一张 Excel 工作表中的多个表格转换为一张表格?

在 Django 中将 QuerySet 转换为 JSON

在 BigQuery 中将长表转换为宽表

如何在Excel表格中将系统导出的部门的代码,用公式或者vba转换成文字?

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28