一日以技:Excel中超級好用的VLOOKUP,解決工作難題

? ???作者:老表
? ? ?來源:簡說Python
今天給大家分享的一日一技是自己在工作中遇到的一個問題的解決方法,本來年前也遇到過,但今天又遇到還是記不清,還好記得是用VLOOKUP。
VLOOKUP函數(shù)的功能淺顯的說就是:根據(jù)關(guān)鍵詞把一個表格中的數(shù)據(jù)轉(zhuǎn)移到另外一個表格。
在數(shù)據(jù)分析中,大多數(shù)時候問題我們能通過SQL解決,即在取數(shù)據(jù)時就把數(shù)據(jù)整理好,后面會分享一些SQL問題和解決方法。
但是也會有些時候,不方便在取數(shù)時就直接把數(shù)據(jù)整理好,比如,簡說大學(xué)1602班成績表里記錄了該大學(xué)歷年來的學(xué)生的各科的成績,成績表說明如下:
表名:js_1602_class_transcript_nd學(xué)號?姓名?語文?數(shù)學(xué)?英語?考試類別??考試年份注:考試類別 -- 期中/期末考試年份?--?yyyy-06?或?yyyy-12 分別表示上學(xué)期和下學(xué)期
這個時候,老師叫你整理一份每個學(xué)生2019年第二期期中期末各科的成績表,表頭是這樣的:
學(xué)號?姓名?期中語文?期末語文?期中數(shù)學(xué)?期末數(shù)據(jù)?期中英語 期末英語我們直接寫SQL,可能是這樣的:
SELECT??a1.`學(xué)號`,?a2.`姓名`,?`期中語文`,?`期中數(shù)學(xué)`,?`期中英語`,?`期末語文`, `期末數(shù)學(xué)`,?`期末英語`FROM (????????????SELECT??`學(xué)號`, `姓名`,`語文` AS `期中語文`,`數(shù)學(xué)` AS `期中數(shù)學(xué)`,`英語` AS `期中英語`FROM js_1602_class_transcript_ndWHERE `考試年份` = '2019-12' -- 首先指定考試年份AND `考試類別` = '期中') a1JOIN (????????????SELECT??`學(xué)號`, `姓名`,`語文` AS `期末語文`,`數(shù)學(xué)` AS `期末數(shù)學(xué)`,`英語` AS `期末英語`FROM js_1602_class_transcript_ndWHERE `考試年份` = '2019-12' -- 首先指定考試年份????????????AND?????`考試類別`?=?'期末') a2ON a1.`學(xué)號` = a2.`學(xué)號`;
不知道大家能不能體會其中的艱難,不到萬不得已,誰會自己JOIN自己呀,舉例還是簡單的,要是js_1602_class_transcript_nd表得從其他地方取,比如從數(shù)學(xué)成績表取數(shù)學(xué)成績,英語成績表里取英語成績,語文成績表里取語文成績,那就更復(fù)雜了,工作中往往就是這么復(fù)雜,雖然也能跑出來,但自己心里就是不舒服,也許是程序員的倔強(qiáng)吧!
所以,這個時候,我很倔強(qiáng),靜下心來,想到了vlookup,我只需要在取數(shù)時,這樣:
SELECT??`學(xué)號`,?`姓名`,?`語文`,?`數(shù)學(xué)`,?`英語`, `考試類別`FROM js_1602_class_transcript_ndWHERE `考試年份` = '2019-12' -- 首先指定考試年份;
先去除所有需要的數(shù)據(jù),用Excel打開,按考試類別排序,這是為了區(qū)分開期中和期末成績數(shù)據(jù),剪貼期末成績到一邊,如下視頻操作:
接下來我們就可以利用VLOOKUP函數(shù)來將期末成績對接到期中成績后,如下視頻操作:
如何把其他的也貼過來呢,這里我們需要對函數(shù)里傳的參數(shù)修改,我們需要明確的是我們想把A列所有學(xué)號在H:M這個區(qū)域?qū)?yīng)的語文數(shù)學(xué)英語成績拼接到期中成績后,所以A列是不變的,搜索區(qū)域是不變的,Excel里在元素前加上美元符$就表示不變,例如:
我的理解:Lookup_value: 表示被匹配值,就是我們?nèi)e的地方取數(shù)的Table_array:匹配值和搜索區(qū)域,匹配值可以與被匹配值匹配,然后通過Col_index_num取出在搜索區(qū)域內(nèi)自己想要的值Col_index_num:自己想要的數(shù)值在搜索區(qū)域的位置,第幾列Range_lookup: False表示精確匹配最后,如果你看上面還不理解的話,我們看下Excel官方對VLOOKUP這個函數(shù)解釋:$A1??--?表示A列不變,行可變$B$1??--?表B列和行號1都不變

◆?◆?◆ ?◆?◆
長按二維碼關(guān)注我們
數(shù)據(jù)森麟公眾號的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關(guān)于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關(guān)內(nèi)容,還沒有加入的小伙伴可以掃描下方管理員二維碼,進(jìn)群前一定要關(guān)注公眾號奧,關(guān)注后讓管理員幫忙拉進(jìn)群,期待大家的加入。
管理員二維碼:
