我很容易就感到沮丧,因为我不明白这一点。做了相当多的搜索,但并未发现类似的问题和一致的答案。希望这里有人可以帮助我,因为我不希望手动进行此操作。
我想要做的是用来自其他行中同一工作表的信息来丰富Excel中现有工作表的行。提到丰富是因为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
这是我想要的结果,其中的更改/丰富程度以粗体标记:
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**
各行的排列顺序始终是:第一行包含完整的数据,随后的行中不包含其他列的数据。以防万一。此表包含约。 20000行。
非常感谢!
答案 0 :(得分:0)
xlR1C1样式公式可以返回上一行的匹配值。
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