Tự Động Hóa Việc Lọc và Sắp Xếp Dữ Liệu Trong Excel Với Python

Hướng dẫn cực chi tiết – cầm tay chỉ việc – giúp bạn xử lý dữ liệu nhanh gấp 10 lần Excel

1. Giới Thiệu: Vì Sao Cần Tự Động Hóa Lọc & Sắp Xếp Excel Bằng Python?

Trong công việc hằng ngày, đặc biệt là:

  • Kế toán – tổng hợp doanh thu, lọc theo tháng
  • Nhân sự – lọc danh sách nhân viên nghỉ việc, mới vào
  • Sale – lọc khách hàng theo khu vực, theo hạng
  • Trợ lý văn phòng – sắp xếp danh sách theo ngày tạo, theo số tiền

… bạn phải lọc – sort – lọc – sort liên tục.

Nhưng làm bằng tay trong Excel có nhược điểm:

❌ Mất thời gian
❌ Dễ sai sót
❌ Mỗi lần cập nhật file phải lọc lại từ đầu
❌ Không thể chạy lặp theo lịch (cron job)

👉 Python giải quyết toàn bộ:

✔ Lọc tự động
✔ Sắp xếp theo nhiều tiêu chí
✔ Xuất ra file Excel sạch đẹp
✔ Chạy lại bao nhiêu lần cũng được
✔ Tích hợp vào quy trình báo cáo tuần/tháng


2. Chuẩn Bị Môi Trường

Bạn cài thư viện cần thiết:

pip install pandas openpyxl
  • pandas → xử lý dữ liệu nhanh hơn Excel rất nhiều
  • openpyxl → ghi kết quả ra file Excel

3. Dữ Liệu Mẫu Sử Dụng Trong Bài

Giả sử bạn có file Excel:

NhanSu.xlsx

MaNVHoTenPhongBanNgayVaoLuongTrangThai
NV01Trần Văn AHR2023-01-1012000000Đang làm
NV02Nguyễn Thị BSales2022-11-0115000000Nghỉ việc
NV03Lê Quốc CIT2023-02-1818000000Đang làm

4. Cầm Tay Chỉ Việc: Lọc Dữ Liệu Trong Excel Bằng Python

📌 Ví dụ 1 – Lọc nhân viên đang làm việc

import pandas as pd

df = pd.read_excel("NhanSu.xlsx")

df_danglam = df[df["TrangThai"] == "Đang làm"]

df_danglam.to_excel("NhanVien_DangLam.xlsx", index=False)

Giải thích:

  • df[df["TrangThai"] == "Đang làm"] → chỉ lấy những dòng có trạng thái Đang Làm
  • to_excel() → xuất ra file mới

📌 Ví dụ 2 – Lọc nhân viên lương > 15 triệu

df_luongcao = df[df["Luong"] > 15000000]
df_luongcao.to_excel("NhanVien_LuongCao.xlsx", index=False)

📌 Ví dụ 3 – Lọc theo nhiều điều kiện cùng lúc

Lấy nhân viên phòng Sales & đang làm:

df_sales_active = df[
    (df["PhongBan"] == "Sales") &
    (df["TrangThai"] == "Đang làm")
]

df_sales_active.to_excel("NhanVien_Sales_DangLam.xlsx", index=False)

Giải thích:
Dùng & (AND) và | (OR) để kết hợp điều kiện như Excel nâng cao.


5. Cầm Tay Chỉ Việc: Sắp Xếp Dữ Liệu (Sort) Bằng Python

📌 Ví dụ 1 – Sắp xếp theo lương giảm dần

df_sorted = df.sort_values(by="Luong", ascending=False)
df_sorted.to_excel("NhanVien_SortLuong.xlsx", index=False)

📌 Ví dụ 2 – Sort theo 2 tiêu chí: Phòng ban → Lương giảm dần

df_sort_multi = df.sort_values(
    by=["PhongBan", "Luong"],
    ascending=[True, False]
)

df_sort_multi.to_excel("NhanVien_SortPhongBan_Luong.xlsx", index=False)

Ý nghĩa:

  • Sort theo PhòngBan từ A → Z
  • Trong mỗi phòng ban → sort lương cao xuống thấp

📌 Ví dụ 3 – Sort theo ngày vào làm (date)

df["NgayVao"] = pd.to_datetime(df["NgayVao"])

df_sort_date = df.sort_values(by="NgayVao")

df_sort_date.to_excel("NhanVien_SortNgayVao.xlsx", index=False)

6. Tự Động Hóa Toàn Bộ Quy Trình (Script Hoàn Chỉnh)

Đây là script đầy đủ: lọc + sort + xuất file.

Bạn chỉ cần chạy 1 lần → 5 file Excel tự tạo.

import pandas as pd

df = pd.read_excel("NhanSu.xlsx")

# Lọc nhân viên đang làm
df1 = df[df["TrangThai"] == "Đang làm"]

# Lọc lương cao
df2 = df[df["Luong"] > 15000000]

# Lọc Sales đang làm
df3 = df[(df["PhongBan"] == "Sales") & (df["TrangThai"] == "Đang làm")]

# Sắp xếp theo lương giảm
df4 = df.sort_values(by="Luong", ascending=False)

# Sắp xếp 2 điều kiện
df5 = df.sort_values(by=["PhongBan", "Luong"], ascending=[True, False])

# Xuất file
df1.to_excel("1_NhanVien_DangLam.xlsx", index=False)
df2.to_excel("2_NhanVien_LuongCao.xlsx", index=False)
df3.to_excel("3_NhanVien_Sales.xlsx", index=False)
df4.to_excel("4_Sort_Luong.xlsx", index=False)
df5.to_excel("5_Sort_PhongBan_Luong.xlsx", index=False)

7. Ứng Dụng Thực Tế Cho Dân Văn Phòng

✔ Nhân sự (HR)

  • Lọc nhân viên mới vào trong tháng
  • Lọc nhân viên nghỉ việc
  • Sort theo thâm niên, theo phòng ban

✔ Kế toán

  • Lọc giao dịch > 10 triệu
  • Sort theo doanh thu giảm dần
  • Tự động hóa báo cáo tháng

✔ Sale – Marketing

  • Lọc khách hàng theo khu vực
  • Lọc khách VIP
  • Sắp xếp theo doanh số

✔ Trợ lý – Văn phòng

  • Lọc danh sách theo ngày tạo
  • Sort theo mức độ ưu tiên
  • Tạo bảng tổng hợp nhanh

8. Kết Luận

Việc lọc và sắp xếp dữ liệu bằng Python không chỉ giúp bạn:

  • Tiết kiệm hàng giờ mỗi tuần
  • Giảm sai sót
  • Tự động hóa báo cáo định kỳ
  • Làm chủ dữ liệu thay vì bị Excel “hành”

… mà còn giúp bạn nâng cấp kỹ năng văn phòng lên tầm chuyên nghiệp.

Scroll to Top