Có thể bạn quan tâm: Hàm Tìm Kiếm Trả Về Nhiều Giá Trị Trong Excel
1. Giới thiệu
Excel được coi là công cụ Kao hàng đầu trong việc quản lý dữ liệu, phân tích và báo cáo. Khi làm việc với bảng tính lớn, việc lọc dữ liệu là một thao tác không thể thiếu. Tuy nhiên, một vấn đề thường gặp khi sử dụng tính năng lọc là khi bạn cần biết thứ tự của các dòng trong danh sách đã lọc. Nếu chỉ đơn giản copy‑paste dữ liệu đã lọc vào một khu vực mới, thứ tự sẽ bị mất và bạn sẽ không thể làm nổi bật dòng thứ mấy trong danh sách gốc. Để khắc phục, chúng ta cần một công thức hoặc phương pháp để đánh số thứ tự một cách chính xác ngay cả khi dữ liệu đã được lọc.
Trong bài viết này, chúng ta sẽ đi qua nhiều cách tiếp cận khác nhau: từ công thức đơn giản, dùng hàmчто SUBTOTAL, đến hàm AGGREGATE, cũng như cách sử dụng VBA để tự động hóa. Bạn sẽ học được cách áp dụng từng phương pháp trong thực tế, những ưu nhược điểm, và những mẹo nhỏ để làm cho công việc của mình trở nên hiệu quả hơn.
Có thể bạn quan tâm: Mẫu Biên Bản Kiểm Kê Tài Sản Cố Định Excel: Hướng Dẫn Từng Bước, Lợi Ích Và Cách Tùy Chỉnh
2. Tại sao đánh số thứ tự khi lọc dữ liệu lại quan trọng?
- Theo dõi dữ liệu: Khi bạn lọc một danh sách sản phẩm theo vùng giá, danh mục, hoặc trạng thái, bạn cần biết chính xác dòng thứ mấy đang được xem. Điều này rất quan trọng khi báo cáoadors.
- So sánh và phân tích: Khi so sánh dữ liệu giữa hai bảng, việc biết số thứ tự sẽ giúp tránh nhầm lẫn.
- Bảo mật: Đôi khi, bạn chỉ muốn chia коже dữ liệu lọc ra một báo cáo mà không muốn hiển thị toàn bộ danh sách gốc. Số thứ tự giúp người đọc xác định nhanh vị trí trong danh sách gốc.
- Tự động hóa: Các công thức tính toán dựa vào số thứ tự (ví dụ: tính tổng theo thứ tự, trọng số) sẽ hoạt động chính xác khi có đánh số đúng.
Có thể bạn quan tâm: Để Chuẩn Bị In Một Bảng Tính Excel Ra Giấy
3. Phương pháp 1: Sử dụng hàm SUBTOTAL để đánh số thứ tự
3.1. Cách hoạt động
Hàm SUBTOTAL có thể thực hiện nhiều công việc, bao gồm tính tổng, trung bình, đếm, … Đặc biệt, khi bạn dùng SUBTOTAL với hàm SUBTOTAL(103, ...) thì nó sẽ đếm số dòng ẩn (được ẩn bởi lọc). Khi kết hợp với hàm ROW để lấy số dòng, bạn có thể tạo ra một cột đánh số thứ tự động.
3.2. Công thức
Giả sử dữ liệu gốc bắt đầu từ dòng 2 (đầu tiên là tiêu đề). Bạn muốn đánh số thứ tự trong cột A. Dùng công thức:
=SUBTOTAL(103, $B$2:B2 embarked) + 1
103là mã hàmSUBTOTALchoCOUNTA(đếm các ô không trống), nhưng chỉ füh anh.$B$2:B2là dải từ dòng 2 tới dòng hiện tại (điều này cho phépSUBTOTALchỉ tính dòng hiện tại và trên).- Thêm
+1để bắt đầu từ 1.
3.3. Lưu ý
- Khi bạn lọc dữ liệu, các dòng ẩn sẽ không được tính vào
SUBTOTAL, do đó công thức sẽ tự động bỏ qua các dòng ẩn. - Nếu dữ liệu có ô trống trong cột dữ liệu mà bạn dùng trong
SUBTOTAL, bạn có thể thayCOUNTAbằngSUMhoặcCOUNTtùy vào trường hợp.
3.4. Ví dụ thực tế
| A (STT) | B (Tên) | C (Giá) | |
|---|---|---|---|
| 2 | 1 | Samsung | 1500 |
| 3 | 2 | Apple | 2000 |
| 4 | 3 | Xiaomi | 1200 |
Sau khi lọc theo giá lớn hơn 1300, bảng sẽ hiển thị:
| A (STT) | B (Tên) | C (Giá) | |
|---|---|---|---|
| 2 | 1 | Samsung | 1500 |
| 3 | 2 | Apple | 2000 |
Bạn thấy số thứ tự vẫn giữ nguyên.
4. Phương pháp 2: Sử dụng hàm ROW và AGGREGATE
4.1. Giới thiệu AGGREGATE
AGGREGATE là hàm mạnh mẽ hơn SUBTOTAL, nó cho phép bỏ qua lỗi, giá trị ẩn, và có nhiều tùy chọn khác. Mã 15 của AGGREGATE tương ứng với SUBTOTAL nhưng có thể bỏ qua các dòng ẩn.
4.2. Công thức
=AGGREGATE(15, 6, ROW($A$2:$A$1000)/(ROW($A$2:$A$1000)<>""), 1)
15là hàmROW.6là tùy chọn bỏ qua lỗi và giá trị ẩn.ROW($A$2:$A$1000)/(ROW($A$2:$A$1000)<>"" )tạo ra mảng các số dòng, bỏ qua các dòng trống.1là thứ tự trong danh sách.
4.3. Tối ưu
- Bạn có thể thay
$A$1000bằngA$1048576(điểm cuối của cột) để mở rộng tự động. - Sử dụng
INDIRECThoặcOFFSETđể tự động điều chỉnh phạm vi khi bạn thêm dòng mới.
4.4. Ưu điểm
- Không bị ảnh hưởng bởi Tablets.
- Đơn giản khi cần tính toán các giá trị phức tạp hơn (ví dụ: tính thứ tự giảm dần, hoặc tính số thứ tự khi có ẩn).
5. Phương pháp 3: Đánh số thứ tự thủ công bằng công thức IF

