Có thể bạn quan tâm: Cách Tính Tổng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở Đầu
Trong công việc hàng ngày, Excel luôn là công cụ không thể thiếu đối với các nhân viên văn phòng, kế toán, nhà quản lý dự án và cả những người làm việc tự do. Một trong những thao tác phổ biến và cơ bản nhưng lại quan trọng trong Excel chính là đánh số thứ tự cho các dòng dữ liệu. Việc có một cột số thứ tự rõ ràng không chỉ giúp bạn dễ dàng tra cứu, sắp xếp, mà còn hỗ trợ trong việc tạo báo cáo, in ấn và chia sẻ dữ liệu với đồng nghiệp.
Bài viết này sẽ cung cấp cho bạn toàn bộ kiến thức cần thiết để đánh số thứ tự trong Excel một cách nhanh chóng, chính xác và linh hoạt, từ các cách đơn giản nhất cho người mới bắt đầu đến các phương pháp nâng cao cho người đã có kinh nghiệm.
Có thể bạn quan tâm: Cách Xuống Dòng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Tại Sao Cần Đánh Số Thứ Tự?
Trước khi đi vào chi tiết các phương pháp, chúng ta hãy cùng nhìn lại một số lợi ích thực tế khi áp dụng cột số thứ tự trong bảng tính:
- Dễ dàng định vị dữ liệu: Khi bảng có hàng trăm, thậm chí hàng nghìn dòng, việc biết vị trí chính xác của một bản ghi sẽ giúp tiết kiệm thời gian tìm kiếm.
- Hỗ trợ sắp xếp & lọc: Các công cụ sắp xếp và lọc trong Excel thường dựa vào cột thứ tự để duy trì thứ tự gốc của dữ liệu.
- Tạo báo cáo chuyên nghiệp: Khi xuất báo cáo ra PDF hoặc in ra, số thứ tự giúp người đọc dễ dàng tham chiếu.
- Giúp kiểm tra tính toàn vẹn: Khi nhập hoặc xóa dữ liệu, bạn có thể nhanh chóng phát hiện ra các dòng bị thiếu hoặc trùng lặp.
- Hỗ trợ công thức & tham chiếu: Nhiều công thức, như VLOOKUP, INDEX-MATCH, hoặc các hàm mảng, có thể dựa vào cột số thứ tự để thực hiện tra cứu chính xác.
Có thể bạn quan tâm: Chuyển File Pdf Sang Excel: Hướng Dẫn Chi Tiết, Công Cụ Hiệu Quả Và Mẹo Tối Ưu Nhất
2. Các Phương Pháp Đánh Số Thứ Tự Cơ Bản
2.1. Nhập Thủ Công
Đây là cách đơn giản nhất, thích hợp cho bảng dữ liệu nhỏ (dưới 20 dòng).
Cách thực hiện:
1. Chọn ô đầu tiên của cột muốn làm số thứ tự (ví dụ: A2).
2. Nhập số 1.
3. Di chuyển xuống ô A3, nhập số 2.
4. Chọn cả hai ô A2 và A3, kéo chuột xuống dưới (có dấu “+” ở góc dưới bên phải) tới vị trí cần đánh số.
Excel sẽ tự động tự động tăng dần dựa trên mẫu bạn đã tạo.
Lưu ý: Phương pháp này không thích hợp cho bảng dữ liệu lớn vì mất thời gian và dễ gây lỗi.
2.2. Sử Dụng Fill Handle (Kéo Động)
Nếu bạn chỉ muốn đánh số nhanh mà không muốn nhập từng số, hãy dùng tính năng Fill Handle:
- Nhập
1vào ô A2. - Nhập
2vào ô A3. - Chọn cả hai ô A2 và A3.
- Đặt con trỏ chuột vào góc dưới bên phải của vùng chọn cho tới khi xuất hiện dấu “+”.
- Kéo xuống tới dòng cuối cùng cần đánh số.
Excel sẽ tự động tiếp tục dãy số (3, 4, 5, …) cho đến khi bạn thả chuột.
2.3. Dùng Công Thức ROW() (Dòng Hiện Tại)
Công thức ROW() trả về số thứ tự của dòng hiện tại trong bảng tính. Đây là cách nhanh chóng cho các bảng có dữ liệu liên tục từ dòng 2 trở đi (giả sử tiêu đề ở dòng 1).
Công thức:
=ROW()-1
ROW()trả về số dòng hiện tại (ví dụ: ở A2 sẽ trả về 2).- Trừ đi 1 để bắt đầu từ 1 (vì tiêu đề ở dòng 1).
Cách áp dụng:
1. Giả sử cột A là cột đánh số, nhập công thức trên vào ô A2.
2. Nhấn Enter.
3. Kéo công thức xuống toàn bộ cột A (hoặc double-click vào góc dưới bên phải của ô A2 để tự động sao chép tới cuối danh sách).
Ưu điểm: Khi bạn chèn hoặc xóa dòng ở bất kỳ vị trí nào, số thứ tự sẽ tự động cập nhật.
Nhược điểm: Nếu có các dòng trống trong dữ liệu, số thứ tự vẫn sẽ tăng liên tục, có thể gây nhầm lẫn.
2.4. Dùng Công Thức COUNTA() Kết Hợp ROW()
Khi dữ liệu có các dòng trống và bạn muốn đánh số chỉ cho các dòng có dữ liệu, hãy sử dụng công thức sau:
=IF(COUNTA(B2:Z2)=0,"",ROW()-1)
COUNTA(B2:Z2)đếm số ô không rỗng trong khoảng B2:Z2 (giả sử dữ liệu nằm trong các cột này). Nếu toàn bộ ô trong hàng đó trống, công thức trả về chuỗi rỗng (""), ngược lại trả về số thứ tự.
Cách áp dụng:
1. Nhập công thức vào ô A2.
2. Kéo xuống toàn bộ cột A.
Kết quả: Các dòng trống sẽ không hiển thị số thứ tự, các dòng có dữ liệu sẽ được đánh số liên tiếp.
3. Các Phương Pháp Nâng Cao
3.1. Sử Dụng SEQUENCE() (Excel 365/Excel 2026)
Nếu bạn đang sử dụng phiên bản Excel hỗ trợ hàm dynamic array (SEQUENCE), việc tạo dãy số sẽ còn đơn giản hơn.
Công thức:
=SEQUENCE(COUNTA(B:B)-1,1,1,1)
Giải thích:
– COUNTA(B:B)-1 tính số dòng dữ liệu trong cột B (trừ tiêu đề).
– SEQUENCE(rows, columns, start, step) tạo một mảng dãy số với rows là số dòng, start là số bắt đầu (1), step là bước tăng (1).
Áp dụng:
1. Chọn ô A2.
2. Nhập công thức trên và nhấn Enter.
3. Excel sẽ tự động tràn (spill) dãy số tới các ô phía dưới.
Ưu điểm: Không cần kéo công thức, dãy số tự động mở rộng khi bạn thêm dữ liệu mới (nếu dữ liệu được nhập vào cột B).
3.2. Đánh Số Nhóm (Grouped Numbering)
Trong một số trường hợp, bạn muốn đánh số theo nhóm. Ví dụ: danh sách nhân viên được phân theo phòng ban, và bạn muốn mỗi phòng ban có số thứ tự bắt đầu lại từ 1.
Công thức:
Giả sử:
– Cột B: Tên phòng ban.
– Cột A: Số thứ tự cần tạo.
=IF(B2<>B1,1, A1+1)
Giải thích:
– Nếu phòng ban ở hàng hiện tại (B2) khác phòng ban ở hàng trên (B1), thì bắt đầu lại từ 1.
– Ngược lại, lấy số thứ tự của hàng trên (A1) cộng 1.
Cách thực hiện:
1. Đảm bảo dữ liệu đã sắp xếp theo phòng ban (cột B).
2. Nhập công thức trên vào ô A2.
3. Kéo công thức xuống toàn bộ cột A.
Kết quả: Mỗi khi phòng ban thay đổi, số thứ tự sẽ quay lại 1.
3.3. Đánh Số Theo Điều Kiện (Conditional Numbering)
Ví dụ: Bạn chỉ muốn đánh số các dòng có trạng thái “Hoàn thành” trong cột C.
Công thức:
=IF(C2="Hoàn thành",COUNTIF($C$2:C2,"Hoàn thành"),"")
Giải thích:
– COUNTIF($C$2:C2,"Hoàn thành") đếm số lần xuất hiện “Hoàn thành” từ dòng 2 tới dòng hiện tại.
– Nếu ô C2 chứa “Hoàn thành”, công thức trả về số đếm; nếu không, trả về chuỗi rỗng.
Áp dụng:
1. Nhập công thức vào ô A2.
2. Kéo xuống toàn bộ cột A.
Kết quả: Các dòng có “Hoàn thành” sẽ được đánh số tuần tự, các dòng khác sẽ để trống.
3.4. Đánh Số Khi Dữ Liệu Được Lọc (Filtered Numbering)

