Chào mọi người,
Dạo này mình đang làm việc với dữ liệu log thời gian truy cập của người dùng, và có một yêu cầu khá hay là cần tổng hợp lại số lượng truy cập theo từng giờ trong ngày. Dữ liệu gốc của mình có dạng như sau:
Timestamp, UserID
2023-10-27 08:15:32, UserA
2023-10-27 08:45:10, UserB
2023-10-27 09:05:55, UserA
2023-10-27 09:30:00, UserC
2023-10-27 10:01:15, UserB
...Mục tiêu là tạo ra một bảng tổng hợp cho biết mỗi giờ trong ngày có bao nhiêu lượt truy cập. Ví dụ:
Hour, Count
08, 2
09, 2
10, 1
...Ban đầu mình định dùng hàm hoặc pivot table, nhưng với lượng dữ liệu lớn thì hơi chậm. Sau đó mình nghĩ ngay đến Power Query và nó xử lý cực kỳ nhanh chóng.
Cách làm của mình như sau:
- Bước 1: Load dữ liệu vào Power Query.
- Bước 2: Chọn cột Timestamp, vào tab Add Column -> Date & Time -> Hour -> Hour. Thao tác này sẽ trích xuất phần giờ từ Timestamp.
- Bước 3: Chọn cột Hour vừa tạo, vào tab Home -> Group By.
- Bước 4: Thiết lập Group By như sau:
- Group by: Hour
- New column name: Count
- Operation: Count Rows
- Bước 5: Đóng và tải kết quả.
Kết quả là mình có ngay bảng tổng hợp theo giờ rất nhanh. Cách này rất hữu ích khi cần phân tích hành vi người dùng theo khung giờ trong ngày. Có anh em nào có cách làm khác hoặc mẹo nào hay hơn thì chia sẻ cho mình với nhé!