如何用 Python 写 Excel 中 Vlookup 函数?

懵懂的女人 提交于 2021-02-09 10:04:30

作者 | 黄伟呢

出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0)

头图 |  CSDN 下载自视觉中国

背景

Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用。但是你可能会注意到,Excel 一旦数据量过大,打开都费劲了,何况打开后,你还要输入公式计算,就更费劲了,此时你有没有想到过被称作“万金油”的 Python ,他好像啥都可以做,是不是很牛逼?对于Excel来说的大数据量,但是对于 Python 来说,应该是小菜一碟。今天我就带着大家对比学习一下,怎么分别在 Excel 和 Python 中使用 Vlookup 函数。

数据源介绍

如图所示,有一个“ vlookup.xlsx ”文件,“ A1:F11 ”是我们的数据源区域,“ K1:L5 ”是我们的查找源区域。我们的目的就是要在数据源区域的 G 列加一列数据,查找出不同类型下名称表示。

Vlookup函数介绍

这个函数我想大家应该都会,大家应该也不需要我介绍的太详细,因此我就简单的为大家介绍一下 vlookup 函数的语法。

  • 参数说明:vlookup (待查找目标, 查找区域, 匹配值所在的列, 精确匹配 OR 模糊查找);

  • 用一句通俗的话来说明 vlookup 函数的用法:针对每一个待查找目标,它就能从指定的查找区域中,查找返回想要查找到的值。

Excel中使用Vlookup函数


针对上述提到的数据源,了解 Vlookup 函数的语法后,下面来看看如何在 Excel 中使用 Vlookup 函数。

观察上图:首先,我们在 G1 单元格新增了一个“名称”列。接着,在 G2 单元格我们写了一个 vlookup 公式,E2 表示每一个待查找值,K1:L5 表示待查找区域,我们使用 F3 快捷键将这个区域变为了绝对引用,因为我们的查找区域就是这一个固定范围,2 表示待返回值在查找区域中所在的列数,0 表示精确匹配。最后,使用填充柄下拉填充即可。

Python中使用Vlookup函数

在 Python 中利用 openpyxl 库,就可以完成公式的填充。因此在使用 openpyxl 之前,需要使用 pip install openpyxl 安装好这个库。

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 类,因此需要提前导入这个类。接着,实例化 load_workbook("vlookup.xlsx") 对象,得到一个工作簿对象。然后,使用 workbook["Sheet1"] 激活该工作簿中的 Sheet1 表,表示我们要针对这个表进行操作。完成上述操作后,下面就可以进行 vlookup 公式的填写了。

首先,我们利用 sheet["G1"] = "名称"给 G1 单元格增加了一个表头。然后写了一个循环,循环第2行到最后一行,针对每一个 G 列单元格,我们写入上述 vlookup 公式。最后记得保存一下即可。


更多精彩推荐
☞程序员删库被判 6 年,公司损失近亿,云原生时代如何打造安全防线?

☞腾讯回应 Wecom 是企业微信海外版;美国地方法院紧急叫停微信禁令;Vue 3 发布 | 极客头条
☞曾是谷歌程序员,抛下百万年薪创业,4 年成就 7 亿用户,今身价百亿!
☞首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms
☞Service Mesh 在超大规模场景下的落地挑战
☞比特币背后的技术,是否已成为科技领军代表?
点分享点点赞点在看
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!