Menu

Tự động hóa việc sắp xếp dữ liệu Excel theo nhiều tiêu chí bằng Python

Vũ Đạt Sơn 03/06/2026 09:17 347 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình có làm việc nhiều với Python để xử hóa dữ liệu Excel. Có một tác vụ mình thường xuyên phải làm là sắp xếp dữ liệu theo nhiều tiêu chí khác nhau, ví dụ như sắp xếp theo ngày tháng giảm dần, sau đó theo tên sản phẩm tăng dần, rồi lại theo số lượng giảm dần. Làm thủ công trên Excel thì hơi mất thời gian, đặc biệt với file dung lượng lớn.

Mình đã thử dùng Python để tự động hóa việc này và thấy khá hiệu quả. Dưới đây là đoạn code cơ bản mình hay dùng:

import pandas as pd

# Giả sử bạn có một DataFrame tên là df
# df = pd.read_excel('your_file.xlsx')

# Sắp xếp theo nhiều tiêu chí
# Ví dụ: Sắp xếp theo cột 'Ngay' giảm dần, rồi đến cột 'SanPham' tăng dần, cuối cùng là 'SoLuong' giảm dần
df_sorted = df.sort_values(by=['Ngay', 'SanPham', 'SoLuong'], ascending=[False, True, False])

# Lưu kết quả ra file Excel mới
df_sorted.to_excel('sorted_data.xlsx', index=False)

Trong đó:

  • pd là thư viện pandas.
  • sort_values() là hàm dùng để sắp xếp.
  • by nhận vào một danh sách các cột cần sắp xếp.
  • ascending nhận vào một danh sách các giá trị boolean tương ứng với by để chỉ định sắp xếp tăng dần (True) hay giảm dần (False).

Cách này giúp mình tiết kiệm kha khá thời gian và đảm bảo tính chính xác khi xử lý dữ liệu. Mọi người có ai dùng Python để sắp xếp dữ liệu Excel theo cách khác không, chia sẻ thêm cho mình học hỏi với ạ!

4

Cái này hay nè! Mình cũng hay bị "ngán" vụ sắp xếp thủ công, nhất là khi có nhiều cột cần xét.

Đoạn code của bạn nhìn gọn quá, đúng là giải pháp hiệu quả cho file lớn. Mình có một thắc mắc nhỏ, nếu mình muốn sắp xếp theo một cột là ngày tháng, nhưng chỉ muốn lấy ngày gần nhất trong một khoảng thời gian nhất định thôi thì có cách nào xử lý bằng pandas không nhỉ?

Cảm ơn bạn đã chia sẻ!

4

Chào bạn,

Cảm ơn bạn đã chia sẻ đoạn code Python rất hữu ích để tự động hóa việc sắp xếp dữ liệu Excel. Đúng là khi làm việc với file lớn, thao tác thủ công trên Excel đôi khi rất mất thời gian.

Mình cũng hay dùng pandas để xử lý dữ liệu và đồng ý với bạn là việc này giúp tiết kiệm kha khá công sức. Bạn có thể chia sẻ thêm về các tiêu chí sắp xếp phức tạp hơn mà bạn đã từng áp dụng với đoạn code này không? Mình tò mò muốn biết thêm các trường hợp thực tế.

Chúc bạn có nhiều bài chia sẻ hay nữa!

3

Hay quá bạn ơi! Mình cũng đang tìm cách để "cai" dần mấy thao tác thủ công trên Excel, nhất là vụ sắp xếp dữ liệu này. Nhìn đoạn code của bạn thấy gọn gàng và dễ hiểu ghê.

Mình có một file báo cáo bán hàng khá lớn, muốn sắp xếp theo ngày (mới nhất lên đầu), rồi đến tổng tiền (cao nhất lên đầu), và cuối cùng là tên khách hàng (theo thứ tự ABC). Không biết với trường hợp này thì mình chỉ cần thay đổi các cột trong hàm sort_values của bạn là được hay cần thêm gì không nhỉ?

Cảm ơn bạn đã chia sẻ nhé!

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký