🟪 BẢNG COHORT TRÔNG NHƯ THẾ NÀO?
Mỗi hàng là một nhóm khách mua lần đầu cùng tháng, mỗi cột là số tháng sau đó. Ô càng đậm, khách càng quay lại nhiều.
| Cohort | Tháng 0 | Tháng 1 | Tháng 2 | Tháng 3 | Tháng 4 | Tháng 5 |
|---|---|---|---|---|---|---|
| 05/2026 | 100% | |||||
| 06/2026 | 100% | |||||
| 07/2026 | 100% | |||||
| 08/2026 | 100% | |||||
| 09/2026 | 100% | |||||
| 10/2026 | 100% |
Thấp Cao · Số liệu chi tiết ở phần ví dụ.
Tháng này cửa hàng có 1.000 khách mua hàng, tháng trước cũng 1.000 khách. Nhìn báo cáo tổng, mọi thứ có vẻ ổn định. Nhưng nếu 800 người trong số đó là khách mới, nghĩa là gần như toàn bộ khách cũ đã không quay lại, và doanh nghiệp đang phải chạy quảng cáo liên tục chỉ để giữ nguyên con số.
Phân tích cohort giúp Data Analyst nhìn thấy điều mà con số tổng che mất: trong nhóm khách mua lần đầu vào một tháng, bao nhiêu phần trăm còn quay lại sau 1, 2, 3 tháng. Bài viết này giải thích cohort là gì, cách đọc bảng cohort, hướng dẫn làm bằng SQL và Excel, và cách biến kết quả thành hành động giữ khách.
📂 NỘI DUNG BÀI VIẾT
Phân tích cohort là gì?
Cohort là một nhóm người có chung một đặc điểm trong cùng một khoảng thời gian. Phân tích cohort (cohort analysis) là cách theo dõi hành vi của từng nhóm này theo thời gian, thay vì gộp tất cả khách hàng vào một con số chung.
Ví dụ: “Cohort tháng 5” là tất cả khách có đơn hàng đầu tiên trong tháng 5. Ta theo dõi nhóm này: tháng 6 còn bao nhiêu người mua, tháng 7 còn bao nhiêu, và cứ thế tiếp tục. Làm tương tự với cohort tháng 6, tháng 7… rồi đặt các nhóm cạnh nhau để so sánh.
2 cách chia cohort phổ biến
📅 Cohort theo thời điểm gia nhập
nhóm khách theo tháng mua đơn đầu tiên, tháng đăng ký tài khoản hay tháng nhập học. Đây là cách dùng nhiều nhất và là nội dung chính của bài viết này.
🎯 Cohort theo hành vi
nhóm khách theo hành động đã làm, ví dụ khách dùng mã giảm giá ở đơn đầu và khách mua giá gốc, hoặc khách đến từ Facebook và khách đến từ Google.
Cohort khác gì phân tích RFM?
Phân tích RFM chấm điểm từng khách hàng tại một thời điểm để biết nên chăm sóc ai. Phân tích cohort theo dõi từng nhóm khách qua nhiều tháng để biết việc giữ khách đang tốt lên hay xấu đi. Hai cách bổ sung cho nhau: cohort cho biết có vấn đề, RFM cho biết cần gọi cho ai.
Tỷ lệ giữ chân và cách đọc bảng cohort
Công thức tỷ lệ giữ chân
Tỷ lệ giữ chân (retention rate) của một cohort ở tháng thứ N là:
Tỷ lệ giữ chân tháng N =
Số khách của cohort có mua trong tháng N
Số khách ban đầu của cohort
“Tháng 0” là tháng khách mua lần đầu, nên luôn bằng 100%. “Tháng 1” là tháng ngay sau đó, bất kể đó là tháng 6 hay tháng 9 trên lịch. Nhờ đếm theo “số tháng kể từ lần mua đầu”, các cohort khác nhau mới so sánh được với nhau.
Bảng cohort hình tam giác
Kết quả thường được trình bày thành một bảng: mỗi hàng là một cohort, mỗi cột là số tháng kể từ lần mua đầu. Cohort càng mới càng có ít tháng để theo dõi, nên bảng có hình tam giác. Bạn đọc bảng theo 3 hướng:
→
Đọc theo hàng
một cohort rơi rụng nhanh hay chậm qua từng tháng.
↓ QUAN TRỌNG NHẤT
Đọc theo cột
các cohort mới giữ khách tốt hơn hay kém hơn cohort cũ ở cùng mốc thời gian. Đây là cách đọc quan trọng nhất để đánh giá một thay đổi có hiệu quả hay không.
↘
Đọc theo đường chéo
các ô nằm trên cùng một đường chéo rơi vào cùng một tháng trên lịch. Nếu cả đường chéo cùng giảm, nhiều khả năng có sự kiện chung trong tháng đó, như website lỗi hay hết hàng.
Ví dụ: Bảng cohort 6 tháng của một cửa hàng online
Dưới đây là dữ liệu mẫu của một cửa hàng online từ tháng 5 đến tháng 10/2026, tổng cộng 1.150 khách mua lần đầu. Giả định: tháng 7 cửa hàng chạy đợt giảm giá lớn, và từ tháng 8 bắt đầu gửi chuỗi email chăm sóc sau đơn đầu tiên.
| Cohort | Khách mới | Tháng 0 | Tháng 1 1 | Tháng 2 | Tháng 3 | Tháng 4 | Tháng 5 |
|---|---|---|---|---|---|---|---|
| 05/2026 | 200 | 100% | 26,0% | 19,0% | 17,0% 2 | 15,5% | 15,0% |
| 06/2026 | 180 | 100% | 25,0% | 18,9% | 16,7% | 15,6% | |
| 07/2026 3 | 250 | 100% | 22,0% | 15,2% | 13,2% | ||
| 08/2026 | 160 | 100% | 31,3% 4 | 25,0% | |||
| 09/2026 | 170 | 100% | 31,8% 4 | ||||
| 10/2026 | 190 | 100% |
Thấp Cao. Các số 1 đến 4 ứng với 4 nhận xét bên dưới. Kéo ngang bảng trên điện thoại.
4 điều đọc được từ bảng
Rơi rụng mạnh nhất ở tháng 1. Ở các cohort tháng 5 đến tháng 7, chỉ 22–26% khách quay lại ngay tháng sau. Ba phần tư khách mới mua một lần rồi đi.
Đường cong phẳng dần từ tháng 3. Cohort tháng 5 giữ ở mức 15–17% từ tháng 3 trở đi. Đây là nhóm khách đã thành thói quen, nền tảng cho doanh thu ổn định.
Đợt giảm giá tháng 7 kéo nhiều khách nhất nhưng giữ kém nhất. Cohort tháng 7 có 250 khách mới nhưng tháng 1 chỉ còn 22,0% và tháng 3 còn 13,2%, thấp hơn hai cohort trước. Khách đến vì giá rẻ thường ít trung thành.
Chuỗi email từ tháng 8 có tín hiệu tốt. Đọc theo cột Tháng 1, cohort tháng 8 và tháng 9 đạt khoảng 31–32%, cao hơn hẳn mức 22–26% trước đó. Cần theo dõi thêm vài tháng để chắc chắn hiệu quả kéo dài.
💡 Nếu chỉ nhìn tổng số khách theo tháng, bạn sẽ thấy tháng 7 là tháng “thành công nhất” và bỏ lỡ cả hai phát hiện số 3 và số 4.
Cách làm phân tích cohort bằng SQL và Excel
BƯỚC 1/4
Bước 1: Chuẩn bị dữ liệu
Bạn chỉ cần một bảng đơn hàng có 3 cột: mã khách hàng, ngày đặt hàng và trạng thái đơn. Hãy loại đơn hủy, đơn test và đảm bảo mỗi khách chỉ có một mã duy nhất. Nếu cùng một người có hai mã, họ sẽ bị đếm là hai khách mới và tỷ lệ giữ chân bị thấp đi.
BƯỚC 2/4
Bước 2: Tính cohort bằng SQL
Câu truy vấn dưới đây viết cho SQL Server, làm 3 việc: tìm tháng mua đầu tiên của mỗi khách, tính mỗi đơn rơi vào tháng thứ mấy kể từ lần đầu, rồi đếm số khách và tỷ lệ giữ chân.
Kết quả là bảng dạng dài: mỗi dòng là một cặp (cohort, tháng thứ N). Bạn đưa bảng này vào Excel hoặc Power BI và xoay thành dạng tam giác. Dòng tháng 0 luôn lớn nhất trong mỗi cohort, nên MAX(COUNT(*)) OVER (...) chính là số khách ban đầu.
BƯỚC 3/4
Bước 3: Làm bằng Excel nếu chưa dùng SQL
Trong sheet đơn hàng (cột A là mã khách, cột B là ngày đặt), thêm 3 cột phụ rồi kéo công thức xuống hết dữ liệu:
Sau đó tạo PivotTable và tick Add this data to the Data Model: kéo ThangCohort vào Rows, ThangThu vào Columns, MaKH vào Values và chọn Distinct Count. Cuối cùng chọn Show Values As → % Of, trường cơ sở là ThangThu, mục cơ sở là 0 để đổi số khách thành tỷ lệ giữ chân.
BƯỚC 4/4
Bước 4: Tô màu để đọc nhanh
Dùng Conditional Formatting → Color Scales cho vùng tỷ lệ (bỏ cột tháng 0). Ô càng đậm là giữ khách càng tốt, nhờ đó bạn nhìn ra ngay cohort nào bất thường mà không cần đọc từng con số. Trong Power BI, visual Matrix kết hợp định dạng màu nền theo giá trị cho kết quả tương tự.
📅 Muốn thành thạo SQL, Excel và Power BI để tự làm những phân tích như thế này? Xem lịch khai giảng mới nhất tại MCNA.
Từ bảng cohort đến hành động giữ khách
Bảng cohort chỉ có giá trị khi dẫn đến một quyết định. Mỗi kiểu kết quả thường gợi ý một hướng xử lý:
Kết hợp với RFM để biết cần chăm ai
Cohort cho biết vấn đề nằm ở đâu, còn RFM cho biết khách cụ thể nào cần xử lý. Ví dụ với cửa hàng trên: lọc ra khách thuộc cohort tháng 7 đang nằm trong nhóm “Khách mới” hoặc “Đã ngủ đông” của phân tích RFM, rồi gửi họ chuỗi email mà cohort tháng 8 đang nhận. Sau vài tháng, bảng cohort sẽ cho biết hành động đó có kéo được khách quay lại hay không.
Để theo dõi đều đặn, hãy đưa tỷ lệ giữ chân tháng 1 và tháng 3 vào bộ chỉ số của bạn. Bài KPI là gì? Data Analyst xây dựng KPI như thế nào hướng dẫn cách biến một chỉ số thành KPI có mục tiêu rõ ràng.
5 sai lầm thường gặp khi phân tích cohort
⚠ Kết luận từ cohort quá nhỏ
một cohort chỉ vài chục khách có thể dao động vài phần trăm chỉ vì ngẫu nhiên. Luôn hiển thị cột số khách mới bên cạnh tỷ lệ.
⚠ So sánh ô chưa đủ thời gian
cohort tháng 10 mới đi được nửa tháng 1, nếu đưa vào bảng sẽ trông như giữ khách rất kém. Chỉ tính những tháng đã kết thúc.
⚠ Đếm số đơn thay vì số khách
một khách mua 3 đơn trong tháng vẫn chỉ là 1 khách quay lại. Hãy dùng đếm khác nhau (DISTINCT) theo mã khách.
⚠ Chọn chu kỳ không hợp với sản phẩm
với sản phẩm mua theo năm như bảo hiểm hay khóa học dài hạn, cohort theo tháng sẽ gần như toàn số 0. Hãy chọn tuần, tháng hay quý theo nhịp mua thực tế của khách.
⚠ Dừng lại ở bảng số
một bảng cohort đẹp nhưng không kèm nhận định và đề xuất sẽ không giúp ai ra quyết định. Luôn viết 2–3 điều rút ra và việc nên làm tiếp theo.
Câu hỏi thường gặp về phân tích cohort
?
Tỷ lệ giữ chân bao nhiêu là tốt?
Không có một con số chung cho mọi ngành. Siêu thị hay ứng dụng dùng hằng ngày có tỷ lệ cao hơn nhiều so với cửa hàng nội thất. Cách so sánh hữu ích nhất là so với chính mình: cohort mới có giữ khách tốt hơn cohort cũ hay không.
?
Cần bao nhiêu dữ liệu để làm phân tích cohort?
Ít nhất 6 tháng dữ liệu đơn hàng để có vài cohort đủ dài mà so sánh. Nếu mỗi tháng chỉ có vài chục khách mới, hãy gộp theo quý để mỗi cohort đủ lớn.
?
Retention và churn khác nhau thế nào?
Hai chỉ số là hai mặt của một đồng xu. Retention là tỷ lệ khách còn quay lại, churn là tỷ lệ khách đã rời đi. Với một cohort ở cùng mốc thời gian, churn bằng 100% trừ retention.
?
Có thể làm phân tích cohort trong Power BI không?
Có. Bạn có thể đưa kết quả câu SQL ở trên vào Power BI rồi dùng visual Matrix, hoặc tự tính cột tháng cohort trong Power Query và viết measure DAX đếm khách. Cách đầu tiên đơn giản hơn cho người mới.
?
Ngoài tỷ lệ giữ chân, bảng cohort còn đo được gì?
Bạn có thể thay số khách bằng doanh thu để có bảng doanh thu theo cohort, hoặc cộng dồn doanh thu để ước tính giá trị vòng đời khách hàng (CLV) theo từng nhóm.
Kết luận
Phân tích cohort giúp bạn trả lời một câu hỏi mà báo cáo tổng không trả lời được: khách hàng có ở lại hay không. Chỉ với mã khách và ngày đặt hàng, một câu SQL hoặc vài cột Excel cùng một PivotTable đã đủ để tạo bảng cohort đầu tiên.
Hãy đọc bảng theo cột để đánh giá hiệu quả mỗi thay đổi, kết hợp với RFM để biết cần chăm sóc ai, và cập nhật bảng mỗi tháng để thấy việc giữ khách đang tốt lên hay xấu đi.
Nếu bạn muốn học bài bản SQL, Excel, Power BI và cách phân tích khách hàng trong doanh nghiệp, các khóa học tại MCNA Technology School sẽ đồng hành cùng bạn. Xem lịch khai giảng mới nhất. Đọc thêm: Phân tích RFM là gì? và Dashboard không phải để đẹp.

