Chào mọi người,
Dạo này mình hay phải làm báo cáo phân tích dữ liệu bán hàng, mà có những lúc cần nhóm các giá trị liên tục (ví dụ: doanh thu, tuổi khách hàng) vào từng khoảng để dễ nhìn hơn. Ví dụ, thay vì liệt kê chi tiết từng mức doanh thu 10.000, 11.000, 12.000..., mình muốn nhóm thành các khoảng như 0-5.000, 5.001-10.000, 10.001-15.000...
Mình biết có cách dùng Frequency hoặc PivotTable để làm cái này, nhưng hôm nay mình muốn chia sẻ một cách khác cũng khá hay, đặc biệt khi bạn muốn tạo một cột mới để phân loại dữ liệu gốc mà không cần dùng PivotTable.
Cách này mình gọi là 'Binning' (hay còn gọi là phân tổ, phân nhóm theo khoảng giá trị).
Cách thực hiện:
- Đầu tiên, bạn cần xác định các ngưỡng (boundaries) cho các khoảng giá trị của mình. Ví dụ, nếu muốn chia theo các khoảng như trên, bạn có thể tạo một danh sách các ngưỡng: 5000, 10000, 15000, ...
- Tiếp theo, sử dụng hàm
VLOOKUPhoặcMATCHkết hợpINDEX. Cách mình hay dùng làVLOOKUPvới tham số match_type là 1 (hoặc TRUE).
Giả sử dữ liệu doanh thu của bạn ở cột A (từ A2 trở đi), và các ngưỡng bạn tạo ở cột D (D2, D3, D4...). Bạn có thể dùng công thức sau ở cột B (từ B2):
=VLOOKUP(A2, $D$2:$D$10, 1, TRUE)Lưu ý:
- Cột ngưỡng (cột D) phải được sắp xếp theo thứ tự tăng dần.
- Tham số cuối cùng là
TRUE(hoặc 1) cho phépVLOOKUPtìm kiếm giá trị gần đúng. Nó sẽ trả về giá trị ngưỡng lớn nhất mà nhỏ hơn hoặc bằng giá trị dò tìm.
Nếu muốn hiển thị rõ hơn các khoảng, bạn có thể kết hợp thêm hàm IF hoặc tạo một bảng tra cứu khác. Ví dụ, nếu ngưỡng là 10000, bạn có thể muốn hiển thị là '0-10000' thay vì chỉ '10000'.
Cách này giúp mình làm báo cáo nhanh hơn rất nhiều, không cần tạo các cột phụ phức tạp. Mọi người có cách nào hay hơn hoặc có gặp khó khăn gì với kiểu xử lý dữ liệu này không, cùng thảo luận nhé!