欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

和工作表函數VLOOKUP有什么差異

江奕云2年前18瀏覽0評論

和工作表函數VLOOKUP有什么差異?

在Excel中要比對兩列數據,我們最常用的是vlookup函數,估計很多人已經對這個函數用得滾瓜爛熟了。

既然vlookup函數如此好用,又有什么理由去用PowerQuery呢?

且聽我慢慢道來。

如果只是偶爾一次的數據比對,請用vlookup函數

最常見的是偶爾比對一下班級中有哪些學員沒報名參加某活動,或比對同一個客戶是否在多個表中出現。

在這種情況下,比對只是偶爾發生。很顯然,用vlookup函數是最簡單最快捷的。

如果經常需要比對數據,請用PowerQuery來比對

比如每天都要比對兩個表乃至N個表,或者每周都要比對,這種重復工作就交給PowerQuery來處理好了。

如果原始數據非常重要,需要盡量保證無損操作,還是建議用PowerQuery

有時候原始數據太重要,我們要避免對原始數據的任何有損操作,以免誤操作之后破壞了原始數據,那么,我還是建議用PowerQuery,因為PowerQuery可以對原始數據進行無損操作——連它所在的位置都不用動一分一毫,更不用說直接在它上面進行有損操作了。

當然,用vlookup函數也能進行無損操作,比如復制原始數據到新的文件,或用公式引用原始數據文件的內容到新的文件,但操作起來比較復雜。

一個PowerQuery比對數據的例子

由于vlookup的教程實在太多,我就不再拾人牙慧重復一遍了。直接給出一個PowerQuery比對數據的例子。

假設:我們有一份《班級學員名單》,

班級學員表名單

還有一份《報名表》,

報名表

這是兩個獨立的Excel文件,分別放在不同文件夾下。

需求是找到哪些班級學員還沒報名,并且,把《報名表》里不是本班的人標記出來進行下一步處理。

首先,分別引入《班級學員表》和《報名表》兩個Excel文件到PowerQuery。

操作:新建一個Excel文件,目的是不對原始文件本身進行任何改動。然后在Excel中點擊【數據】選項卡,選擇【新建查詢】-【從文件夾】-【從工作簿】引入原始文件。

在彈出窗口中找到需要引入的《班級學員表》,然后直接點“編輯”,

對它進行簡單操作:在“查詢設置”的“屬性”下修改“名稱”為“班級學員表“,免得和后面引入的報名表搞混;并將第一行提升為標題。

同樣的操作,引入《報名表》。最后結果類似于下面這樣:

PowerQuery中處理兩個表格數據比對的思路。

當我們對兩個表格進行數據比對時,可以把這兩個表格看作兩個集合,這樣,對兩個表格的比較就變成尋找兩個集合的關系:

我們把班級學員名單想象為左邊的綠色部分,報名表想象為放在右邊的藍色部分,這樣,沒報名的學員,我們可以簡單理解我們能看得見的綠色部分。在PowerQuery中,用Table.NestedJion()函數的"JoinKind.LeftAnti"參數來表示這種關系。

新建一個空白查詢,直接輸入下面的代碼即可得到未報名的學員:

= Table.NestedJoin(班級學員表,{"姓名"},報名表,{"姓名"},"報名表",JoinKind.LeftAnti)

那么,反過來,Table.NestedJion()函數的"JoinKind.RightAnti"就表示只存在于右邊表(報名表)的元素:

= Table.NestedJoin(班級學員表,{"姓名"},報名表,{"姓名"},"報名表",JoinKind.RightAnti)

其實,我們可以通過變換【= Table.NestedJoin(班級學員表,{"姓名"},報名表,{"姓名"},"報名表",JoinKind.LeftAnti)】中“班級學員表”和“報名表”的位置,就直接得出了不在班級學員表中的報名人員:

= Table.NestedJoin(報名表,{"姓名"},班級學員表,{"姓名"},"報名表",JoinKind.LeftAnti)

加載數據到Excel表格。

接下來把生成的結果加載到Excel表格,選中要加載的查詢,點擊“加載到”按鈕,

在彈出窗口中選擇加載到“表”:

然后再重命名下加載數據的sheet名稱,免得搞混,即完成。

辛苦了一次,怎么終生輕松呢?

用PowerQuery處理表格數據比對的最大理由是可以辛苦一次,終生輕松,這樣遇到同樣的比對工作,就不用重復的步驟走了一遍又一遍了。

假設我這個比對工作要天天做、周周做、月月做。

現在我完成了今天的比對工作。

明天,新的報名表來了,我要怎么做呢?

我只需要把今天的報名表刪除,把明天的報名表放到同樣的位置(比如桌面),然后打開我剛才建立好的模型文件,刷新一下即可:

而班級學員表因為不會經常變動,所以我根本不用管它,保持在原位即可。就算有新增班級學員,我編輯該文件將其新增進去即可。

甚至還有更簡單的辦法:如果我有很多班級和報名表,每個班有個單獨的文件夾,下面有班級學員表和報名表,我只需要借助PowerQuery的參數表格結合Excel的Cell()函數,建立來自于文件夾的數據源。

然后,每次需要某個班級的最新結果,就把該模型文件丟到該班級所在的文件夾,打開刷新,即可獲取到最新結果。

結語

如果只是偶爾比對一下數據,直接用vlookup函數,便宜又實惠;如果經常要比對數據,那么可以試試看“辛苦一次,終生輕松”的PowerQuery大法。

當然,PowerQuery還有很多很多絕技。

有興趣的不妨試試看,如果您嘗試過程中遇到問題,請隨時留言。

java 數據集合找差異,和工作表函數VLOOKUP有什么差異