Excel如何將兩個表,根據有相同數據的一列數據,自動填寫到另外一張表?
問題已按照回答中說的vlookup函數解決,感謝回答的各位。
本來覺得比較麻煩的,這次有點顛覆了我的想法,以前對Excel的認識太淺顯了些。————————數據有幾百上千行。表格二的A列數據,包含表格一的A列。表格一的A列,要比表格二的A列少很多行。兩個表的A列排序是混亂的。
如何將表格二B列C列數據,根據A列,填寫到表格一?就是根據A列數據,將B列C列,匹配到表格一。如圖,將圖一,做成圖二的效果:兩個測試表格,網盤下載:http://woxiangjingjing.ys168.com/將上圖達到這樣的效果
謝謝邀請
這問題 @Wicky Liang 已經回答了,已經把方法告訴題主了。本來打算把邀請忽略掉,但是:
發現題主把測試數據都上傳到網盤了,這還是我第一次遇到這麼認真、這麼考慮回答問題者便利的提問者。所以必須得回答,就把 @Wicky Liang 答案的具體操作寫出來吧。
你的問題就是日常工作中最常用的應用之一:查找引用
滿足此需求的方法, @Wicky Liang 已經介紹了,臨時性的可用篩選,永久性的用查找引用函數。下面分別介紹。
- 高級篩選
如果數據源單元格和篩選的目標區域在同一個工作表,如下圖
使用高級篩選即可滿足,高級篩選有以下功能:
- 可以使用單元格區域中的值作為的條件,如題中的表2就是條件區域,
- 可以將篩選結果複製到指定單元格,如果指定單元格指定了欄位,那麼只返回源表符合條件記錄的部分欄位。
先看返回全部欄位的操作:
篩選後,由於「複製到」的單元格區域沒有指定返回的欄位,所以篩選出的結果會將源表格的所有欄位都列示出來,效果上看好象F列欄位1是多出來的,如下圖
如前所述,實際上我們可以目標單元格指定返回的欄位,比如在F1單元格輸入「欄位2」、G1單元格輸入「欄位3」,然後在「複製到」欄,指定為F1:G1,此時聰明的Excel會自動顯示"sheet1!指定"
如下圖:
返回結果如下:
細心的你可能已經發現了,返回的欄位2、欄位3的值與欄位1不是正確的對應。這正是我要說的,原因如下:
- 條件欄位的順序要與源表順序一致,否則結果是錯亂的。
另外,由於本題源表與目標表不在同一工作表,如果在測試表2點擊「高級篩選」,然後按上面的操作篩選的話,會提示
遇到這個問題,可以這樣解決:
- 在目標表格(即測試表1)點擊「高級篩選」,然後再按前面的操作,分別選定列表區域、條件區域、目標區域,即可。
- 2、函數法
Vlookup函數
函數解釋:vlookup(查找對象,查找區域,要返回查找區域的第幾列,精確查找還是模糊查找)
回答本題的公式:
=VLOOKUP($E2,[測試數據2.xls]Sheet1!$A$2:$C$12,2,0)
=VLOOKUP($E2,[測試數據2.xls]Sheet1!$A$2:$C$12,3,0)
如果列數較多,可以嵌套返回列號的函數
=VLOOKUP($E2,[測試數據2.xls]Sheet1!$A$2:$C$12,COLUMN(),0)
注意:
查找對象必須在查找區域的第一列
由於你的表格有上千行,建議使用vlookup函數查找引用。
提供兩個方案:
- 臨時性的,用高級查找。
- 長久使用的,用查詢函數:vlookup,或者index嵌套match。
- 單元格地址的相對引用和絕對引用,也就是函數中$A$1, $A1 ,A$1 在向下、向右填充時有什麼區別。
- 數據格式(數字、字元),通過數據→分列操作改變數據格式。
要實現題主這個要求的功能的方法其實很簡單。
方法是:
第一步:你直接在Book1的B1單元格裡面輸入函數:=iferror(vlookup(B1,[Book2,xls]Sheet1!$A:$C),2,0),"")。同理C1單元格也是採用同樣地方法。第二步:選中單元格B1C1後直接往下拖即可。
最後:你在Book1 裡面$A1欄裡面的任一單元格輸入任何一個值後會自動顯示結果。
以上方法題主可以試試,另外你在嘗試之前最好學習一下Vlookup函數的使用方法,畢竟在數據引用方面這個函數的使用概率非常高。請教一下,問個問題。wps第一列填的內容跟第五第六列是一樣的。那我如何在填寫完第一列時候,剩下兩列也能生成呢?謝謝!
推薦閱讀:
※EXCEL突然有一天打開之後,所有的格式默認設置都變成了日期。如何將默認單元格格式修改成常規?
※有哪些免費非常好用的excel插件值得下載使用?
※為什麼excel不能正確處理utf8 csv?
※Excel里常見的錯誤值分別代表什麼意思?
※Excel 單元格中的下三角箭頭是做什麼用的?如何實現?
TAG:MicrosoftExcel |