我正在尝试弄清楚如何使用两张纸上的唯一标识符,通过另一张表中的信息在Excel文档中的一张纸上对信息进行排序。
我在Excel中有两张单独的工作表,sheet1
包含用户信息,包括姓名,性别和看起来或多或少的唯一ID:
A | B | C
John Doe | M | 112
Jane Doe | F | 147
Kerry West | F | 293
Robert Smith | M | 861
Sheet 2
包含唯一标识符和得分如下:
A | B
112 | 15
147 | 12
293 | 18
861 | 11
我想要做的是根据性别将第2页中的两组分开。所以基本上我会以某种方式获取第2页上的唯一ID,在表1中找到它,然后检查与该唯一ID相关联的性别,以便第2页最终看起来像这样:
A | B | C | D
112 | 15 | 147 | 12
861 | 11 | 293 | 18
因此,标识为男性的行将保留在其列中,而标识为女性的行将移至列C和D。我只是无法弄清楚我是如何做到这一点的,这让我疯狂。任何帮助或建议将不胜感激。
答案 0 :(得分:1)
尝试这样的事情:
创建一个名为“Sheet3”的工作表,这是填充摘要的位置。这应该可以帮到你。
Sub nameList()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim lc1, lc2, x, y, i, vLook
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")
lc1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row
lc2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row
x = 2
y = 2
For i = 2 To lc1
vLook = Application.WorksheetFunction.VLookup(sh1.Cells(i, 3), Range(sh2.Cells(1, 1), sh2.Cells(lc2, 2)), 2, "false")
If sh1.Cells(i, 2) = "M" Then
sh3.Cells(x, 1) = sh1.Cells(i, 3)
sh3.Cells(x, 2) = vLook
x = x + 1
Else
sh3.Cells(y, 3) = sh1.Cells(i, 3)
sh3.Cells(y, 4) = vLook
y = y + 1
End If
Next i
End Sub