Excel 函数用于拆分单元格、查找列并连接

Excel 函数用于拆分单元格、查找列并连接

我有一个范围,其值位于第 1 列,如果第 2 列中的单元格位于第 1 列的范围内,则我想查找它们。当它们位于范围内时,我希望函数返回的值是属于第 1 列范围的第 2 列。我已经使用 Excel 通过将文本转换为列,然后进行 vlookup,最后连接值来完成此操作,但我想使用函数来完成此操作。

例子:

Col A            Col B              Col C(result)
1                1, 4, 8                  1, 4
4 
5 
6 
10

如果有人有想法,任何帮助都会很感激:)

答案1

尝试以下 UDF(驅動已定义F圣职(Furing):

Public Function SubString(rng As Range, sIN As String) As String
    Dim sep As String, temp As String
    Dim r As Range
    SubString = ""
    sep = ", "
    If sIN = "" Then Exit Function
    If InStr(sIN, sep) = 0 Then Exit Function

    ary = Split(sIN, sep)
    For Each a In ary
        For Each r In rng
            If a = r.Text Then
                temp = temp & a & sep
                Exit For
            End If
        Next r
    Next a
    SubString = Mid(temp, 1, Len(temp) - 2)
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:

=子字符串(A1:A5,B1)

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

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

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

相关内容