海量數據,Vlookup歇菜了怎麼辦?
中國統計網 · 科技 ·

海量數據,Vlookup歇菜了怎麼辦?

或者新建一個文件也行),在【數據】選項卡下面依次單擊「新建查詢」、「合併

有小夥伴想從20多萬行的數據中,根據幾萬行數據查找其對應的詳細信息,用Vlookup或者Index+Match直接就卡死了。

難道這個問題在Excel中就無解了嗎?那你也太小瞧Excel了。雖然處理大量數據,我們提倡到資料庫中去處理,但是大家都知道,自Excel 2007之後,單張表最大數據行數已經增加到了1048576行,對就是一百多萬行。既然Excel給設計成這麼大的容量,我們應該相信,微軟就會提供相應的處理能力。

廢話少說,我們直接來看一下怎麼處理這種問題。

案例

用羅斯文資料庫截取了一些數據,並用VBA在工作表中重複填充,得到一個超過二十萬行的數據源。ID列是一個遞增的連續序列數,訂單ID列是用隨機數函數生成的1~200000之間前的數,會有重複。這個放在一個文件中的工作表中,工作表命名為「數據源」。

如下圖所示,數一數前面的行標,確實是6位數,超過二十萬行的數據。

他列的相關信息。步驟1導入數據打開第二個文件(

在第二個文件的工作表中存放了一些訂單ID,截取了23758個訂單ID,工作表命名為「查詢表」。

目的根據第二個表中的「訂單ID」從第一個表中查詢所有其

目的

根據第二個表中的「訂單ID」從第一個表中查詢所有其他列的相關信息。

步驟 1導入數據

打開第二個文件(或者新建一個文件也行),在【數據】選項卡下面依次單擊「新建查詢」、「合併查詢」、「啟動查詢編輯器」。

,截取了23758個訂單ID,工作表命名為「查詢表」。

在查詢編輯器中,點擊【開始】選項卡,在最右邊的「新建查詢」組中依次單擊「新建源」、「文件」、「Excel」。

數據。在第二個文件的工作表中存放了一些訂單ID

在彈出的對話框中選擇數據源文件後,彈出以下對話框。

點擊紅色方框中的「數據源」,然後點擊「確定」按鈕。

。如下圖所示,數一數前面的行標,確實是6位數,超過二十萬行的

我們就會導入一份數據,如下圖所示。

間前的數,會有重複。這個放在一個文件中的工作表中,工作表命名為「數據源」

用同樣的方法,將「查詢表」中的數據也導入查詢編輯器。

是一個遞增的連續序列數,訂單ID列是用隨機數函數生成的1~200000之

2創建合併查詢

在查詢編輯器的【開始】選項卡中,點擊「合併」組中的「合併查詢」下拉菜單中的「將查詢合併為新查詢」。

數據,並用VBA在工作表中重複填充,得到一個超過二十萬行的數據源。ID列

在彈出的對話框中,進行以下設置:

  • 第一個下拉框中選擇「查詢表」,第二個下拉框中選擇「數據源」表。這時,數據都被部分加載顯示在這裡。

  • 同時選中上下兩個「訂單ID」欄位,這兩個表會通過選中的欄位關聯在一起。

  • 在最下面的連結類型中選擇「左外部」。如果你了解SQL,那你應該明白,這就叫做Left Join,就是查詢結果包含第一個表中的所有數據並匹配上第二個表中相應的數據。

下怎麼處理這種問題。案例用羅斯文資料庫截取了一些

設置完之後,點擊「確定」按鈕就創建了一個合併查詢,如下圖所示。

我們需要點擊下圖紅色方框中的展開按鈕。

該相信,微軟就會提供相應的處理能力。廢話少說,我們直接來看一

這裡列出了所有欄位,如果我們只想查看部分欄位的話,我們可以在這裡只選擇要查看的欄位。

8576行,對就是一百多萬行。既然Excel給設計成這麼大的容量,我們應

這樣就得到了一個查詢結果。

3上載數據

這裡需要注意,我們需要點擊【開始】選項卡下面的「關閉並上載至...」,而不是「關閉並上載」,這是因為「關閉並上載」會直接加載所有三個查詢的數據,那個二十多萬行的數據也會被加載,而「關閉並上載至...」則會彈出以下對話框,這裡我們選擇「僅創建連結」。

都知道,自Excel2007之後,單張表最大數據行數已經增加到了104

這時在工作表的右邊就出現了三個連結。

太小瞧Excel了。雖然處理大量數據,我們提倡到資料庫中去處理,但是大家

我們右鍵點擊最下面的Merge1連結,點擊菜單中的「加載到...」。

直接就卡死了。難道這個問題在Excel中就無解了嗎?那你也

在彈出的對話框中,查看數據的方式選擇「表」,然後點擊「加載」按鈕。

萬行數據查找其對應的詳細信息,用Vlookup或者Index+Match

咻~幾萬行查詢結果數據就被加載到表中了。

是不是感覺比使用公式好玩又省時省力呢?而且,如果數據源中同一個「訂單 ID」有多行,這裡也會全部查詢出來。這裡我們全程沒有用到任何公式、編程,純菜單式操作,這麼實用的知識還不隨手分享出去?

知識拓展

關於連結的類型

左外部:返回第一個表中所有行,並從第二個表中用關聯欄位查詢匹配行的內容;

右外部:相對於左外部來講,就是返回第二個表中的所有行,並從第一個表中用關聯欄位查詢匹配行的內容;

完全外部:兩個表中所有行都返回,如果有匹配行就返回關聯的信息;

內部:只返回兩個表中都有的行,比如一個表中有,另一個表中沒有,則不返回信息;

左反:返回只在第一個表中存在,不在第二個表中存在的行;

右反:返回只在第二個表中存在,不在第一個表中存在的行。

有這麼多不同的連結類型,小夥伴們有沒有什麼好想法、好點子呢?快到留言區分享吧!

End.

來源:Excel輕鬆學

國統計網,是國內最早的大數據學習網站,歡迎關注!

有小夥伴想從20多萬行的數據中,根據幾
聲明:文章觀點僅代表作者本人,PTTZH僅提供信息發布平台存儲空間服務。
喔!快樂的時光竟然這麼快就過⋯
繼續其他精彩內容吧!
more