VLOOKUP trong Python openpyxl

作者.  朱小五

来源.  快学Python

VLOOKUP函数大家应该都很熟悉吧,它可以帮我们根据指定的条件快速查找匹配出相应的结果,通常被用于核对、匹配多个表格之间的数据。与数据透视表,并称为数据er最常用的两大Excel功能。

那我们今天就聊聊,如何Python写Excel中的“Vlookup”函数?

如图所示,在“测试工资数据. xlsx”表格文件中有两个sheet,其中sheet1是我们的数据源区域,而sheet2存储的是待查找的员工姓名和工资。

在sheet2中,一列是员工姓名,一列是他们的对应工资。

vlookup函数就是在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。语法格式如下所示:

VLOOKUP [lookup_value, table_array, col_index_num, [range_lookup]]

一般是匹配条件容易记混,如果为FALSE或0,则返回精确匹配,如果找不到,则返回错误值 #N/A。如果 range_lookup 为TRUE或1,函数 VLOOKUP 将查找近似匹配值。

openpyxl

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

pip install openpyxl

在openpyxl中,读取已有的Excel文件,使用到的是load_workbook类,因此需要提前导入这个类。接着,实例化load_workbook["测试工资数据.xlsx"]对象,得到一个工作簿对象。

然后,使用workbook["Sheet2"]激活该工作簿中的Sheet2表,表示我们要针对这个表进行操作。完成上述操作后,下面就可以进行vlookup公式的填写了。

from openpyxl import load_workbook 

workbook = load_workbook["测试工资数据.xlsx"]
sheet = workbook["Sheet2"]

sheet["B1"] = "基本工资[Python]"
for i in range[2, sheet.max_row+1]: 
    sheet[f"B{i}"] = f'=VLOOKUP[A{i},Sheet1!A:B,2,FALSE]'
workbook.save[filename = "vlookup.xlsx"]

首先,我们利用

pip install openpyxl
0修改B1单元格位置的表头。然后通过for循环语句,循环第2行到最后一行,针对每一个B列单元格,我们都写入上述vlookup公式。

最后记得保存一下即可。

不过需要注意,Python操作Excel的优势在于处理大数据、或者重复性工作。在本次案例中,使用openpyxl库向Excel中写入Vlookup函数多少有点大材小用了。

经过openpyxl一番操作,如同庄周带净化。

gấu trúc

在这数据爆炸的时代,我们无时无刻不在和数据打交道。面对杂乱无章的数据Pandas 模块应运而生了,它提供了数据导入、数据清洗、数据处理、数据导出等一套流程方法,可以很方便地帮助我们自动整理数据[2]。

那么Excel中的这种常用函数,Pandas模块自然也是可以轻松搞定了。

在 Pandas 模块中,调用

pip install openpyxl
1方法,可以帮助我们实现数据连接。

在交互式环境中输入如下命令:

import pandas as pd
path = "测试工资数据.xlsx"
df_1 = pd.read_excel[path, sheet_name = 'Sheet1']
df_2 = pd.read_excel[path, sheet_name = 'Sheet2']

pd.merge[df_2["姓名"], df_1[["姓名", "基本工资"]], how="left", on="姓名"]

这样我们就用Python(

pip install openpyxl
2 +
pip install openpyxl
3)实现了Excel中的“Vlookup”函数。

往期回顾

“如今,99%以上的代码都是垃圾!”

Deepfake 技术换脸真假难辨!

当你不再是程序员,很多事会脱离掌控

7岁男童因下棋太快,被机器人夹断手指?

________số 8_______

导语: 本文主要介绍了关于Python基础之openpyxl如何实现vlookup函数的相关知识,包括vlookup和lookup的区别及使用,以及lookup-value这些编程知识,希望对大家有参考作用。

相信很多学习编程的人都对Vlookup功能不陌生。一些大量数据不方便在excel中处理,用Python可以轻松解决。下面介绍如何在openpyxl库中实现vlookup函数:



1. 数据源介绍

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



2. Vlookup函数介绍

这个函数我想大家应该都知道了,应该不需要我介绍的太详细了,所以我就简单的给大家介绍一下vlookup函数的语法。


  • 参数说明:

    vlookup

    [待查找目标, 查找区域, 匹配值所在的列, 精确匹配 OR 模糊查找];


  • 用一句通俗的话来说明 vlookup 函数的用法:针对每一个

    待查找目标

    ,它就能从指定的查找区域中,查找返回想要查找到的值。



3. Excel中使用Vlookup函数

对于上面提到的数据源,在了解了Vlookup函数的语法之后,我们来看看如何在Excel中使用Vlookup函数。


观察上图:首先,我们在

