2017-08-09 194 views
0

所以这个问题看起来很简单,但相当复杂,但我会尽我所能来试试。匹配两个不同工作表中的列并返回多个列[Excel]

有两张纸,都有类似的第一列(代码)。如果您愿意,代码是“主密钥” - 每个代码在每个表中都有大量不同的信息(大约200-300列数据)。而且,这些代码并不相同,并且是随机聚类的。其中一些代码确实匹配。我突出显示了我的示例图片中匹配黄色的代码。

所以我想要做的是将与第一列(代码)匹配的所有数据列添加到新工作表。我的样张和理想的解决办法是这个样子

Sheet Sample and Solution

我试图解决这个使用几个= VLOOKUP函数,但我一直卡住。我有几列数据,所以我甚至不确定是否应该使用= vLookup。我对Excel也很新,所以如果有人向我指出正确的方向,我会很高兴。

+0

是的,VLOOKUP是正确的功能。可以手动输入正确的返回列号(公式的第三个参数),或者使用MATCH函数。可能与IFERROR结合,因此您可以检查两张表的标题。 – tigeravatar

回答

0

使用您提供的示例数据,我创建了以下解决方案。

在表“表SOLN”小区J1(可以是任何细胞,并且可以隐藏如果优先停留)是这个公式找出匹配的代码中有多少两个片:=SUMPRODUCT(COUNTIF(Sheet2!A:A,Sheet1!A2:A7))调整A2:A7以匹配实际范围。这样做是为了使此计算仅执行一次,然后再引用以减少公式计算(提高工作簿效率)。

然后在你的表水溶液和A2单元格使用这个公式并抄下得到的只有那些存在于纸上的代码:=IF(ROW(A1)>$J$1,"",INDEX(Sheet1!$A$2:$A$7,MATCH(1,INDEX((COUNTIF(A$1:A1,Sheet1!$A$2:$A$7)=0)*COUNTIF(Sheet2!$A:$A,Sheet1!$A$2:$A$7),),0)))

并且在B2单元格中使用这个公式复制过来,下去把代码的各自标题的值:=IF($A2="","",IFERROR(VLOOKUP($A2,Sheet1!$A:$E,MATCH(B$1,Sheet1!$A$1:$E$1,0),FALSE),VLOOKUP($A2,Sheet2!$A:$E,MATCH(B$1,Sheet2!$A$1:$E$1,0),FALSE)))

+0

非常感谢! B2单元显示#N/A,但我知道现在要去哪里。我可以自己解决其余的问题。再次感谢! – sneha99

相关问题