SampleSheet.xlsx - https://www.dropbox.com/s/ugha8sjvgrpi5w7/SampleSheet.xlsx?dl=0
这是我正在使用的一个小型通用版本。什么是我的“A”列非常大,“B”是较大列的选择。列“C”到“E”是与每个人一起的数据(注意只有“B”中的人有这个数据。在“G”列中,我有一个VLOOKUP,看看“B”中的名字是匹配的“A”。问题是我如何自动拉出匹配所具有的“CE”中的数据。例如,当执行VLOOKUP时,“austin”将自动获取行“c1; c2; c3”。理解这可能是我用VLOOKUP获得匹配名称所不可能的。
我希望能够创建一个包含a1,a2,a3等数据的表,其中只有名称与“A”匹配。
例如,我想要最终得到的是这样一个表:desired result
答案 0 :(得分:0)
您可以将其编写为宏,并在熟悉Excel VBA时运行。
此处考虑的变量,您可以根据您的要求进行更改:
Dim result, lastrow1, lastrow2, lastrow
lastrow1 = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
lastrow2 = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
For Y = 1 To lastrow1
result = Application.VLookup(ActiveSheet.Range("B" & Y),ActiveSheet.Range("A1:A16"), 1, False)
If Not IsError(result) Then
lastrow = ActiveSheet.Range("J" & Rows.Count).End(xlUp).Row + 1
ActiveSheet.Range("J" & lastrow) = result
ActiveSheet.Range("K" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 2, False)
ActiveSheet.Range("L" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 3, False)
ActiveSheet.Range("M" & lastrow) = Application.VLookup(ActiveSheet.Range("J" & lastrow), ActiveSheet.Range("B1:E" & lastrow2), 4, False)
End If
Next Y