【问题标题】:Combine Two Rows in Excel在 Excel 中合并两行
【发布时间】:2016-04-19 19:03:45
【问题描述】:

我在 Excel 表中有 2 行。除了一个之外,所有列都是相同的。类似于

我怎样才能做到这一点?我对枢轴概念不是很熟悉。

有什么帮助吗?

问候。

【问题讨论】:

  • How can I achieve this ?你试过什么?
  • 我试过做 Pivot 但不知何故它总是返回总和而不是合并列。我是 excel 新手
  • 好的,我正在使用移动应用程序,显然在我想要评论的地方发布了两个答案。对此感到抱歉(现在删除了答案)。所以我的意思是:您需要添加更多关于数据设置方式以及您已经尝试过的内容的详细信息。乍一看,您需要遍历数据以查找重复项,因此您可能需要 VBA 或至少需要一个数组公式。如果您希望输出看起来与您的示例完全相同,据我所知,它不能使用数据透视表来完成
  • NiH 我是的,你不能用枢轴来做到这一点。我知道一种方法。您能否澄清一下,只是 Program_type 在每个 ID 中发生了变化?

标签: excel vba pivot


【解决方案1】:

希望这是你想要的:

Sub QuickCombine()
    Dim X()
    Dim Y()
    Dim objDic As Object
    Dim lngRow As Long
    Dim lngCol As Long
    Dim ws As Worksheet

    X = Range([a1], Cells(Rows.Count, "G").End(xlUp))
    Y = X
    Set objDic = CreateObject("scripting.dictionary")

    For lngRow = 1 To UBound(X, 1)
        If Not objDic.exists(LCase$(X(lngRow, 1) & X(lngRow, 2))) Then
            objDic.Add LCase$(X(lngRow, 1) & X(lngRow, 2)), lngRow
        Else
            Y(lngRow, 1) = vbNullString
            Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) = Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) & "," & X(lngRow, 3)
        End If
    Next

    Set ws = Sheets.Add
    [a1].Resize(UBound(X, 1), UBound(X, 2)) = Y
    Columns("A").SpecialCells(xlBlanks).EntireRow.Delete

End Sub

here得到这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多