我有一个更复杂的电子表格,但会解释我想用更简单的电子表格做什么。
我有 2 列,第一列有名字,第二列有姓氏。
例如:
Column1
Michael;
Michael;
Michael;
George;
Michael;
Henry;
Column 2
Keaton;
Douglas;
Jackson;
Washington;
Jordan;
Ford;
我想创建一个 excel 公式或 vba 函数来搜索第 1 列以查找与“Michael”匹配的所有行,并返回与这些“Michael”名字关联的所有姓氏。最好将姓氏与它们之间的空格连接在一起。excel 中的 Vlookup、Index、Match 和 Array 函数将不起作用,因为它们只返回第一个“Michael”姓氏。我已经测试了下面的 VBA 函数,它似乎可以工作,但希望得到有关此函数的反馈或有关可行公式的建议。
因此,上述列的函数输出将是:
“(基顿)(道格拉斯)(杰克逊)(乔丹)”
欢迎任何帮助或建议。
VBA 代码。
SourceArray 是名字,ID 是“Michael”,TargetArray 是姓氏。
Public Function DrawID(arrInput As Variant, ID As String, arrOutput As Variant)
Dim ArraySize As Integer
Dim i As Integer
ArraySize = Application.WorksheetFunction.CountA(arrInput)
i = 1
Do While i <= ArraySize
If arrInput(i) = ID Then
DrawID = DrawID & " (" & arrOutput(i) & ")"
End If
i = i + 1
Loop
End Function