Excel在List中查找ID并以逗号分隔

时间:2016-02-03 14:06:55

标签: excel excel-vba excel-formula vba

我正在尝试搜索列中的ID(可能会多次使用此ID),然后获取找到的ID的下一列,并将文本放在以逗号分隔的字段中。我认为这张图片显示出比我破碎的英语更好的表现。

这一切都应该自动发生。如果可能,使用VBA或公式。enter image description here

左侧列表应翻译到右侧。关于如何实现这样的事情的任何线索?

2 个答案:

答案 0 :(得分:2)

要在没有VBA的情况下执行此操作,您可以使用辅助列,该列将拾取每个附加字母以添加到特定数字的列表,然后搜索与每个数字关联的完整的已连接单元格,以获得结果。< / p>

请注意,我建议您从底部执行辅助列并复制 - 这样可以更方便地在最后提取结束值,而无需使用数组公式。

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

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

这样做的是搜索当前行下所有行的C列,以查看该数字的最新结果。然后它会拉出该文本值[“”如果没有先前的匹配],并在当前行的B列中添加值。当你复制它时,每个单独的数字''concanenated text'将继续增长,添加数字值匹配的字母。

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

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

这会引入第一个匹配的行,它具有您要搜索的数字值,并从列C返回该行的值。由于第一个匹配值将包含其前面的所有concanenated值,将是该号码匹配的完整列表。

另请注意,此方法将底行的字母值放在串联字符串的开头。

答案 1 :(得分:0)

如果您的数据顺序不重要,则数据透视表对您有用。

要为第1行中的两列创建数据透视表标签,请按照我从谷歌获得的说明进行操作。

在“插入”选项卡上的“表”组中,单击“数据透视表”。 ... 在“创建数据透视表”对话框中,确保选中“选择表或范围”,然后在“表/范围”框中验证单元格的范围。 ... 执行以下操作之一:... 单击“确定”。

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

每当修改数据时,都要刷新数据透视表(右键单击)