Công ty gửi cùng một mã giảm giá 20% cho toàn bộ 10.000 khách hàng. Khách VIP vốn sẵn sàng mua giá gốc nay được giảm không cần thiết, còn khách đã bỏ đi nửa năm thì chẳng mở email. Phân tích RFM giải quyết đúng vấn đề này: chỉ với ba con số từ lịch sử mua hàng, bạn chia khách thành từng nhóm và biết ai cần tri ân, ai cần giữ chân, ai cần đánh thức. Bài viết hướng dẫn từng bước với dữ liệu mẫu, kèm câu SQL và công thức Excel.
🗺 6 NHÓM KHÁCH HÀNG SAU KHI PHÂN TÍCH RFM
📂 NỘI DUNG BÀI VIẾT
RFM là gì?
RFM là phương pháp phân nhóm khách hàng dựa trên hành vi mua hàng, gồm ba chỉ số:
Điểm mạnh của RFM là đơn giản: chỉ cần bảng đơn hàng có ba cột mã khách, ngày mua và số tiền. Không cần khảo sát, không cần mô hình phức tạp, phù hợp với bán lẻ, thương mại điện tử, chuỗi nhà hàng hay trung tâm đào tạo.
Cách tính RFM từng bước
BƯỚC 1/3
Bước 1: Chuẩn bị dữ liệu và chọn mốc thời gian
Bạn cần bảng đơn hàng có ít nhất các cột MaDon, MaKH, NgayDat, DoanhThu. Chọn hai mốc: ngày phân tích (ví dụ 31/10/2026) và kỳ xem xét (ví dụ 12 tháng gần nhất). Loại đơn hủy, đơn trả hàng và đơn nội bộ trước khi tính, nếu không điểm sẽ bị sai.
BƯỚC 2/3
Bước 2: Tính R, F, M và chấm điểm bằng SQL
Câu SQL dưới đây (SQL Server) tính ba chỉ số cho từng khách rồi dùng NTILE(5) chia khách thành 5 phần bằng nhau để chấm điểm từ 1 đến 5. Điểm 5 luôn là tốt nhất: mua gần nhất, mua nhiều nhất, chi nhiều nhất.
BƯỚC 3/3
Bước 3: Cách làm tương tự trên Excel
Nếu dữ liệu nằm trong Excel, tạo bảng KhachHang với mỗi dòng một mã khách (cột A), ô H1 chứa ngày phân tích, bảng đơn hàng đặt tên DonHang với mỗi dòng một đơn:
Thay vùng dòng 2 đến 11 bằng toàn bộ danh sách khách của bạn. Với dữ liệu mẫu bên dưới, cách Excel và cách SQL cho cùng một kết quả.
Kết quả với 10 khách hàng mẫu
Dữ liệu minh họa, ngày phân tích 31/10/2026, chi tiêu tính bằng triệu đồng:
| Mã KH | Mua gần nhất | Recency (ngày) | Số đơn | Chi tiêu | R | F | M | Mã RFM | Nhóm |
|---|---|---|---|---|---|---|---|---|---|
| KH01 | 28/10/2026 | 3 | 18 | 42,5 | 5 | 5 | 5 | 555 | 👑 Khách VIP |
| KH02 | 20/10/2026 | 11 | 9 | 18,2 | 4 | 3 | 3 | 433 | 🌿 Cần nuôi dưỡng |
| KH03 | 15/06/2026 | 138 | 12 | 30,1 | 2 | 4 | 4 | 244 | ⚠ Có nguy cơ rời bỏ |
| KH04 | 25/10/2026 | 6 | 3 | 4,8 | 4 | 2 | 2 | 422 | 🌱 Khách mới |
| KH05 | 02/03/2026 | 243 | 1 | 0,9 | 1 | 1 | 1 | 111 | 💤 Đã ngủ đông |
| KH06 | 30/09/2026 | 31 | 11 | 20,4 | 3 | 4 | 4 | 344 | ★ Khách trung thành |
| KH07 | 30/10/2026 | 1 | 2 | 2,6 | 5 | 1 | 1 | 511 | 🌱 Khách mới |
| KH08 | 10/05/2026 | 174 | 15 | 35,0 | 1 | 5 | 5 | 155 | ⚠ Có nguy cơ rời bỏ |
| KH09 | 12/08/2026 | 80 | 4 | 6,3 | 2 | 2 | 2 | 222 | 💤 Đã ngủ đông |
| KH10 | 05/10/2026 | 26 | 7 | 14,9 | 3 | 3 | 3 | 333 | 🌿 Cần nuôi dưỡng |
Màu điểm: 12345 thấp → cao. Cột Nhóm áp dụng quy tắc ở phần tiếp theo. Kéo ngang bảng trên điện thoại.
Phân nhóm khách hàng từ điểm RFM
Với 3 điểm từ 1 đến 5, có tới 125 tổ hợp, quá nhiều để hành động. Cách thực tế là gom thành vài nhóm dễ hiểu. Bộ quy tắc dưới đây xét từ trên xuống, khách khớp quy tắc nào trước thì vào nhóm đó:
👑 Khách VIP
R ≥ 4, F ≥ 4, M ≥ 4
Mua gần, mua nhiều, chi nhiều
Khách mẫu: KH01
★ Khách trung thành
R ≥ 3, F ≥ 4
Mua đều đặn, vẫn còn quay lại
Khách mẫu: KH06
🌱 Khách mới
R ≥ 4, F ≤ 2
Vừa mua nhưng mới mua ít lần
Khách mẫu: KH04KH07
⚠ Có nguy cơ rời bỏ
R ≤ 2, F ≥ 3
Từng mua nhiều nhưng lâu rồi không quay lại
Khách mẫu: KH03KH08
💤 Đã ngủ đông
R ≤ 2, F ≤ 2
Mua ít và đã lâu không mua
Khách mẫu: KH05KH09
🌿 Cần nuôi dưỡng
Các trường hợp còn lại
Mức trung bình, có thể lên hoặc xuống
Khách mẫu: KH02KH10
Ngưỡng trong bảng là gợi ý để bắt đầu. Mỗi doanh nghiệp nên điều chỉnh theo chu kỳ mua hàng của mình: khách siêu thị có thể mua mỗi tuần, còn khách mua điện máy có khi cả năm mới quay lại.
Chăm sóc đúng người: hành động cho từng nhóm
65,1
triệu đồng
đang có nguy cơ mất
Điểm mấu chốt: nhóm Có nguy cơ rời bỏ thường đáng ưu tiên nhất. Trong dữ liệu mẫu, KH03 và KH08 đã chi tổng cộng 65,1 triệu đồng, nhiều hơn cả nhóm khách mới và nhóm ngủ đông cộng lại (14,6 triệu đồng), nhưng đã 4–6 tháng chưa quay lại.
Lưu ý và sai lầm thường gặp
⚠ Chọn kỳ xem xét không hợp chu kỳ mua
với sản phẩm mua theo năm, kỳ 3 tháng sẽ xếp gần hết khách vào nhóm ngủ đông.
⚠ Quên loại đơn hủy và trả hàng
làm F và M cao hơn thực tế.
⚠ Một khách có nhiều mã
cùng số điện thoại nhưng hai mã khách sẽ bị tính thành hai người. Hãy làm sạch và gộp mã trước.
⚠ Chỉ tính một lần rồi để đó
khách di chuyển giữa các nhóm theo thời gian. Tính lại hằng tháng và theo dõi ai vừa rơi từ VIP xuống nhóm nguy cơ.
Làm RFM trong Power BI
Khi đã có câu SQL hoặc bảng Excel, bạn có thể đưa kết quả vào Power BI để cả đội theo dõi: một biểu đồ cột số khách và doanh thu theo từng nhóm, một bảng danh sách khách “Có nguy cơ rời bỏ” để đội chăm sóc gọi điện, và biểu đồ đường theo dõi số khách VIP qua từng tháng. Nếu chạy SQL trên máy chủ, hãy đặt lịch làm mới dữ liệu để nhóm khách luôn cập nhật. Nguyên tắc thiết kế xem thêm bài Dashboard không phải để đẹp.
📅 Muốn học phân tích khách hàng bài bản với SQL và Power BI? Xem lịch khai giảng tháng 10/2026 của MCNA để chọn lớp Data Analyst phù hợp.
Câu hỏi thường gặp
?
Cần bao nhiêu khách hàng thì mới làm RFM được?
Ví dụ trong bài chỉ có 10 khách để dễ theo dõi. Trên thực tế, RFM có ý nghĩa khi bạn có từ vài trăm khách trở lên, để mỗi mức điểm có đủ người và các nhóm không quá nhỏ để lên chiến dịch riêng.
?
Nên chấm điểm 1–5 hay 1–3?
Thang 1–5 chi tiết hơn và phổ biến nhất. Nếu ít khách hoặc cần báo cáo đơn giản, thang 1–3 (thấp, trung bình, cao) vẫn dùng tốt. Chỉ cần đổi NTILE(5) thành NTILE(3) và điều chỉnh quy tắc phân nhóm tương ứng.
?
Ba chỉ số R, F, M có quan trọng ngang nhau không?
Không nhất thiết. Với đa số doanh nghiệp, R là tín hiệu quan trọng nhất vì cho biết khách còn “sống” hay không. Vì vậy các quy tắc phân nhóm trong bài đều xét R trước. Ngành có giá trị đơn chênh lệch lớn có thể ưu tiên M hơn.
?
Bao lâu nên tính lại RFM một lần?
Phổ biến là mỗi tháng một lần. Bán lẻ có tần suất mua cao có thể tính hằng tuần. Quan trọng hơn tần suất là việc lưu lại kết quả mỗi kỳ để thấy khách đang chuyển từ nhóm nào sang nhóm nào.
?
RFM khác gì phân cụm bằng machine learning?
RFM dùng quy tắc rõ ràng do bạn đặt, dễ giải thích cho đội kinh doanh và làm được ngay trên Excel hay SQL. Phân cụm như K-Means tự tìm nhóm từ dữ liệu và có thể dùng thêm nhiều biến, nhưng khó giải thích hơn. Với người mới, hãy bắt đầu bằng RFM.
Kết luận
Phân tích RFM biến bảng đơn hàng thành danh sách hành động: ai là khách VIP cần tri ân, ai đang có nguy cơ rời bỏ cần gọi ngay, ai là khách mới cần một lý do để quay lại. Chỉ với một câu SQL hoặc vài công thức Excel, bạn đã có thể ngừng gửi cùng một ưu đãi cho tất cả và bắt đầu chăm sóc đúng người, đúng cách.
Nếu bạn muốn học bài bản cách xử lý, phân tích dữ liệu và tự động hóa với AI, các khóa học tại MCNA Technology School sẽ đồng hành cùng bạn. Đọc thêm: KPI là gì? Data Analyst xây dựng KPI như thế nào, Dashboard không phải để đẹp và Prompt cho Data Analyst.
👉 Xem lịch khai giảng tháng 10/2026: Power BI, SQL, Python, AI – MCNA

