Excel:如何将来自不同单元格的以逗号分隔的关键字列表动态合并到一个单元格中?

Excel:如何将来自不同单元格的以逗号分隔的关键字列表动态合并到一个单元格中?

我有下表中的关键字:

---------------------------------------
|group   | keywords                   |
---------------------------------------
|1       | lorem, ipsum, aeque, dolor |
---------------------------------------
|2       | ipsum, oratio, vim, lorem  |
---------------------------------------
|3       | lorem, qualisque, dolor    |
---------------------------------------

我想要使​​用 Excel 函数将所有关键字合并到一个单元格中:

---------------------------------------------------------------
|summary | aeque, dolor, ipsum, lorem, oratio, qualisque, vim |
---------------------------------------------------------------

用户应该能够编辑第一个表中的关键字,并且摘要应该自动重建。

我可以使用 CONCATENATE 来连接所有关键字,但是如何从这个连接的字符串中获取具有唯一关键字的有序字符串?

答案1

包含列中的数据A喜欢:

在此处输入图片描述

以下用户定义函数(UDF)

Public Function KonKat(rIN As Range) As String
    Dim r As Range, c As Collection
    Set c = New Collection

    For Each r In rIN
        ary = Split(Replace(r.Value, " ", ""), ",")
        On Error Resume Next
        For Each a In ary
            c.Add a, CStr(a)
            If Err.Number = 0 Then
                KonKat = KonKat & ", " & a
            Else
                Err.Number = 0
            End If
        Next a
        On Error GoTo 0
    Next r
    KonKat = Mid(KonKat, 3)
End Function

将进行连接并删除重复项:

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装和使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要从 Excel 使用 UDF:

=konkat(A1:Z1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

相关内容