Trong thế giới làm việc với dữ liệu, việc sắp xếp, phân loại và đánh số thứ tự là một công việc phổ biến nhưng lại thường gặp nhiều vấn đề khi dữ liệu có các điều kiện đặc thù. Bạn có thể cần đánh số các mục chỉ khi chúng đáp ứng một tiêu chí nào đó, bỏ qua các mục trống, hoặc đánh số theo nhóm, theo thứ tự giảm dần, hoặc thậm chí theo một điều kiện phức tạp hơn như “nếu giá trị lớn hơn 100 thì đánh số 1, ngược lại đánh số 0”. Chắc chắn rằng, trong Excel, ühe cách làm điều này một cách linh hoạt và hiệu quả là sử dụng các hàm có tính điều kiện, ví dụ như IF, COUNTIF, SUMPRODUCT, INDEX kết hợp với MATCH, OFFSET, ROW, COLUMN, FILTER, SORT, UNIQUE, SEQUENCE, v.v.
Bài viết này sẽ đi sâu vào cách thực hiện đánh số thứ tự có điều kiện trong Excel, từ những công thức cơ bản nhất cho tới các trường hợp sử dụng nâng cao. Bạn sẽ được học cách:
- Đánh số thứ tự dựa trên một điều kiện đơn giản (sử dụng
IF+ROW). - Đánh số thứ tự theo nhóm (sử dụng
COUNTIFS+IF). - Đánh số thứ tự theo điều kiện phức tạp (sử dụng
SUMPRODUCT). - Đánh số thứ tự cho danh sách trùng lặp (sử dụng
UNIQUE+SEQUENCE). - Đánh số thứ tự theo thứ tự giảm dần (sử dụng
SORT+INDEX). - Đánh số thứ tự trong danh sách được lọc (sử dụng
SUBTOTALhoặcFILTER). - Tránh các sai lầm phổ biến khi sử dụng hàm umurđ số thứ tự.
- Tối ưu hoá công thức để xử lý bảng dữ liệu lớn.
Hãy cùng khám phá các cách làm này để bạn có thể áp dụng ngay vào công việc hàng ngày của mình.
Có thể bạn quan tâm: Điều Kiện Lớn Hơn Hoặc Bằng Trong Excel: Hướng Dẫn Chi Tiết Và Các Ứng Dụng Thực Tế
1. Đánh số thứ tự cơ bản: IF + ROW
1.1. Mô tả
Hàm IF trong Excel cho phép bạn kiểm tra một điều kiện và trả về giá trị khác nhau tùy thuộc vào kết quả của điều kiện đó. Khi kết hợp với hàm ROW, chúng ta có thể tạo ra một dãy số thứ tự liên tục, nhưng chỉ xuất hiện khi một điều kiện nhất định được thỏa mãn.
1.2. Cấu trúc công thức
Giả sử bạn có một danh sách dữ liệu trong cột A (A2:A20). Bạn muốn đánh số thứ tự các dòng có giá trị không trống.
Công thức: abogado
=IF(A2<>"", ROW(A2)-ROW($A$2)+1, "")
A2<>""kiểm tra xem ô A2 có trống hay không.ROW(A2)-ROW($A$2)+1tính số thứ tự liên tục bắt đầu từ 1.- Nếu A2 trống, công thức trả về chuỗi rỗng
"".
1.3. Ví dụ thực tế
| A | B (Số thứ tự) |
|---|---|
| Hình ảnh 1 | 1 |
| Hình ảnh 3 | 2 |
| Hình ảnh 4 | 3 |
Trong cột B, công thức trên sẽ hiển thị số thứ tự chỉ cho những dòng có dữ liệu trong cột A.
1.4. Lưu ý
- Nếu bạn muốn đánh số thứ tự bắt đầu từ 0, hãy loại bỏ
+1. - Để tránh lỗi khi trục dữ liệu lớn, hãy xác định phạm vi
ROW($A$2)một cách chính xác.
Có thể bạn quan tâm: Định Dạng Ô Trống Trong Excel: Cách Điền Số 0 Vào Ô Trống Một Cách Nhanh Chóng Và Chính Xác
2. Đánh số thứ tự theo nhóm: COUNTIFS
2.1. Khi nào cần đánh số theo nhóm?
Trong nhiều trường hợp, dữ liệu được phân loại vào các nhóm (ví dụ: danh sách sản phẩm theo danh mục, danh sách sinh viên theo lớp). Khi đó, bạn muốn đánh số thứ tự cho mỗi nhóm riêng biệt.
2.2. Công thức
Giả sử dữ liệu ở cột A là danh mục (Danh mục), cột B là tên sản phẩm. Bạn muốn đánh số thứ tự cho từngLY
=COUNTIFS($A$2:A2, A2)
$A$2:A2là phạm vi động; khi sao chép công thức xuống, phạm vi sẽ mở rộng dần.A2là điều kiện so sánh chính xác với giá trị hiện tại.
2.3. Ví dụ
| A (Danh mục) | B (Tên sản phẩm) | C (Số thứ tự) |
|---|---|---|
| Điện tử | Laptop | 1 |
| Điện tử | Smartphone | 2 |
| Thời trang | Áo khoác | (…?) |
Trong cột C, công thức sẽ đánh số 1,2 cho nhóm “Điện tử” và số 1,2,3… cho nhóm “Thời trang” v.v.
2.4. Các biến thể
- Đánh số từ 0:
=COUNTIFS($A$2:A2, A2)-1. - Đánh số theo thứ tự giảm dần: 广东
=COUNTIFS($A$2:$A$20, A2, $B$2:$B$20, "<"&B2)+1
Có thể bạn quan tâm: Cách Điền Ngày, Tháng, Năm Hiện Tại Trong Excel – Hướng Dẫn Chi Tiết
3. Đánh số thứ tự theo điều kiện phức tạp: SUMPRODUCT
3.1. Tại sao dùng SUMPRODUCT?
SUMPRODUCT là hàm mạnh mẽ cho phép tính tổng hàng trùm dựa trên nhiều điều kiện mà không cần sử dụng IF l unes. Nó có thể xử lý mảng logic và trả về kết quả số.
3.2. Cấu trúc công thức
Giả sử bạn có bảng dữ liệu về bán hàng:
| A (Ngày) | B (Sản phẩm) | C (Số lượng) |
|---|---|---|
| 2026-01-01 | Laptop | 5 |
| 2026-01-01 | Smartphone | 3 |
| 2026-01-02 | Laptop | 2 |
| 2026-01-02 | Smartphone squirrels ? |
Bạn muốn đánh số thứ tự cho mỗi ngày, chỉ tính những dòng có số lượng > 2.
Công thức:
=SUMPRODUCT(($A$2:$A$20=A2)($C$2:$C$20>2)1)
$A$2:$A$20=A2trả về mảng TRUE/FALSE cho ngày hiện tại.$C$2:$C$20>2kiểm tra số lượng > 2.1chuyển TRUE/FALSE thành 1/0.SUMPRODUCTtính tổng các 1, tức là số thứ tự.
3.3. Ví dụ ứng dụng
| A (Ngày) | B (Sản phẩm) | C (Số lượng) | D (Số thứ tự) |
|---|---|---|---|
| 2026-01-01 | Laptop | 5 | 1 |
| 2026-01-01 | Smartphone | 3 | 2 |
| 2026-01-01 | Tablet | 1 | |
| 2026-01-02 | Laptop | 2 | |
| 2026-01-02 | Smartphone | 4 | 1 |
- Dòng 3 và 4 có số lượng không đủ điều kiện, nên không có số thứ tự.
3.4. Lưu ý
SUMPRODUCTkhông cần công thức mảng; bạn stopwatch gõ và nhấnEnter.- Khi dữ liệu lớn,
SUMPRODUCTcó thể chậm hơn so vớiCOUNTIFS, nên cân nhhire.
4. Đánh số thứ tự cho danh sách trùng lặp: UNIQUE + SEQUENCE
4.1. Tình huống
Bạn có một danh sách dài các tên khách hàng, có nhiều lần trùng lặp. Bạn muốn tạo danh sách duy nhất và đánh số thứ tự từng khách hàng duy nhất.
4.2. Công thức
Giả sử dữ liệu nằm trong cột A (A2:A100). Bạn muốn tạo danh sách duy nhất trong cột D và đánh số thứ tự trong cột E.
D2: =UNIQUE(A2:A100)
E2: =SEQUENCE(COUNTA(D2:D100),1,1,1)
UNIQUEtrích xuất các giá trị duy nhất.SEQUENCEtạo dãy số từ 1 tới số lượng mục duy nhất.
4.3. Ví dụ
| A (Tên khách hàng) | D (Khách hàng duy nhất) | E (Số thứ tự) |
|---|---|---|
| Alice | Alice | 1 |
| Bob | Bob | 2 |
| Alice | Charlie | 3 |
| Charlie | … | … |
4.4. Mở rộng
Nếu bạn muốn đánh số thứ tự theo thứ tự giảm dần của số lần xuất hiện:
=LET( uniq, UNIQUE(A2:A100), freq, COUNTIF(A2:A100, uniq), sorted, SORTBY(uniq, freq, -1), SEQUENCE(COUNTA(sorted),1,1,1)
)
5. Đánh số thứ tự theo thứ tự giảm dần: SORT, INDEX
5.1. Tình huống
Bạn có một bảng gồm các giá trị và muốn đánh số thứ tự dựa trên giá trị giảm dần (từ cao nhất đến thấp nhất).
5.2. Công thức