Có thể bạn quan tâm: Cách Tạo Bảng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Khi bạn áp dụng bộ lọc (AutoFilter) và muốn đánh số chỉ các dòng hiển thị, bạn cần dùng công thức đặc biệt vì ROW() sẽ vẫn tính cả các dòng ẩn.
Công thức:
=SUBTOTAL(103,OFFSET($A$2,ROW()-ROW($A$2),0))
Hoặc phiên bản đơn giản hơn (đối với Excel 2026+):
=IF(SUBTOTAL(103, A2),COUNTA($A$2:A2)-COUNTBLANK($A$2:A2),"")
Giải thích:
– SUBTOTAL(103, A2) trả về 1 nếu hàng hiện tại hiển thị (không bị ẩn), ngược lại trả về 0.
– COUNTA($A$2:A2)-COUNTBLANK($A$2:A2) đếm số hàng đã hiển thị (không tính rỗng) tính tới dòng hiện tại.
Cách thực hiện:
1. Giả sử cột A là cột đánh số, nhập công thức trên vào ô A2.
2. Kéo xuống toàn bộ cột A.
3. Khi áp dụng bộ lọc, số thứ tự sẽ tự động cập nhật chỉ cho các dòng hiển thị.
4. Tự Động Hoá Với VBA (Macro)
Đối với những bảng dữ liệu rất lớn hoặc cần thực hiện đánh số tự động thường xuyên, việc viết một macro VBA sẽ rất hữu ích.
4.1. Macro Đánh Số Cơ Bản
Sub DanhSoThuTu() Dim ws As Worksheet Dim rng As Range Dim i As Long Set ws = ActiveSheet ' Giả sử dữ liệu bắt đầu từ A2 và cột A là cột đánh số Set rng = ws.Range("A2", ws.Cells(ws.Rows.Count, "B").End(xlUp)) i = 1 For Each cell In rng cell.Value = i i = i + 1 Next cell
End Sub
Hướng dẫn:
1. Nhấn ALT + F11 để mở VBA Editor.
2. Chọn Insert > Module, dán đoạn code trên.
3. Đóng VBA Editor, quay lại Excel, nhấn ALT + F8, chọn DanhSoThuTu và chạy.
4.2. Macro Đánh Số Theo Nhóm
Sub DanhSoTheoNhom() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim curGroup As String Dim counter As Long Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' Cột B là cột nhóm counter = 0 curGroup = "" For i = 2 To lastRow If ws.Cells(i, "B").Value <> curGroup Then curGroup = ws.Cells(i, "B").Value counter = 1 Else counter = counter + 1 End If ws.Cells(i, "A").Value = counter ' Đánh số vào cột A Next i
End Sub
4.3. Macro Đánh Số Khi Dữ Liệu Được Lọc
Sub DanhSoKhiLoc() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim i As Long Set ws = ActiveSheet i = 1 For Each cell In ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible) cell.Value = i i = i + 1 Next cell
End Sub
Lưu ý: Macro trên chỉ đánh số các dòng được hiển thị (không bị ẩn) khi bộ lọc đang hoạt động.
5. Các Bẫy Thường Gặp Khi Đánh Số
| Bẫy | Mô tả | Cách khắc phục |
|---|---|---|
| Dòng trống bị đánh số | Khi dùng ROW() hoặc SEQUENCE, các dòng trống vẫn nhận số. | Dùng công thức IF(COUNTA(...)=0,"",ROW()-1) hoặc IF(A2<>"",ROW()-1,""). |
| Số thứ tự không tự động cập nhật khi chèn dòng | Nếu dùng công thức cố định (ví dụ: =1,2,3…), chèn dòng sẽ làm số thứ tự bị lệch. | Dùng công thức động (ROW(), COUNTIF, hoặc VBA). |
| Khi lọc, số thứ tự không thay đổi | ROW() vẫn tính các dòng ẩn. | Dùng SUBTOTAL(103, ...) hoặc macro lọc. |
| Đánh số theo nhóm nhưng dữ liệu chưa sắp xếp | Số thứ tự nhóm sẽ sai nếu dữ liệu không liên tục. | Trước khi đánh số, sắp xếp dữ liệu theo cột nhóm. |
| Đánh số trong bảng động (Table) | Khi thêm hàng mới vào Table, công thức không tự động sao chép. | Đặt công thức trong cột tính toán của Table (Excel sẽ tự động sao chép). Hoặc dùng SEQUENCE trong ô đầu tiên của Table. |
6. Thực Hành: 5 Bài Tập Thực Tế
Bài 1: Đánh Số Dòng Dữ Liệu Cơ Bản
- Yêu cầu: Tạo bảng danh sách sản phẩm (cột A: Mã, B: Tên, C: Giá). Đánh số thứ tự tại cột D.
- Giải pháp: Dùng
=ROW()-1trong D2 và kéo xuống.
Bài 2: Đánh Số Chỉ Các Dòng Hoàn Thành
- Yêu cầu: Cột E là trạng thái (Hoàn thành / Đang thực hiện). Đánh số chỉ những dòng có trạng thái “Hoàn thành”.
- Giải pháp:
=IF(E2="Hoàn thành",COUNTIF($E$2:E2,"Hoàn thành"),"").
Bài 3: Đánh Số Nhóm Theo Phòng Ban
- Yêu cầu: Cột B là phòng ban, cột A là số thứ tự nhóm.
- Giải pháp: Sắp xếp dữ liệu theo B, sau đó dùng
=IF(B2<>B1,1,A1+1).
Bài 4: Đánh Số Khi Dữ Liệu Được Lọc
- Yêu cầu: Khi bật bộ lọc để chỉ hiển thị các sản phẩm có giá > 100, cột số thứ tự phải hiển thị liên tiếp.
- Giải pháp:
=IF(SUBTOTAL(103, A2),COUNTA($A$2:A2)-COUNTBLANK($A$2:A2),"").
Bài 5: Tự Động Đánh Số Khi Thêm Dòng Mới (Macro)
- Yêu cầu: Khi người dùng nhấn nút “Thêm Dòng”, một dòng mới được chèn vào cuối bảng và tự động có số thứ tự.
- Giải pháp: Tạo nút (Insert > Shape), gán macro:
Sub ThemDongVaDanhSo() Dim ws As Worksheet, lastRow As Long Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row + 1 ws.Rows(lastRow).Insert Shift:=xlDown ws.Cells(lastRow, "A").Formula = "=ROW()-1"
End Sub
7. Tích Hợp Với Các Công Cụ Khác
7.1. Khi Xuất Dữ Liệu Sang Power BI
Power BI thường sử dụng cột Index để duy trì thứ tự gốc khi dữ liệu được tải vào. Khi xuất Excel sang Power BI, hãy chắc chắn cột số thứ tự đã đánh số cố định (không phụ thuộc vào lọc hoặc sắp xếp) để tránh mất đồng nhất.
7.2. Khi Gửi Báo Cáo PDF
Trước khi in hoặc xuất PDF:
1. Chọn Page Layout > Print Area để chỉ in phần dữ liệu cần thiết.
2. Đảm bảo cột số thứ tự không bị ẩn (điều chỉnh Print Titles nếu cần).
3. Kiểm tra Print Preview để xác nhận số thứ tự hiển thị đúng.
7.3. Khi Sử Dụng Google Sheets
Google Sheets cũng hỗ trợ các hàm tương tự:
– =ROW()-1 hoạt động giống Excel.
– Hàm SEQUENCE cũng có sẵn trong Google Sheets (điều kiện tài khoản G Suite hoặc bản mới).
8. Kết Luận
Việc đánh số thứ tự trong Excel không chỉ là một thao tác đơn thuần mà còn là nền tảng cho nhiều quy trình xử lý dữ liệu chuyên nghiệp. Từ các phương pháp nhập thủ công, sử dụng Fill Handle, tới các công thức động như ROW(), COUNTA(), SEQUENCE(), và thậm chí là viết macro VBA, mỗi cách đều có ưu, nhược điểm riêng, phù hợp với từng tình huống thực tế.
Bạn nên cân nhắc:
– Quy mô dữ liệu (vài chục, hàng trăm, hàng nghìn hay hơn).
– Tính linh hoạt (có cần tự động cập nhật khi chèn/xóa hay không).
– Môi trường làm việc (Excel Desktop, Excel Online, Google Sheets, hoặc sử dụng VBA).
Hãy áp dụng những kiến thức trên vào công việc hàng ngày, bạn sẽ thấy quá trình quản lý, tra cứu và báo cáo dữ liệu trở nên suôn sẻ, chính xác và chuyên nghiệp hơn rất nhiều.
Mẹo nhanh: Khi muốn tạo cột số thứ tự cho một Table trong Excel, chỉ cần nhập công thức
=@(trong cột tính toán) hoặc=ROW()-ROW(Table1#Headers)để tự động mở rộng cùng Table mà không cần kéo công thức.
Chúc bạn thành công trong việc đánh số thứ tự trong Excel và nâng cao hiệu suất làm việc!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
