[英]Compare data in 2 columns with VBA or formula
您应该能够在工作表1中使用INDEX
MATCH
数组公式 ( Ctrl
+ Shift
+ Enter
,而不只是Enter
)来生成工作表2中的ID列表。此链接提供了在多个条件下使用INDEX
MATCH
的出色说明。 。 (它实际上与VLOOKUP
相同,但功能更强大)。 您的公式如下所示:
{=INDEX('Sheet2'!$A$2:$C$13, MATCH(1, (B2='Sheet2'!$B$2:$B$13) * (C2='Sheet2'!$C$2:$C$13) ,0), 1)}
上面的代码在Sheet2中分别从Sheet1的B2:B13和C2:C13范围中找到了B2和C2的行MATCH
,然后为该行和Sheet2中的列1使用INDEX
。
该解决方案将以下内容提取到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
同时 按 CTRL + SHIFT + ENTER 输入 FormulaArrays
, 如果正确输入 ,您将 在公式周围 看到 {
和 }
请参阅AGGREGATE函数 , INDEX函数 , MATCH函数 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.