Có thể bạn quan tâm: Tạo Chữ Ký Điện Tử Trên File Word Và Excel: Hướng Dẫn Chi Tiết, An Toàn Và Hiệu Quả
5.1. Khi nào dùng
Nếu bạn muốn đánh số thứ tự đơn giản, không phụ thuộc vào SUBTOTAL hay AGGREGATE, bạn có thể dùng công thức IF kết hợp với ROW.
5.2. Công thức
=IF(ROW()>=2, ROW()-1, "")
- Giả sử dữ liệu bắt đầu từ dòng 2.
- Công thức này sẽ trả về số 帝苑.
5.3. Lưu ý
- Khi lọc dữ liệu, số thứ tự sẽ vẫn giữ nguyên, vì công thức không phụ thuộc vào lọc.
- Nếu bạn muốn số thứ tự được tự động giảm dần khi lọc, bạn sẽ cần công thức phức tạp hơn.
6. Phương pháp 4: Tự động đánh số khi lọc bằng VBA
6.1. Khi nào dùng
Nếu bạn làm việc thường xuyên với dữ liệu lớn, muốn tự động đánh số thứ tự ngay khi lọc, VBA là lựa chọn tốt nhất. Bạn có thể viết một macro để chạy khi có sự kiện lọc thay đổi.
6.2. Mã VBA mẫu
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Exit Sub Dim rng As Range Set rng = Intersect(Me.UsedRange, Me.AutoFilter.Range.Offset(1)) Dim i As Long i = 1 Dim cell As Range For Each cell In rng.Columns(1).Cells If Not cell.EntireRow.Hidden Then cell.Value = i i = i + 1 End If Next cell
End Sub
- Đoạn mã này sẽ empleados cột A (STT) khi có thay đổi (ví dụ: lọc).
- Bạn có thể điều chỉnh
rng.Columns(1)để áp dụng cho cột nào.
6.3. Cách triển khai
- Mở Excel, nhấn
ALT + F11để mở cửa sổ VBA. - Chọn worksheet bạn muốn áp dụng, dán mã vào ô
ThisWorkbook. - Lưu lại file dưới dạng
.xlsm. - Khi lọc dữ liệu, macro sẽ tự động chạy và đánh số thứ tự.
6.4. Lưu ý
- Macro có thể tốn thời gian nếu dữ liệu khổng lồ; nên tối ưu bằng cách chỉ chạy khi cần.
- Nếu người dùng không quen với VBA, hãy cung cấp hướng dẫn chi tiết.
7. Mẹo và lưu ý khi đánh số thứ tự
| Mẹo | Giải thích |
|---|---|
Sử dụng OFFSET | Giúp tự động điều chỉnh phạm vi khi thêm dòng mới. |
Dùng COUNTA thay vì COUNTA | Khi dữ liệu có ô trống, COUNTA sẽ tính sai. |
| Đánh số giảm dần | Sử dụng công thức =COUNTIF($A$2:$A$1000,">="&A2) để tính số lớn hơn hoặc bằng. |
| Kiểm tra lỗi | Sử dụng IFERROR để tránh lỗi khi cột có giá trị lỗi. |
| Định dạng số | Đặt kiểu số (Integer) để tránh hiển thị chữ thập. |
8. Thử nghiệm thực tế: Đánh số thứ tự trong báo cáo bán hàng
Giả sử bạn có bảng bán hàng:
| Ngày | Mã Sản Phẩm | Số Lượng | Giá |
|---|---|---|---|
| 01/01 | A001 | 10 | 20000 |
| 02/01 | A002 | 5 | 18000 |
| 03/01 | A003 | 8 | 22000 |
| 04/01 | A004 | 12 | 15000 |
| … | … | … | … |
Bạn muốn lọc theo Giá > 18000 và đánh số thứ tự cho các dòng còn lại. Dùng công thức:
=SUBTOTAL(103, $C$2:C2)+1
Clà cộtSố Lượng(để tính số lượng đã bán).- Khi lọc, cột
STTsẽ tự động cập nhật.
9. Đánh số thứ tự khi kết hợp với PivotTable
PivotTable thường không giữ nguyên thứ tự dòng gốc. Để đánh số thứ tự trong PivotTable, bạn có thể:
- Thêm cột
STTvào dữ liệu gốc. - Khi tạo PivotTable, kéo cột
STTvào phầnRows. - Đặt
STTvào phầnValuesvới tùy chọnValue Field Settings→Number Format.
Điều này giúp bạn theo dõi thứ tự của các mục trong bảng PivotTable.
10. Kết luận
Đánh số thứ tự trong Excel khi lọc dữ liệu là một công việc quan trọng nhưng thường bị bỏ qua. Bằng cách sử dụng các hàm như SUBTOTAL, AGGREGATE, ROW, hoặc thậm chí là mã VBA, bạn có thể tạo ra hệ thống đánh số linh hoạt, chính xác và tự động. Việc này giúp bạn quản lý dữ liệu hiệu quả hơn, tránh nhầm lẫn khi phân tích, và nâng cao tính chuyên nghiệp trong báo cáo.
Hãy thử áp dụng các phương pháp trên vào công việc hàng ngày của bạn để cảm nhận sự khác biệt. Nếu bạn gặp khó khăn hoặc muốn mở rộng thêm tính năng, đừng ngần ngại chia sẻ câu hỏi; cộng đồng Excel luôn sẵn sàng hỗ trợ.

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