如何整合Excel表格?
網(wǎng)友解答: 剛看了前面幾個答案,除了說用vlookup的方法基本答對之外,人氣最高的答案貌似不是提問者所需要的,因?yàn)檫@個答案是指多個工作表的匯總,而不是提問者所需要的橫向的合并。如前面的
剛看了前面幾個答案,除了說用vlookup的方法基本答對之外,人氣最高的答案貌似不是提問者所需要的,因?yàn)檫@個答案是指多個工作表的匯總,而不是提問者所需要的橫向的合并。
如前面的答案,vlookup是方法之一,但是,用vlookup有一個問題,就是只能從一個表讀取數(shù)據(jù)到另一個表,而不能實(shí)現(xiàn)兩個表的完全整合,比如如果A表上有姓名和地址而B表上沒有數(shù)據(jù)的,從B表讀取A表的數(shù)據(jù)就讀不出來,相反也是一樣。
因此,個人認(rèn)為最好的辦法是用Excel2016的新功能Power Query(如果是Excel2010或2013可以到微軟官方下載插件)。具體實(shí)現(xiàn)方法如下:
vlookup雖好,然難承大數(shù)據(jù)之重【PQ關(guān)聯(lián)表合并】原創(chuàng) 大海 Excel到PowerBI小勤:大海,現(xiàn)在公司的數(shù)據(jù)量越來越大,現(xiàn)在有訂單表和訂單明細(xì)表,經(jīng)常要將訂單表的一些信息讀取到訂單明細(xì)表里,給相關(guān)的部門去用,原來只要幾列數(shù)還好,vlookup讀一下就是了,但現(xiàn)在,經(jīng)常要很多數(shù),用vlookup要累屎了。這個訂單表還算少的,還很多其他的一張表里都好幾十列了。
大海:呵呵,大數(shù)據(jù)時代嘛。幾十列算少的啦,我上次一個項目上的合同表,有差不多300列,而且這還不算真正多的。
小勤:那怎么辦啊!有時候按列順序讀還好,很多時候還不是按順序的,簡直就沒法整啊。而且,滿篇公式的時候,工作表都要跑不起來了。
大海:這個時候用vlookup的確有點(diǎn)吃力了,雖然vlookup是Excel中極其重要的函數(shù),但是,在大數(shù)據(jù)時代,已經(jīng)很難承起數(shù)據(jù)關(guān)聯(lián)合并的重?fù)?dān)了,所以微軟才在Excel里加了PowerQuery的功能嘛,點(diǎn)點(diǎn)點(diǎn),你想要哪些列就哪些列。
小勤:這么神奇?
大海:這段時間PowerQuery的神奇你也不少見了,不用驚訝?,F(xiàn)在就告訴你怎么弄。
Step-1:獲取訂單表數(shù)據(jù)并僅創(chuàng)建表連接上載
Step-2:獲取訂單明細(xì)表數(shù)據(jù)并僅創(chuàng)建表連接上載(需要直接上傳結(jié)果的可以選擇表)
Step-3:回到PowerQuery界面(當(dāng)然,前面一個步驟如果沒有關(guān)閉并上載的話,不需要這一步)
Step-4:選擇要接入外部數(shù)據(jù)的查詢,單擊【開始】-【合并查詢】
Step-5:選擇要接入的外部表、選擇兩表之間用于匹配的列(可以是多列匹配,文末以另一個例子該步驟的附圖方式說明)
Step-6:展開要接入表的列信息,選擇要接入的列以及列名顯示方式(是否加前綴)
Step-7:查看接入的結(jié)果,上載數(shù)據(jù)
Step-8:改變數(shù)據(jù)的加載方式(由“僅創(chuàng)建連接”方式改為“表”,若前面訂單明細(xì)不是以“僅創(chuàng)建連接”的方式創(chuàng)建,該步驟不需要)
小勤:這樣真是太方便了,只要選一下匹配要用的列,選擇一下要接入哪些列就搞定了!對了,剛才你不是說可以多列匹配嗎?原來用vlookup的時候可麻煩了,還得增加輔助列先將那些列連接起來,然后再用輔助列來匹配。
大海:是的。在PowerQuery里也不需要了,只要在選擇匹配列時按住ctrl鍵就可以選擇多列了。只是要注意兩個表選擇匹配列的順序要一致。如下圖所示:
小勤:太好了,以后數(shù)據(jù)列多的時候匹配取數(shù)就太簡單了。
以上是使用Power Query代替vlookup實(shí)現(xiàn)的兩表合并的基本用法(雖然步驟看起來很多,實(shí)際關(guān)鍵步驟就2個,都是鼠標(biāo)點(diǎn)點(diǎn)點(diǎn)就瞬間完成的事情)。
那么,前面提到的,如果兩個表間存在的差異數(shù)據(jù)都要顯示,怎么辦呢?只要對其中的表間連接類型按以下情況進(jìn)行適當(dāng)?shù)倪x擇即可:
左外部:只要訂單表(左表)里有的數(shù)據(jù),結(jié)果表里都會有,但有些因?yàn)槊骷?xì)表(右表)里沒有,所以匹配過來后會成為null(空值)
右外部:和左外部相反,即明細(xì)表(右表)里有的數(shù)據(jù),結(jié)果表里都會有,但因?yàn)橛唵伪恚ㄗ蟊恚├镉胁糠謹(jǐn)?shù)據(jù)沒有,所以合并后用null值表示。
完全外部:不管哪個表里的數(shù)據(jù),全都進(jìn)結(jié)果表,對于雙方都有一些對方?jīng)]有的,合并后顯示為null值。
內(nèi)部:跟完全外部相反,只有兩個表都有的數(shù)據(jù),才進(jìn)結(jié)果表。
左反:只有訂單表(左表)有而明細(xì)表(右表)沒有的數(shù)據(jù),才進(jìn)結(jié)果表。這種用法經(jīng)常用于檢查如哪些訂單缺了明細(xì)表等。
右反:和左反相反,只有明細(xì)表(右表)有而訂單表(左表)沒有的數(shù)據(jù),才進(jìn)結(jié)果表。
歡迎關(guān)注【Excel到PowerBI】我是大海,微軟認(rèn)證Excel專家,企業(yè)簽約Power BI顧問讓我們一起學(xué)習(xí),共同進(jìn)步! 網(wǎng)友解答:月末了,各部門報過來的數(shù)據(jù),如何合并到一個文件里?
過去,我們只能使用VBA或編寫SQL語句。
現(xiàn)在,我們只需點(diǎn)擊幾次鼠標(biāo),書寫一個公式。
6個工作簿,數(shù)據(jù)結(jié)構(gòu)都是一致的,我們需要把她們合并到一個工作簿里。
【數(shù)據(jù)新建查詢從文件從文件夾】。
【瀏覽】,找到需要合并的文件夾。
文件夾下每一個工作簿都被合并在一起。首列“內(nèi)容”顯示【Binary】,是二進(jìn)制數(shù)據(jù)的意思。
最后一列顯示這些工作簿的地址。中間幾列分別表示工作簿名稱、后綴名、訪問時間、修改時間、創(chuàng)建時間和文件屬性。
點(diǎn)擊【編輯】,進(jìn)入【查詢編輯器】,中間那幾列無用,所以右鍵單擊【列標(biāo)簽刪除列】。
如果此時直接點(diǎn)擊二進(jìn)制首列的"展開按鈕",會出現(xiàn)錯誤提示。
這是因?yàn)?,二進(jìn)制數(shù)據(jù)無法直接提取。我們需要書寫一條公式。
在【查詢編輯器】點(diǎn)擊【添加列添加自定義列】。
在【添加自定義列】對話框,保留默認(rèn)的【新列名】,在【自定義公式】列表框錄入公式:
=Exel.Workbook([Content],true)
注意,公式函數(shù)嚴(yán)格區(qū)分大小寫(首字母大寫)。
函數(shù)的第一個參數(shù)是需要轉(zhuǎn)換的二進(jìn)制字段,這個字段可以在右側(cè)列表框雙擊選擇,不必手工錄入。
函數(shù)的第二個參數(shù)是邏輯值,如果原數(shù)據(jù)有標(biāo)題行,這里應(yīng)該添寫true。
點(diǎn)擊【確定】后,【查詢編輯器】新增一列,數(shù)據(jù)類型顯示為【Table】,右側(cè)的【應(yīng)用步驟】列表顯示了剛剛進(jìn)行的步驟。
隨便選擇【Table】數(shù)據(jù)的一個單元格,下方預(yù)覽區(qū)會顯示這個表的結(jié)構(gòu)。
點(diǎn)擊新增列標(biāo)簽右側(cè)“展開按鈕”,選擇【擴(kuò)展】。
每一個【Table】表會按列方向展開。其中Data數(shù)據(jù)類型仍然顯示【Table】。
我們再次點(diǎn)擊【Table】數(shù)據(jù)列標(biāo)簽右側(cè)的“展開按鈕”。
展開的數(shù)據(jù)已經(jīng)將文件夾下所有工作簿合并在一起。
刪除一些不需要的列。
只留有效數(shù)據(jù)列,點(diǎn)擊【開始關(guān)閉并上載】返回Excel。
所有數(shù)據(jù)都已經(jīng)合并到一個工作簿中。
得到的合并數(shù)據(jù)實(shí)際上是一個【查詢】,右鍵單擊可以【刷新】數(shù)據(jù)。
當(dāng)文件夾下原工作簿內(nèi)容變更,合并工作簿只要【刷新】一次,即可更新數(shù)據(jù)。
展開【Table】數(shù)據(jù)時,如果選擇【聚合】,得到的數(shù)據(jù)會將同類項求和或計數(shù)。
怎么樣,是不是比VBA要簡單的多啊。