如果两个列值匹配,则合并内容

时间:2019-10-19 23:17:42

标签: excel vba

在某些情况下,我的工作表包含超过15,000行要合并。我没有使用Excel,VBA的经验。

enter image description here

我要做什么:
查看A和D列以查看两个值是否匹配。在这种情况下,记忆灰色 T恤
当它们匹配时,将这些值合并为D列中的值包含该值的次数。

在上面的示例中,两行是 Memory Grey ,五行是 T恤

我尝试了一个名为Kutools的程序,但没有结果。

我不确定如何使用公式来执行此操作。我发现了类似的东西:

=VLOOKUP(value, table, column, FALSE)

我想这是用来查找匹配项,而不是合并/复制。

我尝试了VBA,但这没用。

Sub Test()

Dim i As Long
Dim id As String

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    id = Cells(i, 1).Value
    If Cells(i + 1, 1).Value = id And Cells(i + 1, 2).Value <> id Then
        Range(Cells(i + 1, 2), Cells(i + 1, 6)).Insert Shift:=xlDown
        Range(Cells(i + 1, 2), Cells(i + 1, 6)).Value = Range(Cells(i, 2), Cells(i, 6)).Value
    End If
Next i

End Sub

1 个答案:

答案 0 :(得分:1)

(您需要首先对行进行排序,因此带有说明的行排在首位)

如果“说明”列中没有重复,那么您可以在A6中使用这样的公式:

=VLOOKUP($D6, $A$1:$Z5, Column(), False)

然后您可以将公式复制并粘贴到缺少值的每一列中,并将其向下拖动。

编辑:我未能注意到H右边的更多列,已更新公式以使用Column()