Hàm Đếm Số Ô Chứa Giá Trị Chuỗi Trong Excel

Giới thiệu

Trong công việc quản lý dữ liệu, báo cáo tài chính, phân tích khách hàng hay theo dõi tiến độ dự án, việc đếm số ô chứa một chuỗi cụ thể trong bảng tính Excel là một thao tác thường xuyên. Bạn có thể cần xác định số lượng khách hàng có tên “Nguyễn”, kiểm tra số lượng sản phẩm bị lỗi, hoặc đếm số bản ghi có giá trị “Chưa thanh toán_city”. Để đạt được điều này, Excel cung cấp một dải hàm mạnh mẽ, từ COUNTIF đến SUMPRODUCT, FILTER, REGEXMATCH và thậm chí VBA. Bài viết này sẽ đi sâu vào từng phương pháp, cung cấp ví dụ thực tế, mẹo tối ưu, và so sánh ưu nhược điểm của từng cách tiếp cận. Bạn sẽ có thể áp dụng ngay vào bảng tính của mình, tiết kiệm thời gian và giảm thiểu sai sót.

Tại sao cần đếm ô chứa chuỗi?

Đếm số ô chứa chuỗi giúp:

  1. Xác định tần suất: Biết có bao nhiêu ô có giá trị “Đang chờ” để lập kế hoạch xử lý.
  2. Kiểm tra dữ liệu: Kiểm tra tính nhất quán của dữ liệu, ví dụ: xem có ô nào trống hay có giá trị “NULL” không.
  3. Phân tích xu hướng: Đếm số lần xuất hiện của một từ khóa trong dữ liệu văn bản để rút ra xu hướng.
  4. Tạo báo cáo tự động: Sử dụng trong Dashboard để hiển thị số liệu nhanh chóng.

Như vậy, việc nắm vững các hàm đếm chuỗi là một kỹ năng quan trọng đối với mọi người làm việc với Excel.

Các hàm cơ bản

1. COUNTIF(range, criteria)

  • Cú pháp: COUNTIF(danh_sách, điều_kiện)
  • Mô tả: Đếm số ô trong range thỏa mãn criteria. criteria có thể là một chuỗi, số, biểu thức, hoặc ký tự đại diện (, ?).
  • Ví dụ: Đếm số ô chứa “Nguyễn” trong cột A:
    =COUNTIF(A:A, "Nguyễn")

2. COUNTIFS(range1, criteria1, range2, criteria2, ...)

  • Cú pháp: COUNTIFS(danh_sách1, điều_kiện1, danh_sách2, điều_kiện2, …)
  • Mô tả: Đếm số ô thỏa mãn nhiều điều kiện đồng thời. Mỗi cặp range và criteria tương ứng.
  • Ví dụ: Đếm số bản ghi có tên “Nguyễn” và trạng thái “Chưa thanh toán”:
    =COUNTIFS(A:A, "Nguyễn", B:B, "Chưa thanh toán")

