Chào mọi người, mình là thành viên mới của diễn đàn. Dạo gần đây mình có làm một file báo cáo khá phức tạp, cần điền số thứ tự (STT) theo từng nhóm sản phẩm, nhưng có một điều kiện là nếu một nhóm sản phẩm có nhiều dòng dữ liệu liên tiếp nhau thì chỉ đánh STT 1 lần. Mình loay hoay mãi không biết làm sao cho hiệu quả.
Sau một hồi tìm hiểu và thử nghiệm, mình đã tìm ra một cách khá hay bằng cách kết hợp hàm IF và COUNTIF. Mình chia sẻ lên đây để mọi người tham khảo và nếu có cách nào tối ưu hơn thì cùng thảo luận nhé.
Giả sử dữ liệu của mình nằm ở cột A (Tên sản phẩm), mình muốn điền STT vào cột B. Công thức mình dùng là:
=IF(A2=A1, B1, IF(COUNTIF($A$2:A2, A2)=1, 1, B1+1))Giải thích một chút:
IF(A2=A1, B1, ...): Nếu tên sản phẩm ở dòng hiện tại giống dòng trên, thì giữ nguyên STT của dòng trên.IF(COUNTIF($A$2:A2, A2)=1, 1, B1+1): Nếu tên sản phẩm ở dòng hiện tại khác dòng trên, ta kiểm tra xem đây có phải lần đầu tiên tên sản phẩm này xuất hiện không (sử dụngCOUNTIFđếm từ đầu danh sách đến dòng hiện tại). Nếu là lần đầu tiên (đếm = 1), thì đánh STT là 1. Ngược lại, thì lấy STT dòng trên cộng thêm 1.
Lưu ý là công thức này cần được điền từ dòng thứ 2 trở đi và cột B dòng đầu tiên phải được điền STT thủ công (ví dụ: 1).
Cách này giúp mình tự động điền STT theo nhóm rất hiệu quả, đỡ phải làm thủ công nhiều. Hy vọng nó hữu ích với các bạn!