Hàm đánh số thứ tự trong Excel hay dùng nhất là ROW (lấy số hàng), SEQUENCE (tạo dãy số tự động), COUNTA (bỏ qua dòng trống) và SUBTOTAL (giữ số liên tục khi lọc). Dùng hàm thay cho kéo chuột giúp số thứ tự tự cập nhật khi thêm, xoá hay lọc dòng.
Ví dụ nhanh: =ROW()-1 → 1 khi đặt ở ô D2 (hàng 2 trừ 1 hàng tiêu đề)
Nguồn: tài liệu hàm ROW, SEQUENCE, COUNTA, SUBTOTAL, TEXT của Microsoft, đối chiếu ngày 07/10/2026. Áp dụng cho Excel cho Microsoft 365, Excel 2021, 2019, 2016 (SEQUENCE chỉ có trên Microsoft 365, Excel 2021).

Cú pháp các hàm đánh số thứ tự
Mỗi hàm hợp với một tình huống: ROW cho bảng liền mạch, COUNTA cho bảng có dòng trống, SUBTOTAL cho bảng hay lọc, SEQUENCE để sinh nhanh cả dãy.
=ROW([reference]) =SEQUENCE(rows; [columns]; [start]; [step]) =COUNTA($B$2:B2) =SUBTOTAL(3; $B$2:B2)
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
reference (ROW) |
Không | Ô cần lấy số hàng; bỏ trống thì lấy hàng của chính ô chứa công thức. |
rows; columns (SEQUENCE) |
Có rows | Số dòng, số cột của dãy. |
start; step (SEQUENCE) |
Không | Số bắt đầu và bước nhảy, mặc định đều là 1. |
$A$2:A2 |
Có | Vùng mở rộng dần: đầu cố định bằng dấu $, cuối thay đổi khi sao chép công thức xuống. |
Ví dụ 1: Đánh số bằng ROW
Bảng ở A1:B6 (dòng 4 để trống). Đặt =ROW()-1 ở D2 rồi kéo xuống: số tự đánh lại khi xoá hoặc chèn dòng, nhưng vẫn đánh cả dòng trống.
| A | B | |
|---|---|---|
| 1 | Họ tên | Phòng |
| 2 | An | KD |
| 3 | Bình | KT |
| 4 | ||
| 5 | Chi | KD |
| 6 | Dũng | KT |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| D2 | =ROW()-1 |
1 | Hàng 2 trừ 1 |
| D4 | =ROW()-1 |
3 | Dòng trống vẫn được đánh số |
| D6 | =ROW()-1 |
5 | Hàng 6 trừ 1 |
Ví dụ 2: Bỏ qua dòng trống bằng COUNTA
COUNTA đếm số ô có dữ liệu từ đầu bảng tới dòng hiện tại; IF để trống số thứ tự khi tên trống.
| A | B | |
|---|---|---|
| 1 | Họ tên | Phòng |
| 2 | An | KD |
| 3 | Bình | KT |
| 4 | ||
| 5 | Chi | KD |
| 6 | Dũng | KT |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| D2 | =IF(A2="";"";COUNTA($A$2:A2)) |
1 | An |
| D4 | =IF(A4="";"";COUNTA($A$2:A4)) |
Dòng trống | |
| D5 | =IF(A5="";"";COUNTA($A$2:A5)) |
3 | Chi là người thứ 3 |
| D6 | =IF(A6="";"";COUNTA($A$2:A6)) |
4 | Dũng |

