Excel - 根据匹配值复制粘贴值

Excel - Copy paste values based on matching values

因为我只是不明白这个简单的事实,我几乎要拔掉我的挫败感了。进行了相当多的搜索,但没有偶然发现类似的问题和一致的答案。希望这里有人可以帮助我解决这个问题,因为我不希望手动执行此操作。

我想做的是用来自其他行的相同作品sheet 的信息来丰富Excel 中现有作品sheet 的行。 enrich 的参考是A 列中的值需要匹配。在这种情况下,其他列的值需要用包含完整数据的行中的内容填充。我将在下面提供一个示例,当然还有说明性数据。

这是我现在拥有的:

Column A    Column D       Column E      Column F

hash1          AA             BB            CC  
hash1            
hash1  
hash2          FF             GG            HH  
hash3          PP             YY            QQ  
hash3  
hash3

这是我想要的结果,其中 changes/enrichment 标记为 粗体 :

Column A       Column D       Column E      Column F

hash1          AA             BB            CC  
hash1          **AA             BB            CC**  
hash1          **AA             BB            CC**  
hash2          FF             GG            HH  
hash3          PP             YY            QQ  
hash3          **PP             YY            QQ**  
hash3          **PP             YY            QQ**

行的顺序始终是第一行包含完整数据,随后是其他列中没有数据的后续行。如果知道是有益的;这个 sheet 包含大约。 20000 行。

提前致谢!!

一个 xlR1C1 样式的公式可以return 匹配上面各行的值。

Sub rtweqr()

    With Worksheets("sheet10")
        With .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp).Offset(0, 6))
            .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
                        Key2:=.Columns(6), Order2:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
            .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
                        Key2:=.Columns(4), Order2:=xlAscending, _
                        Key3:=.Columns(5), Order3:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
        End With

        With .Range(.Cells(2, "E"), .Cells(Rows.Count, "A").End(xlUp).Offset(0, 6))
            On Error Resume Next
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = _
              "=index(r1c:r[-1]c, match(rc1, r1c1:r[-1]c1, 0))"
            On Error GoTo 0
            'optional reversion to formulas' returned values
            '.value=.value
        End With
    End With

End Sub