使用重复的名称列表在Excel / VBA中查找表

我在Excel中有一张名单和实例列表,另一张是列表名称和用户标识。 我想创build一个引用实例表中的名称和用户标识的列,但是某些用户名称相同。 对于1:1的匹配,我使用vlookup来获得相应的ID,但这不适用于多个实例。 在多关系的情况下,我能做些什么来创build一个显示与该名称关联的每个可能的ID的列? 例:

User Name: User ID: Rusty McShackleford 1234560 Rusty McShackleford 1234570 Rusty McShackleford 1234580 Rusty McShackleford 1230110 Zap Brannigan 0000001 

在上面的例子中,我可以将Zap匹配到一个用户ID,因为只有一个实例,我将如何匹配Rusty(或所有的Rusty)到一个实例。 谢谢你的帮助

电子表格布局:

A2:A15名称
B2:B15 ID
D2 {=INDEX($A$2:$A$15;MATCH(0;COUNTIF($D$1:D1;$A$2:$A$15);0))}数组公式窗口中的Ctrl-Shift-input,曲线括号由Excel插入,而不是由用户插入。
列出A2:A15唯一名称应该被复制下来。 该列可以隐藏。

E2 :具有下拉列表的单元格,从列D中的名称列表中select条目
F3=F2+MATCH($E$2;OFFSET($A$1;F2+1;0):$A$15;0) ,复制下来。 F2是一个空单元格。
在列A中查找匹配名称的行。列F可以隐藏。
E3=OFFSET($A$1;F3;1)为特定名称selectID。 公式将被复制下来。

电子表格示例: http : //www.bumpclub.ee/~jyri_r/Excel/All_IDs_for_a_name.xls

一个vlookup()需要一组唯一的值。 在你的具体情况下,我会考虑在user_id上运行vlookup(),因为它似乎是一个唯一的值来标识每个用户。

在这方面:

  1. 创build一个新的选项卡(工作表)
  2. 在A列中,复制并粘贴所有“user_id”。 确保删除重复项。
  3. 列B – >“实例”使用一个vlookup()
  4. 列C – >“名称”使用一个vlookup()
  5. 现在要获得所有“Rusty”列的列表,只需对AZ列c(Name)进行sorting即可。 如有必要重新排列列。

很less提醒与vlookup()。 指定范围查找为FALSE。 确保使用绝对引用或更好 – 使用表作为参考。