46一次查詢多張工作表的方法

古哥計劃 發佈 2022-12-24T17:01:25.343224+00:00

VLOOKUP函數是古哥第一個啟蒙函數,這個函數學會後,就離不開他了,無論是更新後的XLOOKUP的功能有多強大,還是習慣用它。現在回想起當年的使用感覺,就是太強大了,解決了很多生產計劃中的問題;不過有一個問題一直到新版本OFFICE更新後,才徹底解決了。


VLOOKUP函數是古哥第一個啟蒙函數,這個函數學會後,就離不開他了,無論是更新後的XLOOKUP的功能有多強大,還是習慣用它。現在回想起當年的使用感覺,就是太強大了,解決了很多生產計劃中的問題;

不過有一個問題一直到新版本OFFICE更新後,才徹底解決了。不是困擾大家的反向查詢(向左),也不是一對多的查詢,更不是模糊查詢,而是查詢的條件分別在不同的工作表,如果只是2張工作表還好,可以用IFERROR來解決,原理就是先查詢第1張表,如果第1張表找不到,就找第2張表;

如果工作表較多的情況下,就非常痛苦,需要把所有工作表合併起來再次查詢,但是很多工作表又必須分開,而且合併多張工作表也是件容易的事情,需要用到VBA或者第三方插件。

在OFFICE 365 更新後的函數有一個函數VSTACK,配合上VLOOKUP函數,完美的解決了這個問題,這也是一個非常強大的組合,配合VSTACK函數,非常順利的解決多工作表查詢,匯總求和的難題;

01 函數說明:

Microsoft 365 專屬函數,無此函數請更新OFFICE版本;

函數說明:按順序垂直追加數組,以返回更大的數組

中文說明:就是兩個區域的數組累加,按列的方式;

函數語法: (數據區域1,數據區域2,數據區域3,……)

注意事項:合併的數據區域的高度,也就是行數,如果選中了整列,如A:A,將無法與B:B 合併,返回錯誤,已經超過Excel的最大行數了;

02 實戰案例:

如果只是函數本身來說,就一個合併的功能,並無太多的實戰意義,但是如果配合上VLOOKUP函數,就完全不一樣了,我們假設有6張表(實際可能更多),新建一個查詢工作表,要在這6張表中找到工單號對應的型號和數量。

問題就是,不確定需要查詢的工單在哪一張表上,有可能是表1,有可能是表2……,如果不配合VSTACK的話,需要VLOOKUP分別引用6張表,判斷6次,非常繁瑣。

解決方案:

解決的方案非常簡單,利用VSTACK的合併功能,把需要查詢的區域合併成一個新的區域;

這裡需要注意的是,如果不確定每個表的行數,可以取一個相對比較大的行數,但又不能取整列,記住Excel的最大行數是104萬行左右就行了;所有待合併的行數不能超過這個行數

舉例說明:10張表合併,每個表1萬行,合併就是10萬行;

03 操作步驟:

第一步:錄入函數VSTACK,並選中6張表的待合併區域,創建一個新的數據區域;注意這裡的選中方法:先點表1,按住Shift鍵後再點表6,多張表也是一樣,最後再選擇需要合併的區域範圍;

錄入完成後,相當於把6張表的數據全部合併了,其中返回0的代表無數據的,因為無法判斷每一張表的行數,這裡選擇用大範圍來容錯;

有了這個區域就簡單了,作為VLOOKUP的第二參數就可以直接引用 了;

第二步:在查詢表中錄入函數VLOOKUP,把剛才VSTACK生成的新數據區域放在第二參數,絕對鎖定這個區域,第三個參數,用CLOUMN(B1)替代2,向右填充得到3,第四參數絕對引用,錄入0

B2 =VLOOKUP($A2,VSTACK(表1:表6!$A$2:$C$14),COLUMN(B1),0)

最後查詢結果如下圖:

我是古哥:

從事製造行業18年,在企業運營、供應鏈管理、智能製造系統等方面具有豐富的實戰經驗。企業智能化,柔性化計劃運營管理專家,擅長通過企業流程優化規範,企業管理、導入計劃運營提升企業效率;對提高企業準時交貨率,降低企業庫存,輸出智能製造人才有豐富的經驗。學習PMC生產計劃,關注古哥計劃!

關鍵字: