Menu

Tự động hóa việc nhóm dữ liệu theo khoảng thời gian bằng Power Query

Giáp Thùy Hiển 01/07/2026 08:25 578 lượt xem 3 trả lời

Chào các bác, hôm nay em muốn chia sẻ một mẹo nhỏ mà em vừa vọc vạch ra bằng Power Query để nhóm dữ liệu theo khoảng thời gian. Cái này hay dùng khi mình muốn xem số lượng giao dịch theo tuần, theo tháng, hay theo quý chẳng hạn.

Tình huống của em là có một file log ghi lại thời gian truy cập của người dùng, và em muốn biết mỗi ngày có bao nhiêu lượt truy cập. Làm thủ công thì hơi mệt, mà lại không linh hoạt nếu muốn đổi sang nhóm theo tuần hay tháng.

Với Power Query, việc này trở nên đơn giản lắm:

  • Đầu tiên, các bác cứ load dữ liệu vào Power Query như bình thường.
  • Trong cửa sổ Power Query Editor, chọn cột chứa dữ liệu thời gian (ngày, giờ).
  • Vào tab Add Column, chọn Date & Time -> Time Span -> Days (hoặc các tùy chọn khác như Weeks, Months, Quarters tùy nhu cầu).
  • Thao tác này sẽ tạo ra một cột mới đếm số ngày từ một mốc nào đó.
  • Tiếp theo, vào tab Transform, chọn Group By.
  • Ở mục Group by, chọn cột thời gian ban đầu.
  • Ở mục New column name, đặt tên cho cột đếm số lượng (ví dụ: Số lượt truy cập).
  • Ở mục Operation, chọn Count Rows.
  • Nhấn OK.

Kết quả là mình sẽ có một bảng tổng hợp số lượng theo từng ngày. Nếu muốn nhóm theo tuần hay tháng, các bác chỉ cần chọn các tùy chọn tương ứng ở bước 3 là xong. Rất tiện lợi phải không ạ?

Có bác nào có cách nào hay hơn hoặc gặp khó khăn gì khi áp dụng không, chia sẻ cho em với nhé!

2

Hay quá bạn ơi! Cách nhóm theo khoảng thời gian bằng Power Query này đúng là cứu cánh cho nhiều trường hợp. Mình cũng hay gặp tình huống tương tự, nhất là khi làm báo cáo doanh thu theo kỳ.

Cái vụ gom nhóm trực tiếp bằng Date.StartOfMonth hay Date.StartOfWeek của bạn cũng rất hay, tiết kiệm được kha khá bước. Mình cũng thường áp dụng cách này. Để mình chia sẻ thêm một chút, đôi khi mình còn kết hợp thêm Date.EndOfMonth hoặc Date.EndOfQuarter để tạo ra các cột "Start" và "End" riêng biệt, sau đó dùng Table.Group với điều kiện phức tạp hơn một chút để linh hoạt hơn nữa. Tuy nhiên, cách của bạn thì trực quan và dễ hiểu hơn nhiều.

Cảm ơn bạn đã chia sẻ nhé! Rất mong có thêm nhiều bài viết hay từ bạn.

5

Chào mọi người,

Cái vụ nhóm dữ liệu theo khoảng thời gian này đúng là tiện thật. Mình cũng hay dùng Power Query để làm mấy báo cáo kiểu này, nhất là khi cần tổng hợp dữ liệu theo tháng hoặc quý.

Mình có một cách khác cũng khá hay, đó là dùng Date.StartOfMonth hoặc Date.StartOfWeek để gom nhóm trực tiếp. Sau đó, mình chỉ cần nhóm theo cột ngày đã được chuẩn hóa này là xong. Cách này cho phép mình dễ dàng tùy chỉnh khoảng thời gian nhóm mà không cần tạo thêm nhiều bước trung gian.

Không biết bạn có thử cách này chưa, hoặc bạn có cách nào khác chia sẻ không? Rất muốn học hỏi thêm!

2

Tuyệt vời! Chia sẻ của bạn về việc tự động hóa nhóm dữ liệu theo khoảng thời gian bằng Power Query rất hữu ích. Mình cũng thường xuyên dùng Power Query cho các báo cáo tương tự, đặc biệt là khi làm việc với dữ liệu chuỗi thời gian.

Cách bạn đề cập đến việc sử dụng các hàm như Date.StartOfMonth hoặc Date.StartOfWeek để gom nhóm trực tiếp là một mẹo rất hay, giúp giảm thiểu các bước trung gian và làm cho quy trình trở nên gọn gàng hơn.

Mình cũng có một thắc mắc nhỏ: Bạn có gặp trường hợp nào mà việc nhóm theo khoảng thời gian bằng cách này không hiệu quả hoặc cần xử lý thêm bước nào không? Chia sẻ thêm kinh nghiệm của bạn nhé!

2

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

Đăng nhập Đăng ký