我有两张带有ID的名单,名字和名字,从两个不同的数据库中提取。
我需要向客户发送第三张表格,其中显示表单1的 ID 32721 ,相当于表单2的 ID 32761 。
制作 DE x FOR 所有这些数据。
我怎样才能在Excel中执行此操作?我已经尝试过公式而我无法使用VBA有什么办法吗?如果是这样,请帮助我,因为我对VBA一无所知。
结果
我需要比较两张表中的姓名和姓氏,并在第三张表中显示ID之间的关系。
答案 0 :(得分:3)
您应该可以使用INDEX
MATCH
array formula(点击Ctrl
+ Shift
+ Enter
,而不只是{{ 1)})在工作表1中生成工作表2中的ID列表。link提供了在多个条件上使用Enter
INDEX
的出色解释。 (它基本上与MATCH
相同,但功能更强大)。你的公式看起来像这样:
VLOOKUP
如果上面在Sheet2中的Sheet2中找到B2和C2中的行{=INDEX('Sheet2'!$A$2:$C$13, MATCH(1, (B2='Sheet2'!$B$2:$B$13) * (C2='Sheet2'!$C$2:$C$13) ,0), 1)}
,则分别在Sheet2中的B2:B13和C2:C13中,然后使用MATCH
表示该行,而使用Sheet2中的列1。
答案 1 :(得分:1)
此解决方案将Sheet3
提取到以下内容:
Sheet1
中的记录不在Sheet2
Sheet2
中的记录不在Sheet1
<强>假设:强>
工作表中有不同数量的记录,并且记录未在两个工作表中排序。 Sheet1
中的记录位于A1:C36
,Sheet2
中的记录位于A1:C33
<强>公式:强>
A1:D33
)要提取两个工作表中显示的记录,请使用以下公式:
Sheet1 ID(A列中的FormulaArray
):
=IFERROR( INDEX( ID.1,
AGGREGATE( 15, 6,
MATCH( Name.2 & LastName.2, Name.1 & LastName.1, 0 ),
ROW() - ROW($1:$1) )), "")
名称(B栏中的公式):
=IFERROR( INDEX( Name.1, MATCH( $A2, ID.1, 0 )), "")
姓氏(C栏中的公式):
=IFERROR( INDEX( LastName.1, MATCH( $A2, ID.1, 0 )), "")
Sheet2 ID(D列中的FormulaArray
):
=IFERROR( INDEX( ID.2, MATCH(
INDEX( Name.1, MATCH( $A2, ID.1, 0 )) &
INDEX( LastName.1, MATCH( $A2, ID.1, 0 )),
Name.2 & LastName.2, 0 )), "")
Sheet1
中的记录不在Sheet2
(位于F1:H33
)要提取仅显示在Sheet1
中的记录,请使用以下公式:
Sheet1 ID(F列中的FormulaArray
):
=IFERROR(AGGREGATE(15,6,
IF(ISERROR(MATCH( Name.1 & LastName.1, Name.2 & LastName.2, 0 )), ID.1, ""),
ROW() - ROW($1:$1)),"")
名称(G栏中的公式):
=IFERROR( INDEX( Name.1, MATCH( $F2, ID.1, 0 )), "")
姓氏(H栏中的公式):
=IFERROR( INDEX( LastName.1, MATCH( $F2, ID.1, 0 )), "")
Sheet2
中的记录不在Sheet1
(位于J1:L33
)
要提取仅显示在Sheet2
中的记录,请使用以下公式: Sheet2 ID(J列中的FormulaArray
):
=IFERROR(AGGREGATE(15,6,
IF(ISERROR(MATCH( Name.2 & LastName.2, Name.1 & LastName.1, 0 )), ID.1, ""),
ROW() - ROW($1:$1)),"")
名称(K栏中的公式):
=IFERROR( INDEX( Name.2, MATCH( $J2, ID.2, 0 )), "")
姓氏(L栏中的公式):
=IFERROR( INDEX( LastName.2, MATCH( $J2, ID.2, 0 )), "")
其中:
ID.1 = Sheet1!$A$2:$A$36
Name.1 = Sheet1!$B$2:$B$36
LastName.1 = Sheet1!$C$2:$C$36
ID.2 = Sheet2!$A$2:$A$33
Name.2 = Sheet2!$B$2:$B$33
LastName.2 = Sheet2!$C$2:$C$33
FormulaArrays
同时输入 ,如果输入正确,您将在公式周围看到 {
和 }