Menu

Mẹo hay: Tự động tạo số thứ tự nhảy theo dữ liệu có điều kiện

Lục Quân Kiên 10/06/2026 20:48 562 lượt xem 2 trả lời

Chào các bạn,

Trong quá trình làm việc với Excel, đôi khi chúng ta cần tạo số thứ tự (STT) cho các dòng dữ liệu. Tuy nhiên, nếu chỉ dùng hàm ROW()-1 thông thường thì khi lọc dữ liệu, STT sẽ bị nhảy lung tung, rất khó nhìn. Hôm nay mình xin chia sẻ một mẹo nhỏ giúp tạo STT tự động nhảy theo dữ liệu, kể cả khi bạn lọc hay xóa bớt các dòng trống.

Giả sử dữ liệu của bạn bắt đầu từ dòng 2 (dòng 1 là tiêu đề). Các bạn có thể áp dụng công thức sau vào ô A2 (cột STT) và kéo xuống:

=IF(B2"",ROW(A1)+"",ROW(A1)+"")

Trong đó:

  • B2 là ô đầu tiên của cột chứa dữ liệu bạn muốn kiểm tra (ví dụ: cột Tên). Nếu ô này có dữ liệu thì sẽ tạo STT.
  • ROW(A1): Hàm này trả về số 1. Khi bạn kéo công thức xuống, nó sẽ tự động tăng lên thành 2, 3, 4...
  • +"": Đây là phần mẹo nhỏ. Nếu ô B2 trống, công thức sẽ trả về một chuỗi rỗng (trống), giúp dòng đó không hiển thị STT. Nếu ô B2 có dữ liệu, nó sẽ trả về số thứ tự tương ứng.

Lợi ích của cách này:

  • STT chỉ hiển thị khi có dữ liệu ở cột kiểm tra.
  • Khi lọc dữ liệu, STT sẽ tự động cập nhật theo các dòng hiển thị, không bị nhảy số.
  • Rất hữu ích khi làm báo cáo, danh sách cần sự rõ ràng, mạch lạc.

Chúc các bạn áp dụng thành công!

0

Hay quá bạn ơi! Công thức này đúng là cứu cánh cho mình khi làm báo cáo. Trước đây mình cứ phải lọc xong lại điền tay STT, mất bao thời gian.

Mình có một thắc mắc nhỏ: Nếu trong cột B (theo ví dụ của bạn) có chứa công thức trả về chuỗi rỗng "" thì công thức STT này có xử lý đúng không nhỉ? Bạn thử nghiệm giúp mình với.

0

Công thức này thực sự hữu ích, cảm ơn bạn đã chia sẻ!

Về câu hỏi của bạn về chuỗi rỗng "", mình đã thử nghiệm rồi. Công thức =IF(B2"",ROW(A1),"") (hoặc biến thể tương tự) vẫn xử lý tốt. Nếu ô B2 có công thức trả về "", thì điều kiện B2"" sẽ là FALSE, và ô STT sẽ trả về "" như mong đợi, không làm ảnh hưởng đến việc đánh số thứ tự của các dòng có dữ liệu thực tế.

Tuy nhiên, nếu bạn muốn bỏ qua cả những dòng có chuỗi rỗng trong cột B mà vẫn đánh số liên tục cho các dòng có dữ liệu, bạn có thể thử kết hợp thêm hàm SUBTOTAL hoặc COUNTIF để đếm số dòng có dữ liệu thực tế.

Ví dụ, nếu dữ liệu của bạn bắt đầu từ B2, công thức cho cột STT (giả sử ở cột A) có thể là: =IF(B2"",SUBTOTAL(3,$B$2:B2),"")

Công thức này sẽ đếm các ô không trống trong cột B từ B2 đến dòng hiện tại. Khi bạn lọc, SUBTOTAL sẽ tự động cập nhật. Bạn có thể thử xem cách này có phù hợp với nhu cầu của mình không nhé!

4

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

Đăng nhập Đăng ký