Menu

Tự động điền STT theo nhóm dữ liệu trong Excel

Triệu Đạt Thương 14/06/2026 01:42 349 lượt xem 3 trả lời

Chào các anh chị em trong diễn đàn,

Mình đang làm báo cáo và gặp một vấn đề hơi khó chịu. Mình muốn đánh số thứ tự (STT) cho các dòng dữ liệu, nhưng lại muốn STT này được reset lại theo từng nhóm. Ví dụ, mình có danh sách các mặt hàng được bán ở nhiều cửa hàng khác nhau. Mình muốn STT cho mặt hàng A ở Cửa hàng 1 là 1, 2, 3... rồi khi sang mặt hàng A ở Cửa hàng 2 thì STT lại bắt đầu lại từ 1.

Mình đã thử dùng hàm ROW() nhưng nó chỉ đánh số tuần tự thôi, không reset theo nhóm. Mình cũng thử tìm hiểu về IF kết hợp COUNTIF nhưng chưa ra được công thức ưng ý.

Có anh chị em nào có kinh nghiệm xử lý trường hợp này không ạ? Có thể chia sẻ giúp mình một công thức Excel hoặc một mẹo nhỏ để tự động điền STT theo nhóm như vậy không? Mình xin cảm ơn!

Ví dụ mình có dữ liệu như sau:

Cửa hàng | Mặt hàng | STT (mong muốn)
-------------------------------------
Cửa hàng A | Táo | 1
Cửa hàng A | Cam | 2
Cửa hàng A | Táo | 3
Cửa hàng B | Táo | 1
Cửa hàng B | Chuối | 2
Cửa hàng C | Cam | 1
Cửa hàng C | Táo | 2
Cửa hàng C | Táo | 3

Rất mong nhận được sự giúp đỡ từ mọi người!

1

Chào bạn,

Vấn đề này mình cũng hay gặp khi làm báo cáo phân loại. Thay vì dùng ROW() thì bạn thử dùng hàm IF kết hợp với COUNTA xem sao.

Giả sử cột nhóm của bạn là cột A, bắt đầu từ dòng 2. Bạn có thể nhập công thức vào ô STT (cột B, dòng 2) như sau:

=IF(A2=A1, B1+1, 1)

Sau đó kéo công thức xuống. Công thức này sẽ kiểm tra nếu nhóm ở dòng hiện tại giống với nhóm ở dòng trên thì cộng STT lên 1, còn nếu khác nhóm thì reset STT về 1.

Cách này khá đơn giản và hiệu quả, hy vọng giúp ích cho bạn!

5

Công thức bạn đưa ra khá hay đó! Tuy nhiên, nếu danh sách dữ liệu có thể bị sắp xếp lại hoặc có dòng trống xen kẽ thì cách này có thể không ổn định lắm.

Mình có một cách khác dùng SUMPRODUCT kết hợp với điều kiện nhóm, nó sẽ reset STT mỗi khi gặp một nhóm mới, dù dữ liệu có bị xáo trộn hay không.

Ví dụ, nếu cột nhóm là A (từ A2 trở đi), bạn có thể thử công thức này ở ô STT (ví dụ B2):

``excel =SUMPRODUCT(--($A$2:A2=A2),--($A$2:A2"")) ``

Kéo công thức này xuống, nó sẽ tự động đếm số lần xuất hiện của nhóm hiện tại từ đầu danh sách đến dòng đó.

Không biết bạn đã thử cách nào khác chưa, chia sẻ thêm để mọi người cùng học hỏi nhé!

0

Thử dùng hàm SUBTOTAL xem sao bạn ơi! Cách này khá gọn và linh hoạt.

Giả sử cột nhóm của bạn là cột A, bắt đầu từ dòng 2. Bạn có thể nhập công thức này vào ô STT (ví dụ B2):

=SUBTOTAL(3, $A$2:A2)

Sau đó kéo xuống. Hàm SUBTOTAL(3, ...) sẽ đếm các ô không trống trong phạm vi. Khi bạn lọc dữ liệu theo nhóm, nó sẽ tự động đếm lại STT cho từng nhóm thôi.

Chúc bạn thành công!

Kinh nghiệm của bạn về SUMPRODUCT khá hay đó, đặc biệt là khi dữ liệu không được sắp xếp cố định.

Mình xin bổ sung thêm một cách dùng INDEX kết hợp MATCH cũng rất hiệu quả trong trường hợp này, đặc biệt là khi bạn cần một công thức động hơn.

Nếu cột nhóm là A (từ A2) và cột STT là B (từ B2), bạn có thể thử công thức này:

=IF(A2=A1, B1+1, 1)

Hoặc để xử lý trường hợp dữ liệu bị xáo trộn, có thể dùng công thức phức tạp hơn một chút với SUMPRODUCT như bạn đã chia sẻ. Tuy nhiên, nếu chỉ cần reset STT theo nhóm liền kề, công thức IF đơn giản kia là đủ.

Cảm ơn bạn đã chia sẻ!

2

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

Đăng nhập Đăng ký