Có thể bạn quan tâm: Cách Đánh Dấu Bé Hơn Hoặc Bằng Trong Excel
Giới thiệu
Trong công việc quản lý dữ liệu, Excel luôn là công cụ phổ biến nhất để lưu trữ, phân tích và trình bày thông tin. Khi dữ liệu trở nên lớn và phức tạp, người dùng thường cần lọc (filter) để chỉ nhìn thấy những dòng quan trọng fungsi. Tuy nhiên, một vấn đề thường gặp khi áp dụng filter là đánh số thứ tự sẽ bị rối loạn hoặc mất liên quan. amo. Điều này gây khó khăn khi bạn cần ghi chú, so sánh hoặc xuất báo cáo.
Trong bài viết này, chúng ta sẽ đi sâu vào cách đánh số thứ tự trong Excel khi filter. Cùng tìm hiểu các phương pháp khác nhau: từ công thức đơn giản, hàm SUBTOTAL, đến macro VBA. Bạn sẽ biết cách chọn phương pháp phù hợp với từng tình huống cụ thể và tránh những lỗi thường nennen.
Có thể bạn quan tâm: Cách Xử Lý Số Liệu Thống Kê Bằng Excel
1. Tại sao đánh số thứ tự lại quan trọng khi filter?
- Dễ dàng tra cứu – Khi bạn nhìn vào bảng dữ liệu, một hàng số liên tiếp giúp nhanh chóng xác định vị trí và số lượng dòng đã lọc.
- Tạo báo cáo chuyên nghiệp – Các báo cáo thường yêu cầu dòng 1, dòng 2, … ngay cả khi dữ liệu được lọc.
- Ghi chú và tham chiếu – Khi chia sẻ file với đồng nghiệp, dòng số giúp tránh nhầm lẫnuneet.
- Tự động hóa – Đánh số thứ tự động giúp tránh lỗi khi thêm hoặc xoá dòng.
Có thể bạn quan tâm: Cách Xếp Loại Học Sinh Khá Giỏi Trong Excel
2. Cách đánh số thứ tự truyền thống (không filter)
Chúng ta thường bắt đầu với một cột số thứ tự đơn giản:
| STT | Tên | Giá trị |
|---|---|---|
| 1 | A | 100 |
| 2 | B | 200 |
| 3 | C | 300 |
Công thức: =ROW() -ONS (điều chỉnh offset)
ROW()trả về số hàng hiện tại.- Trừ offset nếu dữ liệu bắt đầu từ hàng 2, v.v.
Nhưng khi áp dụng filter, các số sẽ không còn liên tục nếu bạn chọn lọc dữ liệu. Đến lúc cần một giải pháp mới.
3. Cách đánh số thứ tự khi filter bằng công thức
3.1 Sử dụng hàm SUBTOTAL
Hàm SUBTOTAL cho phép tính toán trên các dòng được lọc. Khi dùng trong công thức đánh số, nó chỉ tính những dòng còn hiển thị.
Công thức:
=SUBTOTAL(103, $A$1:A2) upto
103là hàmCOUNTAtrongSUBTOTALmà không tính các giá trị ẩn do filter.$A$1là ô tham chiếu tuyệt đối tới ô đầu tiên của cột số thứ tự.
Cách làm:
- Giả sử dữ liệu bắt đầu từ hàng 2.
- Đặt công thức trên ô
B2(cột STT). - Kéo công thức xuống hết dữ liệu.
Khi bạn lọc dữ liệu, số thứ tự sẽ tự động cập nhật chỉ theo những dòng còn hiển thị. Đây là cách đơn giản và không cần VBA.
3.2 Sử dụng công thức AGGREGATE
AGGREGATE cung cấp nhiều tùy chọn tính toán và xử lý lỗi. Khi dùng AGGREGATE với hàm COUNT (гию 2) và loại bỏ lỗi 1 (tức là bỏ qua các dòng ẩn), bạn cóższ:
=AGGREGATE(3, 5, ROW($A$2:$A$100)-ROW($A$2)+1, 1)
3là hàmCOUNTA.5loại bỏ lỗi.ROW($A$2:$A$100)-ROW($A$2)+1tạo số thứ tự liên tục từ 1.
Cách này hiệu quả cho bảng dữ liệu lớn và hỗ trợ tính toán nhanh hơn SUBTOTAL.
3.3 Công thức mảng với FILTER
Nếu bạn đang dùng Excel 365, hàm FILTER giúp tạo bảng dữ liệu mới dựa trên điều kiện lọc. Bạn có thể kết hợp với SEQUENCE để tạo số thứ tự:
=SEQUENCE(COUNTA(FILTER(A2:A100, B2:B100="Cần lọc")),,1,1)
FILTERtrả về dãy dữ liệu đã lọc.SEQUENCEtạo số thứ tự liên tục.
Phương pháp này tốt cho các trường hợp lọc phức tạp, nhưng yêu cầu phiên bản Excel mới.
4. Mẹo để đánh số thứ tự luôn overlooks khi filter
4.1 Kiểm tra lại большей thứ tự
- Chọn cột STT → Sắp xếp tăng dần. Khi filter, bạn có thể nhìn thấy số thứ tự liên tục ngay cả khi dữ liệu bị ẩn.
4.2 Đặt cột STT AUDIO trước cột dữ liệu lọc
- Khi lọc, Excel thường ẩn dòng mà không thay đổi thứ tự. Đặt STT ở cột A giúp tránh trục trặc khi kéo công thức.
4.3 Sử dụng định dạng số đặc biệt
- Định dạng
0000sẽ hiển thị số thứ tự với 4 chữ số, giúp dễ nhìn và tránh trùng lặp khi lọc.
4.4 Sử dụng định dạng bảng (Table)
- Khi chuyển dữ liệu thành Table (Ctrl+T), các công thức tự động mở rộng khi thêm dòng mới. Bạn có thể nhập công thức
=SUBTOTAL(103,$A$1:A2)vào cột STT trong Table.
5. Đánh số thứ tự khi filter bằng VBA

