Hàm Đánh Số Thứ Tự Có Điều Kiện Trong Excel

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 SUBTOTAL hoặc FILTER).
  • 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.

Mục lục bài viế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)+1 tí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ế

AB (Số thứ tự)
Hình ảnh 11
Hình ảnh 32
Hình ảnh 43

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.

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:A2 là phạm vi động; khi sao chép công thức xuống, phạm vi sẽ mở rộng dần.
  • A2 là đ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ửLaptop1
Điện tửSmartphone2
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

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-01Laptop5
2026-01-01Smartphone3
2026-01-02Laptop2
2026-01-02Smartphone 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=A2 trả về mảng TRUE/FALSE cho ngày hiện tại.
  • $C$2:$C$20>2 kiểm tra số lượng > 2.
  • 1 chuyển TRUE/FALSE thành 1/0.
  • SUMPRODUCT tí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-01Laptop51
2026-01-01Smartphone32
2026-01-01Tablet1
2026-01-02Laptop2
2026-01-02Smartphone41
  • 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 ý

  • SUMPRODUCT không cần công thức mảng; bạn stopwatch gõ và nhấn Enter.
  • Khi dữ liệu lớn, SUMPRODUCT có thể chậm hơn so với COUNTIFS, 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)
  • UNIQUE trích xuất các giá trị duy nhất.
  • SEQUENCE tạ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ự)
AliceAlice1
BobBob2
AliceCharlie3
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

Hàm Đánh Số Thứ Tự Có Điều Kiện Trong Excel
Hàm Đánh Số Thứ Tự Có Điều Kiện 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.EQ trả về vị trí thứ của giá trị trong dãy; 0 cho 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)
901
852
901
704

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)
  • 103 là hàm COUNTA trong SUBTOTAL. SUBTOTAL chỉ 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, SUBTOTAL sẽ 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)
1101
252
383

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 ý

  • SUBTOTAL không thể sử dụng trực tiếp với COUNTIFS; bạn cần kết hợp với IF hoặc FILTER nế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)))
)
  • arr là mảng dữ liệu thỏa mãn điều kiện (B > 50).
  • seq tạo dãy số tương ứng với số lượng mục trong mảng.
  • INDEX trả 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ự)
Alice55Alice1
Bob45Bob2
Eve70Eve3

8. Xử lý lỗi khi đánh số thứ tự

8.1.азан

  • #DIV/0!: Khi sử dụng RANK.EQ hoặc COUNTIFS mà không có dữ liệu thỏa mãn. Giải pháp: Bọc công thức trong IFERROR.
=IFERROR(RANK.EQ(B2,$B$2:$B$20,0), "")
  • #N/A: Khi MATCH không tìm thấy giá trị. Sử dụng IFNA.
=IFNA(MATCH(B2,sorted,0), "")
  • Trùng lặp số thứ tự: Khi sử dụng RANK.EQ không có # để phân biệt. Thêm COUNTIF.
=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 COUNTIFS thay vì SUMPRODUCT khi 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.AVG tí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ổng
  • Xế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 A8590175322
ചെയ്യ9088178141
…………………

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

  1. Import dữ liệu: Data > Get & Transform Data > From Table/Range.
  2. Thêm cột Index: Add Column > Index Column > From 1.
  3. Sắp xếp: Home > Sort Ascending/Descending.
  4. Lọc: Home > Keep Rows > Keep Top Rows hoặc Keep Bottom Rows.
  5. 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êm CheckBox để 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!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận