2017-08-09 204 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

相關問題