比较两个不同长度和返回数据的列表

时间:2015-06-05 20:09:12

标签: excel vba excel-vba

我有一个包含两个工作表F1F2的工作簿。 在每个上,Column A是姓氏,Column B是名字,Column C是部门名称。 F2缺少部门名称。

我正在尝试将F2中的名称与F1中的名称进行比较和匹配,并将部门名称从F1的{​​{1}}返回到Column C } F2

我遇到的困难是Column C的列表明显长于F1的列表。否则我可以做一个简单的比较。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

所以,如果我们有这样的数据:

表F1

     A           B          C
----------------------------------
Last Name   First Name  Department
Bar         Foo                  1
Bar2        Foo                  2
Bar3        Foo                  3
Bar4        Foo                  4

我们想要这个:

表F2

     A           B          C
----------------------------------
Last Name   First Name  Department
Bar3        Foo                  3

您可以在C列中使用数组公式(使用 Ctrl + Shift + Enter 输入)

=INDEX(F1!C:C,MATCH(CONCATENATE(F2!A2,F2!B2),CONCATENATE(F1!A:A,F1!B:B),0))

然后填写适合

如果您发现该公式的执行时间太长,您可以将CONCATENATE范围缩小到特定数据范围。即:

=INDEX(F1!C:C,MATCH(CONCATENATE(F2!A2,F2!B2),CONCATENATE(F1!$A$1:$A$5,F1!$B$1:$B$5),0))