官术网_书友最值得收藏!

3.5 關聯表合并:VLOOKUP函數雖好,但難承大數據之重

小勤:大海,現在公司的數據量越來越大,現有一個訂單表如圖3-34所示,訂單明細表如圖3-35所示,經常要將訂單表的一些信息讀取到訂單明細表里,給相關的部門去用。原來只有幾列數還好,用VLOOKUP函數讀取一下就行了,但現在經常要很多數,用VLOOKUP函數做起來就很麻煩了。這個訂單表還算少的,還有的表里有好幾十列數據。

圖3-34 訂單主體信息表

圖3-35 訂單明細數據表

大海:現在是大數據時代了,幾十列算少的了。我曾經參與一個信息系統項目,最常用的合同表就有近300列,而且這還不是最多的。

小勤:那怎么辦?如果按列順序讀取還好,但很多時候還不是按順序的,簡直就沒法處理啊。而且,VLOOKUP函數用多了,電腦還會很卡。

大海:這個時候用VLOOKUP函數的確有點吃力了。雖然VLOOKUP是Excel中極其重要的函數,但在大數據時代,它已經很難承擔起類似的數據關聯合并的重擔了。所以,微軟才在Excel里加了Power Query的功能。

小勤:那具體怎么操作呢?

大海:很簡單,分別獲取“訂單”表和“訂單明細”表中的數據到Power Query里,然后按以下步驟進行操作:

Step 01 在Power Query查詢編輯界面中,選中“訂單明細”查詢,切換到“開始”選項卡,單擊“合并查詢”按鈕,如圖3-36所示。

圖3-36 基于訂單明細表做合并查詢

Step 02 在彈出的對話框中部下拉列表中選擇要合并的外部表(訂單),如圖3-37所示,單擊上表(訂單明細)中的“訂單ID”列的列名選中該列,再單擊下表(訂單)中的“訂單ID”列的列名選中該列,表示訂單明細表和訂單表之間通過“訂單ID”列進行匹配,類似于VLOOKUP函數的第一個參數所選擇的單元格所在的列。設置完畢后,單擊“確定”按鈕。

圖3-37 合并查詢操作的設置方法

Step 03 此時,在表中多了一個名為“NewColumn”的列,單擊該列右側的數據展開按鈕,在彈出的對話框中勾選需要合并到“訂單明細”表中的內容,取消勾選“使用原始列名作為前綴”復選框,單擊“確定”按鈕,如圖3-38所示。

小勤:這樣真是太方便了,只要先選中匹配要用的列,然后選擇要合并哪些列進來就可以了!對了,剛才你不是說可以多列匹配嗎?原來用VLOOKUP時可麻煩了,還得先增加輔助列將那些列連接起來,然后再用輔助列來匹配。

大海:在Power Query里不需要了,只要在選擇匹配列時按住Ctrl鍵就可以選擇多列了。只是要注意,兩個表選擇匹配列的順序要一致,如圖3-39所示。

圖3-38 展開合并查詢結果

圖3-39 多列匹配的數據查詢

小勤:太好了,以后數據列多的時候匹配取數就太簡單了。

主站蜘蛛池模板: 梅州市| 昌平区| 策勒县| 铜陵市| 盐源县| 台南县| 宁阳县| 绥芬河市| 定西市| 共和县| 濉溪县| 东山县| 财经| 赤水市| 苍梧县| 湖北省| 巩留县| 镇远县| 安义县| 油尖旺区| 宁城县| 阿克| 潞城市| 宝应县| 游戏| 高青县| 宣恩县| 吉安市| 吴旗县| 瑞昌市| 伊宁市| 武宁县| 玉树县| 车致| 察雅县| 辽阳市| 衡南县| 邯郸县| 贡觉县| 余干县| 玛纳斯县|