Ví dụ 3: Giữ số liên tục khi lọc bằng SUBTOTAL
SUBTOTAL với mã 3 (đếm như COUNTA) chỉ đếm dòng đang hiện. Lọc riêng phòng KT thì Bình và Dũng được đánh 1 và 2; khi chưa lọc kết quả như dưới.
| A | B | |
|---|---|---|
| 1 | Họ tên | Phòng |
| 2 | An | KD |
| 3 | Bình | KT |
| 4 | ||
| 5 | Chi | KD |
| 6 | Dũng | KT |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| D2 | =SUBTOTAL(3;$A$2:A2) |
1 | An |
| D5 | =SUBTOTAL(3;$A$2:A5) |
3 | Chi |
| D6 | =SUBTOTAL(3;$A$2:A6) |
4 | Dũng |
Ví dụ 4: Đánh số theo từng nhóm và thêm tiền tố
COUNTIF đếm số lần phòng xuất hiện tới dòng hiện tại; TEXT tạo mã dạng NV001.
| A | B | |
|---|---|---|
| 1 | Họ tên | Phòng |
| 2 | An | KD |
| 3 | Bình | KT |
| 4 | ||
| 5 | Chi | KD |
| 6 | Dũng | KT |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| D5 | =COUNTIF($B$2:B5;B5) |
2 | Chi là người thứ 2 của phòng KD |
| D6 | =COUNTIF($B$2:B6;B6) |
2 | Dũng là người thứ 2 của phòng KT |
| E2 | ="NV"&TEXT(ROW()-1;"000") |
NV001 | Mã nhân viên |
Ví dụ 5: Tạo cả dãy số bằng SEQUENCE
Trên Excel cho Microsoft 365 và Excel 2021, một công thức ở D2 tự tràn xuống D2:D6.
| A | B | |
|---|---|---|
| 1 | Họ tên | Phòng |
| 2 | An | KD |
| 3 | Bình | KT |
| 4 | ||
| 5 | Chi | KD |
| 6 | Dũng | KT |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| D2 | =SEQUENCE(5) |
1 | Tràn ra 1, 2, 3, 4, 5 |
| F2 | =SEQUENCE(3;1;10;10) |
10 | Tràn ra 10, 20, 30 |
Lỗi thường gặp khi đánh số thứ tự
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
Số bị lặp hoặc nhảy sai |
Quên dấu $ ở đầu vùng, ví dụ COUNTA(A2:A2). | Viết $A$2:A2 để đầu vùng cố định. |
Số không liên tục sau khi lọc |
Dùng ROW hoặc COUNTA, hai hàm này đếm cả dòng ẩn. | Đổi sang SUBTOTAL(3; …). |
#SPILL! |
Vùng SEQUENCE tràn xuống đang có dữ liệu. | Xoá dữ liệu ở vùng tràn. |
#NAME? với SEQUENCE |
Excel 2019 trở xuống chưa có SEQUENCE. | Dùng ROW hoặc kéo Fill Handle. |
Đánh số thứ tự không cần hàm
- Gõ 1, 2 ở hai ô đầu, chọn cả hai ô rồi kéo nút vuông góc dưới phải (Fill Handle) xuống.
- Gõ 1 ở ô đầu, nhấn giữ Ctrl rồi kéo Fill Handle.
- Home > Fill > Series để đánh dãy dài, chọn bước nhảy và giá trị dừng.
Cách này nhanh nhưng số không tự cập nhật khi xoá dòng. Xem thêm hàm đếm có điều kiện ở bài hàm COUNTIF, SUMIF; danh sách hàm ở bài các hàm trong Excel.
Tải file Excel mẫu
File mẫu gồm 5 trang tính, mỗi trang là một ví dụ ở trên với công thức để sẵn; Excel tự tính lại khi mở. Tải file Excel mẫu (.xlsx).
Câu hỏi thường gặp
Có nên đánh số bằng ROW khi bảng không bắt đầu ở hàng 2?
Được, trừ đi số hàng phía trên: bảng bắt đầu ở hàng 5 thì dùng =ROW()-4.
SUBTOTAL mã 3 và 103 khác gì nhau?
Mã 3 bỏ qua dòng bị lọc; mã 103 bỏ qua cả dòng ẩn thủ công (Hide).
Làm sao đánh số giảm dần?
Dùng =SEQUENCE(5;1;5;-1) cho dãy 5, 4, 3, 2, 1.
Xem thêm các thủ thuật khác tại ITGO (thủ thuật máy tính & Excel).



