如何匹配多个列并在Excel中获取值

时间:2017-11-28 12:50:25

标签: excel vba excel-vba excel-formula excel-2010

enter image description here

我需要将工作表1中的A列和B列值与工作表2中的A列和B列值相匹配。如果两者相同,则从工作表2复制C值,然后在工作表1中粘贴C.我将输入在表2列C中手动设置值。每个国家/地区将包含2个或更多数字。因此,A列和B列都必须匹配。

我使用下面的公式。但不行。大多数A列和B列值都没有按顺序排列。帮帮我

=INDEX(Sheet2!$C:$C; MATCH(Sheet1!$A2:B2; Sheet2!$A:$B; 0);COLUMNS($A:B))

3 个答案:

答案 0 :(得分:1)

您可以使用以下公式返回您要查找的内容。这是一个数组公式,因此需要输入 Ctrl + Shift + Enter

=INDEX(Sheet2!$C$2:$C$22; MATCH(1; (Sheet2!$A$2:$A$22=Sheet1!$A2)*(Sheet2!$B$2:$B$22=Sheet1!$B2);0))

由于它是一个数组公式,我建议从头到尾定义范围,而不是仅选择整列。非数组公式Excel主动查找范围的开始和结束,并仅计算该子集;但是,对于数组公式,它会考虑整个范围(即使其中没​​有任何内容),因此即使计算量不足也会突然花费很长时间

答案 1 :(得分:0)

使用以下作为矩阵公式:

=INDEX(Sheet2!$C:$C; MATCH(Sheet1!$A2&$B2; Sheet2!$A&$B; 0))

答案 2 :(得分:0)

将其粘贴到单元格=INDEX(C2:C22,MATCH(G2&H2,A2:A22&B2:B22,0)) 中:

x=c(1,2,3,4)
k = x+2 [(!is.na(x)) & x>0]

并使用 Ctrl + Shift + 输入而不是输入,因为它是一个数组公式。

然后根据需要将该单元格复制为多行。

以下是一些more examples