G1

单元格

新增了一个“名称


”列

。接着,在 G2 单元格我们写了一个 vlookup 公式,

E2

表示每一个待查找值,

K1. L5

表示待查找区域,我们使用 F3 快捷键将这个区域变为了

绝对引用

,因为我们的查找区域就是这一个固定范围,

2

表示待返回值在查找区域中所在的列数,

0

表示精确匹配。最后,使用填充柄下拉填充即可。



4. 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"]

对象,得到一个工作簿对象。然后,使用

sổ làm việc["Sheet1"]

激活该工作簿中的 Sheet1 表,表示我们要针对这个表进行操作。完成上述操作后,下面就可以进行 vlookup 公式的填写了。


首先,我们利用

sheet["G1"] = "名称"

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

通过上面用Python从openpyxl库中编写vlookup函数的例子,对vlookup函数有了进一步的了解。更多Python学习推荐:

Vlookup là thao tác dùng để gộp 2 bảng dữ liệu khác nhau dựa trên điều kiện nào đó giữa 2 bảng phải có ít nhất 1 thuộc tính [cột] chung. Sau khi thực hiện thao tác này, chúng tôi nhận được một bảng bao gồm tất cả dữ liệu từ cả hai bảng mà dữ liệu được khớp

Tạo VLookUps trên nhiều cột. Đây có vẻ là một bài viết dài, nhưng thực sự nhiệm vụ tạo VLookUp trên nhiều cột liên quan đến một VLookUp bình thường, được sửa đổi một chút và một hàng dữ liệu ẩn để giúp tăng tốc quá trình

=vlookup[B2,F. M,C2+2] Sau đó kéo phần này xuống các hàng của cột 'D' để điền vào các giá trị

Tạo hàm VLOOKUP trong python với mảng. Cả hai mảng đều có một khóa trong cột đầu tiên, khóa này là duy nhất và có thể được sử dụng để so khớp. Hai bảng bao gồm dữ liệu, đúng trong một bảng nhưng không đúng trong bảng kia

Hàm tra cứu [] trả về hàm "lập chỉ mục ưa thích" dựa trên nhãn cho DataFrame. Cho các mảng nhãn hàng và cột có độ dài bằng nhau, trả về một mảng các giá trị tương ứng với từng cặp [hàng, cột]

Ý tưởng cũng giống như vlookup. kết hợp hai bảng, dựa trên một cột được chia sẻ. Hai bảng ở đây là df1 và df2. Hai bảng ở đây là df1 và df2. Cột được chia sẻ là cột 'Tên'

Vlookup về cơ bản được sử dụng cho dữ liệu được sắp xếp theo chiều dọc. Vlookup là thao tác dùng để gộp 2 bảng dữ liệu khác nhau dựa trên điều kiện nào đó giữa 2 bảng phải có ít nhất 1 thuộc tính [cột] chung. Sau khi thực hiện thao tác này, chúng tôi nhận được một bảng bao gồm tất cả dữ liệu từ cả hai bảng mà dữ liệu được khớp

Hàm vlookup đơn giản. vlookup là gì? . Trong ví dụ này, chúng ta có hai bảng. Cột được chia sẻ là cột 'Tên'

vlookup lấy một chuỗi hoặc một danh sách làm đối số đầu tiên. Sau đó, nó lấy một tệp csv từ cùng thư mục với mảng bảng và sau đó là số chỉ mục cột để tra cứu. Tệp csv được mở sau mỗi lần gọi hàm để việc tra cứu danh sách hiệu quả hơn nhiều khi tra cứu nhiều thứ

Mô-đun openpyxl cho phép các chương trình Python của bạn đọc và sửa đổi các tệp bảng tính Excel. Ví dụ: bạn có thể có nhiệm vụ nhàm chán là sao chép một số dữ liệu nhất định từ một bảng tính và dán nó vào một bảng tính khác. Hoặc bạn có thể phải xem qua hàng nghìn hàng và chỉ chọn ra một số hàng để thực hiện các chỉnh sửa nhỏ dựa trên một số tiêu chí

Trong hướng dẫn từng bước này, bạn sẽ học cách xử lý bảng tính trong Python bằng gói openpyxl. Bạn sẽ học cách thao tác trên bảng tính Excel, trích xuất thông tin từ bảng tính, tạo bảng tính đơn giản hoặc phức tạp hơn, bao gồm thêm kiểu, biểu đồ, v.v.

Bảng tổng hợp¶. openpyxl cung cấp hỗ trợ đọc cho các bảng tổng hợp để chúng sẽ được lưu giữ trong các tệp hiện có. Thông số kỹ thuật cho các bảng tổng hợp, mặc dù mở rộng, nhưng không rõ ràng lắm và không có ý định rằng mã máy khách sẽ có thể tạo các bảng tổng hợp

