【问题标题】:How to convert a long form table to wide form table in Excel?如何在Excel中将长表格转换为宽表格?
【发布时间】:2014-08-16 21:45:18
【问题描述】:

一张图片胜过一千个字。假设在一张纸上我有下表:

使用这些信息,我想以编程方式在另一张表中生成这样的表格(将长表格分解为宽表格):

你如何做到这一点?

【问题讨论】:

  • @A.S.H 我不认为这是一个坏问题。我问这个问题是因为我不是excel专家。我可以在一秒钟内在 R 中做到这一点,但很好奇它是否可以像使用 excel 电子表格一样有效地在“excel”中完成。
  • 当我发表评论时,我没有注意到这是一个非常古老的帖子,因为一个新的答案而恢复了。

标签: excel function


【解决方案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));"")
    

    【讨论】:

      猜你喜欢
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      相关资源
      最近更新 更多