Excel 仅当值不存在时,如何连接字符串

Excel 仅当值不存在时,如何连接字符串,excel,string-concatenation,Excel,String Concatenation,我有一个带有大量颜色的csv数据库,我想要的是连接所有唯一的颜色,并用逗号分隔它们。我只需要包含一次字符串值。见下面的例子 颜色 红色 红色 绿色 蓝色 红色 蓝色 绿色 银 我需要将其输出为- 红色、绿色、蓝色、银色如果您可以将数据输入Excel,这将起作用(虽然我知道它不会“直接”回答您的问题,但可能会让您开始) Sub UniqueColors() 作为对象的Dim字典 Set Dictionary=CreateObject(“Scripting.Dictionary”) 范围内的每个项

我有一个带有大量颜色的csv数据库,我想要的是连接所有唯一的颜色,并用逗号分隔它们。我只需要包含一次字符串值。见下面的例子

颜色
红色
红色
绿色
蓝色
红色
蓝色
绿色


我需要将其输出为-


红色、绿色、蓝色、银色

如果您可以将数据输入Excel,这将起作用(虽然我知道它不会“直接”回答您的问题,但可能会让您开始)

Sub UniqueColors()
作为对象的Dim字典
Set Dictionary=CreateObject(“Scripting.Dictionary”)
范围内的每个项目(“A1:A8”)
如果不存在Dictionary.exists(Item.Value)和Item.Value“”,则
字典。添加项。值,项。地址
如果结束
下一个
范围(“B1”)=联接(Dictionary.keys,”,“”)
设置字典=无
端接头

您需要调整范围。希望有帮助

如果你能将数据输入Excel,这将是可行的(尽管我知道它不能“直接”回答你的问题,也许它会让你开始)

Sub UniqueColors()
作为对象的Dim字典
Set Dictionary=CreateObject(“Scripting.Dictionary”)
范围内的每个项目(“A1:A8”)
如果不存在Dictionary.exists(Item.Value)和Item.Value“”,则
字典。添加项。值,项。地址
如果结束
下一个
范围(“B1”)=联接(Dictionary.keys,”,“”)
设置字典=无
端接头

您需要调整范围。希望有帮助

你能给我们解释一下你到底想达到什么目的吗?如果需要执行此过程一次,可以使用excel内置的“删除重复项”功能。如果不是这样,您可能希望使用PowerShell来实现此目的。您是否对VBA解决方案开放?在这种情况下只需要使用“删除重复项”选项。首先必须使用替换并删除空格,但您如何能给我们更多解释您试图实现的目标?如果需要执行此过程一次,可以使用excel内置的“删除重复项”功能。如果不是这样,您可能希望使用PowerShell来实现此目的。您是否对VBA解决方案开放?在这种情况下只需要使用“删除重复项”选项。必须首先使用替换并删除空格,但在
结束子项之前添加
Set Dictionary=Nothing
可能也是一个好主意。我相应地调整了代码。在
End Sub
之前添加
Set Dictionary=Nothing
可能也是个好主意。我相应地调整了代码。
Sub UniqueColors()

Dim Dictionary As Object
Set Dictionary = CreateObject("Scripting.Dictionary")

For Each Item In Range("A1:A8")
    If Not Dictionary.exists(Item.Value) And Item.Value <> "" Then
        Dictionary.Add Item.Value, Item.Address
    End If
Next

Range("B1") = Join(Dictionary.keys, ",")
Set Dictionary = Nothing

End Sub