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

Vba 如何在另一个工作表中找到匹配的数据并获取单元格值?,vba,excel,Vba,Excel,我有一个Excel工作簿和两张工作表。让我们称它们为“项目列表”和“项目主控” 在“项目列表”中,我有两列,B(“代码”)和C(“子代码”)。看起来是这样的: A B C ---------------- 100 AR 110 AR 120 NU 130 AR E K L ---------------- xx 100 AR xx 100 AR xy 120 NU xc 120 AR xz 130 A

我有一个Excel工作簿和两张工作表。让我们称它们为“项目列表”和“项目主控”

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

 A    B    C
----------------
100   AR
110   AR
120   NU
130   AR
 E     K    L    
----------------
xx   100   AR
xx   100   AR
xy   120   NU
xc   120   AR
xz   130   AR
在“项目主控”中,我有类似的列,K(“代码”)和L(“子代码”)。看起来是这样的:

 A    B    C
----------------
100   AR
110   AR
120   NU
130   AR
 E     K    L    
----------------
xx   100   AR
xx   100   AR
xy   120   NU
xc   120   AR
xz   130   AR
在“项目列表”中,如果B和C的值与K和L的值匹配,我需要让C列显示“项目主控”E列的值

因此,如果(项目列表)A和(项目列表)B匹配(项目主控)K和(项目主控)L,那么(项目列表)C=(项目主控)E

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


如何做到这一点

项目主控
工作表中,在列M
=(K2和L2)
中创建以下公式,然后将其向下拖动到行集中

项目列表
工作表的C列中填写以下公式

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

然后填写行集。

项目主控
表中,在列M
=(K2和L2)
中创建以下公式,然后将其向下拖动到行集

项目列表
工作表的C列中填写以下公式

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

然后填写行集合。

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

=索引('Item Master'!E:E,匹配(1,('Item Master'!L:L=B1)*('Item Master'!K:K=A1),0))

上面的公式在
项目列表的
C1
中,您可以将其复制下来

屏幕截图

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

=索引('Item Master'!E:E,匹配(1,('Item Master'!L:L=B1)*('Item Master'!K:K=A1),0))

上面的公式在
项目列表的
C1
中,您可以将其复制下来

屏幕截图

Sid,他注意把A&B作为对K&L的比赛,所以这不会像写的那样起作用。是的。我误解了。为未来的访客更新了帖子:)@jeffbrady:你按CTL+SHIFT+ENTER了吗?我测试过了,我明白了。。我把它粘贴到C1上。现在,我单击C1并将其粘贴到公式栏中,然后按CTRL+SHIFT+ENTER键,它就工作了。谢谢大家!@杰夫布雷迪:啊,你成功了:)我上传了一个截图:)希德,他注意到a&B是和K&L的比赛,所以这不会像写的那样有效。是的。我误解了。为未来的访客更新了帖子:)@jeffbrady:你按CTL+SHIFT+ENTER了吗?我测试过了,我明白了。。我把它粘贴到C1上。现在,我单击C1并将其粘贴到公式栏中,然后按CTRL+SHIFT+ENTER键,它就工作了。谢谢大家!@杰夫布雷迪:啊,你成功了:)我上传了一张截图:)