如何通过删除重复并用分隔将一行并创建一个列表;

时间:2019-03-28 19:42:23

标签: excel vba

自从我使用宏以来已经有一段时间了,所以请耐心等待我。我非常感谢您的专业知识。

我正在尝试创建一个由“;”分隔的范围内的唯一值列表。但不幸的是,我没有足够的知识来执行这项工作。

当前,我使用此系统: 选择范围(在本示例中为A2:A100)。 复制并粘贴到新工作表中,因为我不想破坏原始工作表。 从列表中删除重复项。 复制并粘贴为转置以使列表连续。 然后运行此宏

Sub insert_column_every_other()
For colx = 2 To 30 Step 2
Columns(colx).Insert Shift:=xlToRight
Next
End Sub

然后选择范围并替换特殊值,将空格替换为; 然后使用CONCAT列出所有以;分隔的单元格的列表。

这显然无效,必须有更好的方法!

我希望宏只读取原始工作表中的A2:A100列表,然后创建一个用“;”分隔的唯一单元格值的列表。如果可能的话,我也希望它弹出在MSGBOX中。

1 个答案:

答案 0 :(得分:4)

使用TEXTJOIN作为数组公式:

=TEXTJOIN(";",TRUE,IF(IFERROR(MATCH(A2:A100,A:A,0)=ROW(A2:A100),FALSE),A2:A100,""))

作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。

enter image description here