在 Excel 中使用条件连接字符串

在 Excel 中使用条件连接字符串

假设我得到了这样的积分索引:

工作表1

1
2
3
4
5
6
...

还有一个连接数据,表示这些点之间的关系,例如,前两行表示与和point_1相连:point_75point_78

表2

1   75
1   78
2   44
3   45
3   65
4   39
4   63
5   49
5   50
6   59
...

我希望我可以用一些表达式来表示这sheet1一点:

1   75,78
2   44
3   45,65
...

有什么办法可以做到这一点?

答案1

首先在标准模块中输入以下用户定义函数:

Public Function Konnect(r1 As Range, r2 As Range) As String
    Dim ary, i As Long
    Dim v As Variant

    ary = r2
    v = r1.Value
    Konnect = ""

    For i = LBound(ary, 1) To UBound(ary, 1)
        If ary(i, 1) = v Then Konnect = Konnect & "," & ary(i, 2)
    Next i

    If Len(Konnect) <> 0 Then Konnect = Mid(Konnect, 2)
End Function

然后在工作表1细胞B1进入:

=Konnect(A1,Sheet2!A$1:B$10)

并抄下来:

在此处输入图片描述

当然,你会改变10以匹配实际的表大小工作表2

编辑#1:

用户定义函数 (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:

=Konnect(A1,Sheet2!A$1:B$10)

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

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

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

相关内容