Có thể bạn quan tâm: Đánh Ngày Tháng Tự Nhảy Năm Trong Excel
Giả sử dữ liệu ở cột B (B2:B20). Bạn muốn đánh số thứ tự市场
=RANK.EQ(B2, $B$2:$B$20, 0)
RANK.EQtrả về vị trí thứ của giá trị trong dãy;0cho thứ tự giảm dần.
5.3. Khi có giá trị trùng nhau
Nếu có nhiều giá trị trùng nhau và bạn muốn đánh số thứ tự theo thứ tự xuất hiện, bạn có thể dùng SORTBY + SEQUENCE:
=LET( sorted, SORTBY($B$2:$B$20, $B$2:$B$20, -1), seq, SEQUENCE(COUNTA(sorted),1,1,1), INDEX(seq, MATCH(B2, sorted, 0))
)
5.4. Ví dụ
| B (điểm) | C (Số thứ tự giảm dần) |
|---|---|
| 90 | 1 |
| 85 | 2 |
| 90 | 1 |
| 70 | 4 |
6. Đánh số thứ tự trong danh sách được lọc: SUBTOTAL
6.1. Khi nào cần
Nếu bạn đang làm việc với bảng dữ liệu có tính năng lọc (AutoFilter), bạn có thể muốn đánh số thứ tự chỉ cho các dòng hiển thị sau khi lọc.
قلت
=SUBTOTAL(103, $A$2:$A2)
103là hàmCOUNTAtrongSUBTOTAL.SUBTOTALchỉ tính các ô hiển thị, bỏ qua các ô ẩn do lọc.- Khi bạn sao chép công thức xuống,
SUBTOTALsẽ trả về số thứ tự liên tục cho các dòng đang được hiển thị.
6.2. Ví dụ
| A (ID) | B (abilece) | C (Số thứ tự khi lọc) |
|---|---|---|
| 1 | 10 | 1 |
| 2 | 5 | 2 |
| 3 | 8 | 3 |
Nếu bạn lọc để chỉ hiển thị các dòng có giá trị > 6, công thức trong cột C sẽ tự động cập nhật số thứ tự phù hợp.
6.3. Lưu ý
SUBTOTALkhông thể sử dụng trực tiếp vớiCOUNTIFS; bạn cần kết hợp vớiIFhoặcFILTERnếu có điều kiện phức tạp.
7. Đánh số thứ tự trong danh sách đãärmen FILTER
7.1. Mô tả
Hàm FILTER trả về một mảng dữ liệu thỏa mãn điều kiện. Khi kết hợp với SEQUENCE và INDEX, chúng ta có thể đánh số thứ tự cho mảng lọc.
7.2. Công thức
hb
=LET( arr, FILTER(A2:A100, B2:B100>50), seq, SEQUENCE(COUNTA(arr)), INDEX(seq, SEQUENCE(COUNTA(arr)))
)
arrlà mảng dữ liệu thỏa mãn điều kiện (B > 50).seqtạo dãy số tương ứng với số lượng mục trong mảng.INDEXtrả về dãy số thứ tự.
7.3. Ví dụ
| A (Tên) | B (Điểm) | D (Tên lọc) | E (Số thứ tự) |
|---|---|---|---|
| Alice | 55 | Alice | 1 |
| Bob | 45 | Bob | 2 |
| Eve | 70 | Eve | 3 |
8. Xử lý lỗi khi đánh số thứ tự
8.1.азан
- #DIV/0!: Khi sử dụng
RANK.EQhoặcCOUNTIFSmà không có dữ liệu thỏa mãn. Giải pháp: Bọc công thức trongIFERROR.
=IFERROR(RANK.EQ(B2,$B$2:$B$20,0), "")
- #N/A: Khi
MATCHkhông tìm thấy giá trị. Sử dụngIFNA.
=IFNA(MATCH(B2,sorted,0), "")
- Trùng lặp số thứ tự: Khi sử dụng
RANK.EQkhông có#để phân biệt. ThêmCOUNTIF.
=RANK.EQ(B2,$B$2:$B$20,0)+COUNTIF($B$2:B2,B2)-1
8.2. Giảm thiểu lỗi
- Đảm bảo phạm vi dữ liệu nhất quán (
$A$2:$A$20). - Sử dụng
LETđể đặt tên biến và tránh lặp lại tính toán.
9. Tối ưu hoá công thức cho bảng dữ liệu lớn
9.1. Khi làm việc với hàng nghìn dòng, mỗi công thức có thể làm chậm Excel. Dưới đây là một số mẹo:
- SOnde: Sử dụng
COUNTIFSthay vìSUMPRODUCTkhi có thể. - Truyền dữ liệu: Nếu có thể, chuyển dữ liệu vào Power Pivot hoặc Power Query để thực hiện tính toán trước khi đưa vào Excel.
- Chỉ sử dụng công thức mảng: Dùng
LETđể giảm sắp xếp lại mảngtemperature. - Sử dụng hàm
RANK.AVG: Thay vìRANK.EQđể tránh trùng lặp,RANK.AVGtính trung bình cho các giá trị trùng. - Sử dụng bảng dữ liệu (Table): Khi tạo một bảng (
Insert > Table), Excel tự động mở rộng công thức khi thêm dòng mới.
9.2. Ví dụ tối ưu
Thay vì:
=SUMPRODUCT(($A$2:$A$1000=A2)($B$2:$B$1000>0))
Bạn có thể:
=COUNTIFS($A$2:$A$1000, A2, $B$2:$B$1000, ">0")
10. Ứng dụng thực tế: Tạo bảng điểm học sinh
10.1. Mô tả
Bạn quản lý một lớp học 20 học sinh, muốn tạo bảng điểm với các cột:
Họ & TênĐiểm THPTĐiểm THIĐiểm TổngXếp hạng THPT(đánh số thứ tự giảm dần)Xếp hạng THI(đánh số thứ tự giảm dần)Xếp hạng Tổng
10.2. Công thức
Giả sử dữ liệu:
| A (Tên) | B (THPT) | C (THI) | D (Tổng) | E (Xếp hạng THPT) | F (Xếp hạng THI) | G (Xếp hạng Tổng) |
|---|---|---|---|---|---|---|
D2=B2+C2.Xếp hạng THPT:
=RANK.EQ(B2, $B$2:$B$21, 0)
- Xếp hạng THI:
=RANK.EQ(C 体育, $C$2:$C$21, 0)
- Xếp hạng Tổng:
=RANK.EQ(D2, $D$2:$D$21, 0)
10.3. Kết quả
| A (Tên) | B (THPT) | C (THI) | D (Tổng) | E (Xếp hạng THPT) | F (Xếp hạng THI) | G (Xếp hạng Tổng) |
|---|---|---|---|---|---|---|
| Nguyễn A | 85 | 90 | 175 | 3 | 2 | 2 |
| ചെയ്യ | 90 | 88 | 178 | 1 | 4 | 1 |
| … | … | … | … | … | … | … |
11. Kết hợp với Power Query
11.1. Khi nên dùng Power Query
Nếu bạn cần thực hiện các bước phức tạp, Power Query cung cấp khả năng xử lý dữ liệu linh hoạt hơn: lọc, sắp xếp, nhóm, tính toán, rồi xuất dữ liệu trở lại Excel với số thứ tự.
11.2. Bước thực hiện
- Import dữ liệu:
Data > Get & Transform Data > From Table/Range. - Thêm cột Index:
Add Column > Index Column > From 1. - Sắp xếp:
Home > Sort Ascending/Descending. - Lọc:
Home > Keep Rows > Keep Top RowshoặcKeep Bottom Rows. - Lưu và tải:
Close & Load.
Power Query tự động cập nhật số thứ tự khi dữ liệu thay đổi.
12. Tổng kết và lời khuyên
12.1. Tóm tắt các công thức chính
| Tình huống | Công thức chính |
|————|—————- өткән |
| Cột trống | =IF(A2<>"", ROW(A2)-ROW($A$2)+1, "") |
| Theo nhóm | =COUNTIFS($A$2:A2, A2) |
| Điều kiện phức tạp | =SUMPRODUCT(($A$2:$A$20=A2)($C$2:$C$20>2)1) |
| Dữ liệu duy nhất | =UNIQUE(A2:A100) + =SEQUENCE(COUNTA(...)) |
| Thứ tự giảm dần | =RANK.EQ(B2,$B$2:$B$20,0) |
| Lọc | =SUBTOTAL(103 കാര്യ) $A$2:$A2 |
| Hàm lưới | =FILTER(A2:A100, B2:B100>50) + =SEQUENCE(...) |
12.2. Mẹo nhỏ
- Bảo vệ công thức: Đặt công thức trong
LETđể tránh lặp lại và tăng tốc tính toán. - Sử dụng
Checkbox: Nếu bạn đang làm bảng điều khiển, hãy thêmCheckBoxđể kích hoạt tính năng đánh số. - Kiểm tra dữ liệu: Trước khi áp dụng công thức, hãy kiểm tra dữ liệu có thiếu hoặc sai dữ liệu không.
12.3. Kết luận
Việc đánh số thứ tự có điều kiện trong Excel không chỉ giúp bạn kiểm soát dữ liệu một cách rõ ràng mà còn mở ra nhiều khả năng phân tích nâng cao. Bằng cách kết hợp các hàm mạnh mẽ như IF, COUNTIFS, SUMPRODUCT, UNIQUE, SEQUENCE, SORT, INDEX, FILTER, bạn có thể đáp ứng hầu hết các yêu cầu phức tạp trong công việc hàng ngày. Hãy thử áp dụng những công thức trên vào dữ liệu của bạn và trải nghiệm sự tiện lợi mà chúng mang lại. Happy Excel!

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