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
因为我只是不明白这个简单的事实,我几乎要拔掉我的挫败感了。进行了相当多的搜索,但没有偶然发现类似的问题和一致的答案。希望这里有人可以帮助我解决这个问题,因为我不希望手动执行此操作。
我想做的是用来自其他行的相同作品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