如何在另一个工作表中找到匹配的数据并获取单元格值?

时间:2013-01-24 18:51:45

标签: excel vba excel-vba

我有一个包含2个工作表的Excel工作簿。我们称之为“物品清单”和“物品主数据”。

在“项目列表”中,我有2列,B(“代码”)和C(“子代码”)。它看起来像这样:

 A    B    C
----------------
100   AR
110   AR
120   NU
130   AR

在“物品主数据”中,我有类似的列,K(“代码”)和L(“子代码”)。它看起来像这样:

 E     K    L    
----------------
xx   100   AR
xx   100   AR
xy   120   NU
xc   120   AR
xz   130   AR

在“项目清单”中,我需要让列C显示“项目主文件”列E的值,如果B和C的值与K和L的值匹配。

因此,如果(项目列表)A AND(项目列表)B匹配(项目主文件)K AND(项目主文件)L,则(项目列表)C =(项目主文件)E

如果有多个匹配项,搜索可以在第一个匹配项后停止并获取列E的值,因为它对所有匹配项都是相同的。

如何做到这一点?

2 个答案:

答案 0 :(得分:5)

Item Master表格中,在列M =(K2&L2)中创建以下公式,然后将其向下拖动到行集。

Item List表格的C栏中写下此公式。

=Offset(`Item Master`!$E$1,match($A2&$B2,'Item Master`!$M:$M,0)-1,0)

然后填写行集。

答案 1 :(得分:0)

您也可以使用此数组公式。输入公式后,必须使用 CTL + SHIFT + ENTER 。这将取消使用辅助列

的使用

=INDEX('Item Master'!E:E,MATCH(1,('Item Master'!L:L=B1)*('Item Master'!K:K=A1),0))

上述公式位于C1的{​​{1}},然后您可以将其复制下来......

<强> SCREENSHOT enter image description here