我有下表中的关键字:
---------------------------------------
|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) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 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
必须启用宏才能使其工作!