3. SEARCH(find_text, within_text, start_num)

  • Cú pháp: SEARCH( ». Câu “ resumo »? Đếm số ô chứa chuỗi “Nguyễn” mà không muốn tính “Nguyễn” trong “Nguyễn Văn”? (điều kiện điều kiện).
  • Ví dụ:
    =SUMPRODUCT(--(ISNUMBER(SEARCH("Nguyễn", A:A))))

4. LEN(text)

  • Mô tả: Trả về độ dài ký tự của chuỗi. Có thể kết hợp với SEARCH để xác định sự xuất hiện của chuỗi.
  • Ví dụ: Kiểm tra xem ô có chứa “Nguyễn” hay không:
    =IF(ISNUMBER(SEARCH("Nguyễn", A1)), "Có", "Không")

5. REGEXMATCH(text, regular_expression)

  • Cú pháp: REGEXMATCH(text, regex)
  • Mô tả: Trả về TRUE nếu chuỗi khớp với biểu thức chính quy, ngược lại là FALSE. Tính năng này có sẵn trong Excel 365/Office 365.
  • Ví dụ: Đếm số ô có từ “Nguyễn” theo quy tắc chính quy:
    =SUM(--REGEXMATCH(A:A, "Nguyễn"))

6. FILTER(array, include, if_empty)

  • Mô tả: Trả về mảng chứa các ô thỏa mãn điều kiện. Khi kết hợp với ROWS, ta có thể đếm số lượng:
    =ROWS(FILTER(A:A, ISNUMBER(SEARCH("Nguyễn", A:A))))

7. SUMPRODUCT(array1, array2, ...)

  • Mô tả: Hợp nhất tính toán mảng. Thường dùng để đếm điều kiện phức tạp:
    =SUMPRODUCT(--(ISNUMBER(SEARCH("Nguyễn", A:A))), --(B:B="Chưa thanh toán"))

Chi tiết cách thực hiện

1. Đếm ô chứa chuỗi với COUNTIF

Giả sử bạn có bảng dữ liệu trong cột A, và muốn đếm số ô chứa từ “Nguyễn”. Bạn viết công thức sau trong ô B1:

=COUNTIF(A:A, "Nguyễn")
  • là ký tự đại diện, cho phép bất kỳ ký tự nào trước và sau “Nguyễn”.
  • Nếu bạn muốn chính xác “Nguyễn” và không cho phép “Nguyễn Văn”, bạn có thể dùng:
    =COUNTIF(A:A, "Nguyễn").

2. Đếm ô chứa chuỗi với điều kiện bổ sung (điều kiện nhiều)

Nếu bạn cần đếm số bản ghi có cả “Nguyễn” và “Chưa thanh toán” trong cột B, dùng COUNTIFS:

=COUNTIFS(A:A, "Nguyễn", B:B, "Chưa thanh toán")

Điều này sẽ Weitere.

3. Đếm ô chứa chuỗi bằng SUMPRODUCT + SEARCH

SEARCH là hàm hỗ trợ tìm kiếm không phân biệt chữ hoa/chữ thường. Kết hợp với SUMPRODUCTுல, ta có thể đếm:

=SUMPRODUCT(--ISNUMBER(SEARCH("Nguyễn", A:A)))
  • ISNUMBER(SEARCH(...)) trả về mảng TRUE/FALSE, chuyển thành 1/0 bằng --.
  • SUMPRODUCT cộng dồn các giá trị 1 để đưa ra tổng.

Điều này có ưu điểm là có thể áp dụng nhiều điều kiện trong một công thức mà COUNTIFS không hỗ trợ (ví dụ: tìm بتاريخ.

4. Đếm ô wygląda với REGEXMATCH

Nếu Excel của bạn hỗ trợ hàm REGEXMATCH, bạn có thể viết:

=SUM(--REGEXMATCH(A:A, "Nguyễn"))
  • REGEXMATCH trả về TRUE nếu chuỗi khớp với biểu thức chính quy.
  • Mã này rất linh hoạt: bạn có thể viết mẫu \bNguyễn\b để khớp đúng từ.

5. Đếm ô có chuỗi bằng FILTER + ROWS

Hàm Đếm Số Ô Chứa Giá Trị Chuỗi Trong Excel
Hàm Đếm Số Ô Chứa Giá Trị Chuỗi Trong Excel

Trong Excel 365, bạn có thể sử dụng FILTER để lọc mảng:

=ROWS(FILTER(A:A, ISNUMBER(SEARCH("Nguyễn", A:A))))
  • FILTER trả về mảng các ô thỏa mãn điều kiện.
  • ROWS đếm số dòng trong mảng đó.

6. Đếm ô có chuỗi trong một mảng động

Nếu dữ liệu nằm trong một bảng động (Table) có tên BảngDữLiệu, bạn có thể viết:

=COUNTIF(BảngDữLiệuColumn1, "Nguyễn")

Khi thêm ô mới vào bảng, công thức tự động cập nhật.

Mẹo tối ưu và lưu ý

TaterdagLợi íchKhuyến nghị
Tránh dùng COUNTIF với toàn cộtGiảm tải tính toánDùng phạm vi cụ thể, ví dụ A1:A1000.
Sử dụng SEARCH thay vì FINDKhông phân biệt chữ hoa/chữ thườngSEARCH nhận #VALUE! nếu không tìm thấy, cần ISNUMBER.
Kết hợp nhiều điều kiện phức tạpĐộ chính xác caoSUMPRODUCT + -- hoặc FILTER + ROWS.
Sử dụng hàm mới trong Office 365Đơn giản hơnCOUNTIFS + TEXTJOIN hoặc FILTER + COUNTA.
Cẩn thận với ký tự đặc biệtTr programEscape ký tự trong regex (ví dụ: \).
Bảo vệ dữ liệu nhạy cảmAn toànSử dụng =LEN(A1) - LEN(SUBSTITUTE(A1,"Nguyễn","")) để tính số lần xuất hiện.

Kiểm tra dữ liệu khi có ô trống

Nếu bạn muốn đếm số ô chứa chuỗi “Nguyễn” và không trống, dùng:

=COUNTIFS(A:A, "Nguyễn", A:A, "<>")

Đếm số lần xuất hiện của chuỗi trong một ô

Đôi khi bạn muốn biết trong một ô có bao nhiêu lần xuất hiện “Nguyễn”. Dùng công thức:

=LEN(TRIM(A1)) - LEN(SUBSTITUTE(A1, "Nguyễn", ""))
  • SUBSTITUTE loại bỏ chuỗi “Nguyễn”.
  • So sánh độ dài trước và sau để tính số lần.

Đếm chuỗi trong chuỗi lớn với SEARCH v.s. FIND

HàmPhân biệtĐặc điểm
FINDPhân biệt chữ hoa/chữ thườngTham số: (find_text, within_text, start_num)
SEARCHKhông phân biệtTương tự, nhưng chấp nhận ký tự đại diện.

Đếm chuỗi có liên quan tới ngày tháng

Nếu chuỗi chứa ngày, bạn có thể dùng TEXT để chuyển đổiוג:

=COUNTIF(A:A, ""&TEXT(DATE(2026,7,19),"dd/mm/yyyy")&"")

Thí dụ thực tế

1. Bảng dữ liệu khách hàng

Mã Khách hàngTênTrạng thái
KH001Nguyễn Văn AĐã thanh toán
KH002Trần Thị BChưa thanh toán
KH003Nguyễn CĐã thanh toán
KH004Lê DChưa thanh toán
KH005Nguyễn Văn EChưa thanh toán

Bạn muốn tính số khách hàng có tên chứa “Nguyễn” và chưa thanh toán.

  • Công thức:
    =COUNTIFS(A:A, "Nguyễn", C:C, "Chưa thanh toán")
    Kết quả: 2 (KH002 và KH005).

2. Báo cáo lỗi sản phẩm

Sản phẩmMô tả lỗiNgày lỗi
SP001Vỡ vỏ2026-07-12
SP002Hỏng linh kiện2026-07-13
SP003Vỡ vỏ2026-07-14
SP004Hỏng linh kiện2026-07-15
SP005Vỡ vỏ2026-07-16

Bạn muốn đếm số lỗi vỡ vỏ.

  • Công thức:
    =COUNTIF(B:B, "vỡ vỏ")
    Kết quả: 3.

3. Kiểm tra dữ liệu trống hoặc “NULL”

IDTrạng thái
1NULL
2Đang chờ
3NULL
4Đã xong

Công thức: =COUNTIF(B:B, "NULL") → 2.

So sánh các hàm

HàmĐộ phức tạpKhả năng mở rộngHiệu suất
COUNTIFDễ sử dụngHạn chế nhiều điều kiệnTốt cho dữ liệu nhỏ
COUNTIFSEXECHỗ trợ nhiều điều kiệnTốt, nếu điều kiện không quá nhiều
SUMPRODUCT + SEARCHPhức tạpRất linh hoạtCó thể chậm với hàng trăm ngàn ô
REGEXMATCHMạnh mẽHỗ trợ regexTốt, nhưng không có trong Excel cũ
FILTER + ROWSĐộngDễ bảo trìTốt trong Office 365

Cách tránh lỗi phổ biến

  1. Sai ký tự geluid: Khi dùng trong COUNTIF, hãy đặt chuỗi trong dấu ngoặc kép: "Nguyễn".
  2. Trùng lặp dữ liệu: Nếu muốn đếm số ô duy nhất, kết hợp với UNIQUE và COUNTA:
    =COUNTA(UNIQUE(FILTER(A:A, ISNUMBER(SEARCH("Nguyễn", A:A))))).
  3. Dữ liệu trống: Khi dùng SEARCH, nếu ô trống, SEARCH trả về lỗi. Dùng IFERROR hoặc ISNUMBER để tránh lỗi.
  4. Cấu trúc dữ liệu không nhất quán: Kiểm tra định dạng dữ liệu; nếu có ký tự không nhìn thấy (trailing spaces), dùng TRIM trước khi đếm.

Tối ưu hóa hiệu suất

  • Dùng phạm vi có giới hạn thay vì A:A để tránh tính toán toàn cột.
  • Sử dụng tên vùng hoặc bảng để dễ quản lý.
  • Khi làm việc với dữ liệu lớn, cân nhắc chuyển sang Power Query hoặc VBA để xử lý nhanh hơn.

VBA – Giải pháp nâng cao

Nếu bạn muốn tự động hoá quá trình đếm trong Redis, có thể viết macro:

Function CountStringInRange(rng As Range, searchStr As String) As Long Dim cell As Range Dim count As Long count = 0 For Each cell In rng If InStr(1, cell.Value, searchStr, vbTextCompare) > 0 Then count = count + 1 End If Next cell CountStringInRange = count
End Function

Sau đó, trong Excel:

=CountStringInRange(A1:A1000, "Nguyễn")

Macro này có thể mở rộng để tính số lần xuất hiện hoặc áp dụng điều kiện phức tạp hơn.

Kết luận

Đếm số ô chứa giá trị chuỗi trong Excel là một thao tác thiết yếu, có thể thực hiện qua nhiều hàm và phương pháp khác nhau. Từ COUNTIF và COUNTIFS cho đến SUMPRODUCT, SEARCH, REGEXMATCH, FILTER, và thậm chí VBA, bạn có thể chọn công cụ phù hợp với nhu cầu và mức độ phức tạp của dữ liệu. Bằng cách áp dụng các mẹo tối ưu, tránh lỗi thường gặp và hiểu rõ ưu nhược điểm của từng hàm, bạn sẽ nhanh chóng nâng cao khả năng phân tích dữ liệu trong Excel, tạo ra những báo cáo chính xác, nhanh chóng và chuyên nghiệp hơn.

Hãy thử áp dụng ngay những công thức trên vào bảng tính của bạn, thử nghiệm và điều chỉnh để phù hợp nhất với dữ liệu thực tế. Chúc bạn thành công trong việc quản lý và phân tích dữ liệu!

⚠️
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