Chào các bác, em là dân văn phòng, dạo này sếp giao cho em một task khá đau đầu là tổng hợp số liệu từ 5-7 file Excel báo cáo hàng tuần của các phòng ban khác nhau. Mỗi file lại có cấu trúc cột hơi khác một chút, nhiều lúc sai sót số liệu lắm ạ.
Sau một thời gian vật lộn, em có tìm hiểu và áp dụng Python để giải quyết vấn đề này. Thật sự là tiết kiệm được rất nhiều thời gian và giảm thiểu sai sót đáng kể.
Em xin chia sẻ lại cách làm cơ bản cho mọi người tham khảo nhé:
- Bước 1: Đọc dữ liệu từ các file Excel
Sử dụng thư việnpandasđể đọc từng file Excel vào các DataFrame khác nhau. - Bước 2: Chuẩn hóa cấu trúc dữ liệu
Với những cột có tên khác nhau nhưng cùng ý nghĩa, ta sẽ đổi tên cho thống nhất. Các cột không cần thiết thì loại bỏ. - Bước 3: Ghép các DataFrame
Dùng hàmpd.concatđể ghép các DataFrame đã chuẩn hóa thành một DataFrame lớn duy nhất. - Bước 4: Xử lý và tổng hợp
Thực hiện các phép tính tổng hợp, lọc, nhóm theo yêu cầu của báo cáo cuối cùng. - Bước 5: Xuất báo cáo
Lưu DataFrame kết quả ra một file Excel mới.
Ví dụ đoạn code đọc file và ghép đơn giản:
import pandas as pd
file1 = 'bao_cao_phong_a.xlsx'
file2 = 'bao_cao_phong_b.xlsx'
df1 = pd.read_excel(file1)
df2 = pd.read_excel(file2)
# Giả sử cần đổi tên cột 'Doanh thu' thành 'Revenue'
df1.rename(columns={'Doanh thu': 'Revenue'}, inplace=True)
df2.rename(columns={'Doanh thu': 'Revenue'}, inplace=True)
df_tong_hop = pd.concat([df1, df2], ignore_index=True)
print(df_tong_hop.head())
Cách này giúp em tự động hóa gần như hoàn toàn việc tổng hợp báo cáo hàng tuần. Mọi người có thể tùy biến thêm nhiều chức năng khác tùy vào yêu cầu cụ thể của mình. Có bác nào có kinh nghiệm hay cách làm hay hơn thì chia sẻ cho em học hỏi với ạ!