Điều này sẽ di chuyển các ô trong phạm vi D4. F10 lên một hàng và hai cột bên phải. Các ô sẽ ghi đè lên bất kỳ ô hiện có nào. Nếu các ô chứa công thức, bạn có thể để openpyxl dịch những công thức này cho bạn, nhưng vì đây không phải lúc nào cũng là điều bạn muốn nên nó bị tắt theo mặc định

Thư viện OpenPyXl cho phép bạn xem từng ô của tệp và sao chép hoặc sửa đổi tệp đó bằng cách sử dụng openpyxl. bảng tính. bảng tính. phương thức ô []. Phương pháp này cho phép bạn truy cập từng ô theo hàng và cột dưới dạng giá trị số

Openpyxl là một thư viện Python sử dụng mà người ta có thể thực hiện nhiều thao tác trên các tệp excel như đọc, viết, các phép toán số học và vẽ biểu đồ. Hãy xem cách thực hiện các phép toán số học khác nhau bằng openpyxl

Ở đây, điều kiện sau khi đánh giá sẽ là true hoặc false. nếu câu lệnh chấp nhận các giá trị boolean – nếu giá trị là true thì nó sẽ thực thi khối câu lệnh bên dưới nó nếu không thì không. Chúng ta cũng có thể sử dụng điều kiện với dấu ngoặc ‘ [‘ ‘]’. Như chúng ta đã biết, python sử dụng thụt đầu dòng để xác định một khối

Hàm VLOOKUP tìm kiếm một giá trị trong cột đầu tiên của bảng hoặc phạm vi dữ liệu dựa trên loại khớp và trả về giá trị liên quan của nó từ hàng đó trong một cột được chỉ định dựa trên cột_chỉ_số_cột. NẾU giá trị được tìm thấy trong cột đó thì kết quả là nó trả về giá trị. Nếu không, nó sẽ trả về lỗi #NA

Về cơ bản, VLOOKUP bắt đầu ở đầu bảng và đi xuống từng hàng cho đến khi có giá trị nhỏ hơn hoặc bằng giá trị tra cứu. Nếu bảng của bạn không được sắp xếp theo thứ tự tăng dần, điều này có thể cho kết quả sai, vì công thức dừng xử lý các hàng ngay sau khi tìm thấy “khớp. ”

phạm vi trả về một danh sách để bắt đầu, vì vậy bạn cần nối chúng cùng với + hoặc sử dụng append[] hoặc extend[]. new_list = phạm vi [1,6] + phạm vi [15,20] hoặc. new_list = range[101,6284] mew_list. mở rộng[[8001,8003,8010]] mew_list. expand[range[10000,12322]] Ngoài ra, bạn có thể sử dụng itertools. chain[] như trong câu trả lời của Shawn Chin

Tên phạm vi VLOOKUP Tên là “Phạm vi được đặt tên” cho một phạm vi ô excel. Chúng tôi có thể cần tìm nạp dữ liệu từ một trang tính khác và để chọn mảng bảng, chúng tôi cần chuyển đến trang cụ thể đó và chọn phạm vi, điều này rất tốn thời gian và bực bội

Vlookup có thể được sử dụng theo yêu cầu của bạn. Bạn có thể khớp tất cả các chi tiết cho một bản ghi và bạn có thể khớp tất cả các chi tiết hoặc một phần chi tiết cho nhiều bản ghi. Nó cũng có thể tra cứu các giá trị từ các trang tính và sổ làm việc khác. Bạn có thể đóng băng phạm vi dữ liệu nguồn bằng cách nhấn F4

Openpyxl có thể viết XLS không?

Openpyxl là thư viện Python được sử dụng để đọc từ tệp Excel hoặc ghi vào tệp Excel .

Bạn có thể VLOOKUP một ô có xác thực dữ liệu không?

Hàm VLOOKUP trong Excel có thể trở nên tương tác và mạnh mẽ hơn khi áp dụng Xác thực dữ liệu [menu/danh sách thả xuống] làm Lookup_Value . Vì vậy, khi bạn thay đổi lựa chọn của mình từ danh sách thả xuống, giá trị VLOOKUP của Excel cũng thay đổi.

Openpyxl có thể đọc Xlsx không?

openpyxl là một thư viện Python để đọc/ghi các tệp Excel 2010 xlsx/xlsm/xltx/xltm . Nó được sinh ra từ việc thiếu thư viện hiện có để đọc/ghi nguyên bản từ Python định dạng Office Open XML.

Chủ Đề