Python中也可以寫Excel中的“Vlookup”函數(shù)?太牛逼了吧!
點(diǎn)擊上方“數(shù)據(jù)管道”,選擇“置頂星標(biāo)”公眾號
干貨福利,第一時(shí)間送達(dá)

Vlookup函數(shù),可以算是一個(gè)數(shù)據(jù)專員必須要會使用的基本函數(shù)了,確實(shí)很好用。但是你可能會注意到,Excel一旦數(shù)據(jù)量過大,打開都費(fèi)勁了,何況打開后,你還要輸入公式計(jì)算,就更費(fèi)勁了,此時(shí)你有沒有想到過被稱作“萬金油”的Python,他好像啥都可以做,是不是很牛逼?對于Excel來說的大數(shù)據(jù)量,但是對于Python來說,應(yīng)該是小菜一碟。今天我就帶著大家對比學(xué)習(xí)一下,怎么分別在Excel和Python中使用Vlookup函數(shù)。
數(shù)據(jù)源介紹
如圖所示,有一個(gè)“vlookup.xlsx”文件,“A1:F11”是我們的數(shù)據(jù)源區(qū)域,“K1:L5”是我們的查找源區(qū)域。我們的目的就是要在數(shù)據(jù)源區(qū)域的G列加一列數(shù)據(jù),查找出不同類型下名稱表示。

Vlookup函數(shù)介紹
這個(gè)函數(shù)我想大家應(yīng)該都會,大家應(yīng)該也不需要我介紹的太詳細(xì),因此我就簡單的為大家介紹一下vlookup函數(shù)的語法。
參數(shù)說明:vlookup(待查找目標(biāo), 查找區(qū)域, 匹配值所在的列, 精確匹配OR模糊查找); 用一句通俗的話來說明vlookup函數(shù)的用法:針對每一個(gè)待查找目標(biāo),它就能從指定的查找區(qū)域中,查找返回想要查找到的值。
Excel中使用Vlookup函數(shù)
針對上述提到的數(shù)據(jù)源,了解Vlookup函數(shù)的語法后,下面來看看如何在Excel中使用Vlookup函數(shù)。

觀察上圖:首先,我們在G1單元格新增了一個(gè)“名稱”列。接著,在G2單元格我們寫了一個(gè)vlookup公式,E2表示每一個(gè)待查找值,K1:L5表示待查找區(qū)域,我們使用F3快捷鍵將這個(gè)區(qū)域變?yōu)榱?strong>絕對引用,因?yàn)槲覀兊牟檎覅^(qū)域就是這一個(gè)固定范圍,2表示待返回值在查找區(qū)域中所在的列數(shù),0表示精確匹配。最后,使用填充柄下拉填充即可。
Python中使用Vlookup函數(shù)
在Python中利用openpyxl庫,就可以完成公式的填充。因此在使用openpyxl之前,需要使用pip install openpyxl安裝好這個(gè)庫。
from?openpyxl?import?load_workbook?
workbook?=?load_workbook("vlookup.xlsx")
sheet?=?workbook["Sheet1"]
sheet["G1"]?=?"名稱"
for?i?in?range(2,sheet.max_row+1):?
????sheet[f"G{i}"]?=?f'=VLOOKUP(E{i},$K$1:$L$5,2,0)'
workbook.save(filename?=?"vllokup1.xlsx")
在openpyxl中,讀取已有的Excel文件,使用到的是load_workbook類,因此需要提前導(dǎo)入這個(gè)類。接著,實(shí)例化load_workbook("vlookup.xlsx")對象,得到一個(gè)工作簿對象。然后,使用workbook["Sheet1"]激活該工作簿中的Sheet1表,表示我們要針對這個(gè)表進(jìn)行操作。完成上述操作后,下面就可以進(jìn)行vlookup公式的填寫了。
首先,我們利用sheet["G1"] = "名稱"給G1單元格增加了一個(gè)表頭。然后寫了一個(gè)循環(huán),循環(huán)第2行到最后一行,針對每一個(gè)G列單元格,我們寫入上述vlookup公式。最后記得保存一下即可。
