如何查找一个值并将多个唯一值(删除重复项)返回到单个单元格 - 以逗号分隔

如何查找一个值并将多个唯一值(删除重复项)返回到单个单元格 - 以逗号分隔

我尝试从 AC 列中获取一个值(唯一 ID),在 B 列中进行查找并返回(即连接)多个独特的将相邻列 (C) 中的值复制到 AD 列中的单个单元格。我只想返回唯一值,消除重复项,并将所有结果返回到单个单元格中,以逗号分隔。请参见下面的示例。需要查找大约 800 个唯一 ID 和大约 5000 行数据。我愿意接受公式、数组或 VBA 解决方案。谢谢。

    Source Data:
    Column B     Column C   ....  Column AC (unique ID)
    DEF          111               ABC
    DEF          222               DEF
    DEF          111               GHI
    ABC          444               JKL
    DEF          333
    DEF          111
    ABC          444
    ABC          555
    JKL          666
    JKL          666
    GHI          777
    GHI          888
    ABC          555

   Desired Output:
    Column B     Column C   ....  Column AC  Column AD (unique values comma separated)
    DEF          111               ABC       444,555
    DEF          222               DEF       111,222,333
    DEF          111               GHI       777,888
    DEF          333               JKL       666,999
    DEF          111
    ABC          444
    ABC          555
    JKL          666
    JKL          666
    JKL          999
    GHI          777
    GHI          888
    ABC          555

答案1

我将为此使用 Excel UDF(用户定义函数)。

像这样设置:

Public Function mylookup(inputrange As Range, match As Range) As String
Dim arr() As Variant
Dim d As Object
Dim result As String
Dim i As Integer
Dim v As Variant
Set d = CreateObject("Scripting.Dictionary")
arr() = inputrange.Value

For i = 1 To UBound(arr)
    If arr(i, 1) = match Then
        d(arr(i, 2)) = 1
    End If
Next i
For Each v In d.Keys()
        result = result & v & ","
Next v
    result = Left(result, Len(result) - 1)

mylookup = result

End Function

从那里开始,就像使用公式一样使用它。第一个参数是完整的值列表,第二个参数是您想要查找的特定值。

=mylookup(B1:B90,AC1)

编辑:我错过了您最初的一个要求,即过滤掉重复值。我添加了一个字典对象来执行此操作。

相关内容