在excel数组中查找和输出多个条目

时间:2013-08-07 23:36:44

标签: excel vba indexing match vlookup

我有一个更复杂的spreasheet但会解释我想用更简单的电子表格做什么 我有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将是First Names,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

1 个答案:

答案 0 :(得分:0)

接缝你需要一个数据透视表。试一试。

要获得firstname lastname,我建议您添加第三列连接(例如: C1 =A1&" "&B1