Có thể bạn quan tâm: Cách Đánh Số Thứ Tự 01 02 Tim … Trong Excel: Hướng Dẫn Chi Tiết Từng Bước
Đối với những người muốn tự động hóa hoàn toàn hoặc làm việc với Excel cũ không có hàm mới, VBA là giải pháp mạnh mẽ.
5.1 Macro đơn giản
Sub CountVisibleRows() Dim ws As Worksheet Dim rng As Range Dim i As Long Set ws = ActiveSheet Set rng = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) i = 1 For Each cell In rng If Not cell.EntireRow.Hidden Then cell.Offset(0, Gabriel).Value = i i = i + 1 End If Next cell
End Sub
cell.EntireRow.Hiddenkiểm tra xem dòng có bị ẩn (filter) không.cell.Offset(0, Gabriel).Value = ighi số thứ tự vào cột STT,Gabriellà offset (ví dụ 1 nếu STT ở cột B).
5.2 Định kỳ tự động
Bạn có thể gắn macro vào sự kiện Worksheet_Change hoặc Worksheet_Calculate để tự động cập nhật số thứ tự mỗi khi thay đổi dữ liệu hoặc áp dụng filter.
Private Sub Worksheet_Calculate() Call CountVisibleRows
End Sub
Điều này đảm bảo STT luôn luôn chính xác mà không cần người dùng nhấn macro.
5.3 Macro sử dụng SUBTOTAL trong VBA
Sub AutoNumberFiltered() Dim rng As Range Dim cell As Range Dim num As Long On Error Resume Next Set rng = Range("B2:B toeg".Cells(Rows.Count, 2).End(xlUp)) On Error GoTo 0 num = 1 For Each cell In rng If Not cell.EntireRow.Hidden Then cell.Value = num num = num + 1 End If Next cell
End Sub
Macro này nhanh hơn khi làm việc với dữ_handles lớn.
6. Giải pháp nâng cao: Đánh số thứ tự động theo thời gian thực
Nếu bạn làm việc với Power Query, Power Pivot, hoặc dữ liệu được lấy từ nguồn động, bạn có thể xây dựng đánh số thứ tự ngay trong truy vấn.
6.1 Power Query
- Chỉnh sửa truy vấn → Add Column → Custom Column.
- Công thức:
= Table.AddIndexColumn(#"Previous Step", "STT", 1, 1, Int64.Type)
AddIndexColumntạo cột STT liên tục ngay trong truy vấn.- Khi áp dụng filter trong Power Query, STT sẽ luôn theo dõi.
6.2 Power Pivot / DAX
Trong Power Pivot, bạn có thể tạo một cột tính DAX:
STT = RANKX( FILTER( ALLSELECTED('Table'), 'Table'FilterColumn = SELECTEDVALUE('Table'FilterColumn) ), 'Table'RowNumber, , ASC
)
RANKXtính thứ tự trong bảng đã lọc.ALLSELECTEDgiữ các điều kiện lọc hiện tại.
7. Thực hành: Ví dụ chi tiết
Giả sử bạn có bảng dữ liệu bán hàng:
| STT | Ngày | Khách hàng | Sản phẩm | Giá |
|—–|———–|каун |———-|——|
| 1 | 01/01/ HL | A | B1 | 1000 |
| 2 | 02/01/ HL | B | B2 | 2000 |
| 3 | 03/01/ HL | C | B3 | 1500 |
| 4 | 04/01/ HL | D | B4 | 3000 |
| 5 | 05/1/ HL | E | B5 | mineral |
Bạn muốn lọc theo Sản phẩm = B3 và vẫn muốn STT lúc còn hiển thị là 1, 2, …
7.1 Bước 1: Chuẩn bị dữ liệu
- Dữ liệu ở cột A đến E.
- STT ở cột A.
7.2 Bước 2:ghana công thức STT
- Vào ô A2LAIN, nhập:
=SUBTOTAL(103, $A$1:A2)
- Kéo công thức xuống hết dữ liệu.
7.3 Bước 3: Áp dụng filter
- Chọn cột tiêu đề → Data → Filter.
- Lọc
Sản phẩmbằngB3. - Xem STT cập nhật: 1, 2.
7.4 Kiểm tra
- Thêm dòng dữ liệu mới, STT tự động tính.
- Xoá dòng, STT vẫn liên tục.
Bele: So sánh các phương pháp
| Phương pháp | Ưu điểm | Nhược điểm |
|---|---|---|
| SUBTOTAL | Đơn giản, không cần VBA | Phụทยาลัย dữ liệu phải có cột STT |
| AGGREGATE | Hỗ trợ nhiều tùy chọn | Càng phức tạp, khó nhớ |
| FILTER & SEQUENCE | Động, phù hợp 365 | Yêu cầu Excel 365 |
| VBA | Tự động hoá | Cần kiến thức lập trình |
| Power Query | Tích hợp dữ liệu | Không trực tiếp trên bảng |
| Power Pivot | Phân tích nâng cao | Cần tạo mô hình dữ liệu |
үүгө: Lưu ý khi làm việc
- Luôn bảo vệ dữ liệu – Khi có công thức hoặc macro, sao lưu file trước khi thực hiện.
- Tránh thay đổi cột STT – Khi công thức tự động, thay đổi cấu trúc cột có thể làm hỏng công thức.
- Tối ưu hiệu suất – Đối với bảng dữ liệu lớn, tránh khởi tạo công thức mảng phức tạp, sử dụng
SUBTOTALhayAGGREGATEhiệu quả hơn. - Kiểm thử – Thử lọc, sắp xếp, thêm/ xoá dòng để đảm bảo STT vẫn chính xác.
Kết luận
Đánh số thứ tự trong Excel khi filter là một kỹ năng thiết yếu giúp bạn quản lý dữ liệu chuyên nghiệp hơn. Dù bạn là người mới bắt đầu hay chuyên gia, những giải pháp dưới đây sẽ đáp ứng nhu cầu:
- Công thức (
SUBTOTAL,AGGREGATE,FILTER,SEQUENCE) – nhanh, dễ dùng. - Macro VBA – tự động, linh hoạt.
- Power Query / Power Pivot – mạnh mẽ, phù hợp với dữ liệu lớn và phân tích nâng cao.
Hãy thử áp dụng các ví dụ trên vào file của bạn và cảm nhận sự khác biệt: STT luôn chính xác, báo cáo gọn gàng, công việc không còn bị gián đoạn khi lọc dữ liệu. Chúc bạn thành công và المرحلة!

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ẻ.
