Excel在列表中查找ID并附加逗号分隔

我试图在一个列中search一个ID(这个ID可能会多次),然后把find的ID的下一个列放到一个逗号分隔的字段中。 我认为这张图片比我破碎的英文更能显示出来。

所有这些都应该自动发生。 如果可能,用VBA或公式。 在这里输入图像说明

左边的清单应该被翻译成右边。 任何线索如何实现这样的事情?

要做到这一点没有VBA,你可以使用一个助手列,将每个附加的信件,以添加到列表中的特定号码,然后search与每个号码关联的完整concanated单元格,为您的结果。

请注意,我build议你从底部做你的帮手列,并复制 – 这将使你更容易拉最后的concanated值,而不使用数组公式。

把公式放在C21中[假设21是你最后一个数据行],并把它复制到你的列表顶部:

=IFERROR(INDEX($C$22:C22,MATCH(A21,$A$22:A22,0)),"")&","&B21 

这是为当前行下面的所有行search列C,以查看该数字最近的结果。 然后,如果没有先前的匹配,它将拉取该文本值[“”,并且添加当前行的列B中的值。 当您复制它时,每个单独的数字的“相关文本”将继续增长,并在数字值匹配的位置添加字母。

然后将这些结果放到右边的表格中,只需在E1中进行以下操作并复制下来:

 =INDEX(C:C,MATCH(D1,A:A,0)) 

这将拉入第一个匹配的行,其中包含您正在search的数字值,并从C列返回该行的值。由于第一个匹配值将是包含所有前面所有值的匹配值,因此这将是与该号码完全匹配的列表。

还要注意,这个方法把最下面一行的字母值放在串联string的开头。

如果您的数据顺序不重要,数据透视表对您来说可能是有用的。

要创build数据透视表标签第1行中的两列,并按照下面的说明我从谷歌获得。

在插入选项卡上的表组中,单击数据透视表。 …在创build数据透视表对话框中确保select一个表或范围,然后在表/范围框中validation单元格的范围。 执行以下操作之一:…单击确定。

为您的ROWS(在pivottable fiedls中拖放)和COLUMNS的数据列(column2)selectID列。

无论何时修改数据,都要刷新数据透视表(通过右键单击)