Trong thế giới dữ liệu ngày nay, Excel vẫn là công cụ phổ biến nhất để quản lý, phân tích và trực quan hóa dữ liệu. Một trong những thao tác cơ bản nhưng vô cùng quan trọng là đếm số lần xuất hiện của một ký tự hoặc chuỗi ký tự trong một tập hợp ô. Dù bạn là người mới bắt đầu hay là chuyên gia, việc nắm vững các hàm và phương pháp đếm ký tự trong Excel sẽ giúp ích rất nhiều trong công việc hàng ngày, từ việc kiểm tra dữ liệu, phân loại, đến báo cáo thống kê.
Bài viết này sẽ đi sâu vào các hàm Excel thường dùng, cách kết hợp chúng, những mẹo nhỏ để tránh lỗi, và cả cách mở rộng bằng VBA, Power Query, Power Pivot hay dynamic array. Bạn sẽ có một tài liệu tham khảo chi tiết, có thể áp dụng ngay vào thực tế.
Có thể bạn quan tâm: Công Thức Đếm Số Lần Xuất Hiện Trong Excel: Hướng Dẫn Chi Tiết Và Ứng Dụng
1. Tại sao cần đếm ký tự trong Excel?
Trước khi đi vào công thức, hãy hiểu một số tình huống thực tế mà việc đếm ký tự trở nên quan trọng:
- Kiểm tra tính hợp lệ: Ví dụ, đảm bảo rằng một cột số điện thoại chỉ chứa 10 chữ số, không có ký tự đặc biệt.
- Phân loại dữ liệu: Nhận diện tên người dùng có chứa ký tự dương, từ ngữ cấm, hay từ khóa cần lọc.
- Phân tích dữ liệu marketing: Đếm số lần xuất hiện của từ khóa trong mô tả sản phẩm, đánh giá mức độ phổ biến.
- Báo cáo thống kê: Tính tần suất xuất hiện của một ký tự trong dữ liệu lớn để đưa ra biểu đồ, biểu diễn xu hướng.
- Tìm lỗi dữ liệu: Nếu một cột số nguyên không được nhập đúng định dạng, đếm ký tự có thể giúp phát hiện lỗi.
Như vậy, việc sử dụng hàm đếm ký tự làزمات nền tảng để đảm bảo dữ liệu sạch và có thể phân tích sâu hơn.
Có thể bạn quan tâm: Công Thức Tự Nhảy Số Thứ Tự Trong Excel
2. Các hàm cơ bản để đếm ký tự
2.1 Hàm LEN
- Công thức:
LEN(text). - Mô tả: Trả về số ký tự trong chuỗi
text. - Ví dụ:
=LEN("ABC")trả về 3.
Hàm LEN thường được dùng làm bước đầu để xác định độ dài chuỗi, nhưng nó không hỗ trợ tính số lần xuất hiện của ký tự cụ thể. Để tính số lần xuất hiện, ta cần kết hợp với các hàm khác.
2.2 Hàm SUBSTITUTE
- Công thức:
SUBSTITUTE(text, old_text, new_text, instance_num). - Mô tả: Thay thế chuỗi
old_textbằngnew_text. Nếuinstance_numkhông được cung cấp, tất cả các ký tựold_textsẽ được thay thế. - Mỗi thay thế: Khi
new_textlà chuỗi rỗng, ta có thể loại bỏ ký tự cần đếm.
Kết hợp với LEN, ta có thể tính số lần xuất hiện:
=LEN(A1) - LEN(SUBSTITUTE(A1, "a", ""))
Giải thích: LEN(A1) là độ dài ban đầu; SUBSTITUTE(A1, "a", "") loại bỏ tất cả ký tự “a”; LEN(...) của chuỗi đã loại bỏ cho biết độ dài còn lại. Hiệu số chính là số ký tự.Map.
2.3 Hàm COUNTIF
- Công thức:
COUNTIF(range, criteria). - Mô tả: Đếm số ô trong
rangethỏa mãncriteria. - Sử dụng với ký tự: Nếu+-+-+ muốn đếm số ô chứa ký tự nhất định, ta có thể dùng
COUNTIF(range, "a")(ký tựlà wildcard). Đây là cách nhanh nhất khi bạn muốn đếm số ô chứa ký tự, không phải số lần xuất hiện trong từng ô.
Ví dụ: =COUNTIF(A1:A10, "a") sẽ trả về số ô trong cột A có chứa chữ “a”.
2.4 Hàm SUMPRODUCT
- Công thức:
SUMPRODUCT(array1, array2, ...). - Mô tả: Tính tổng của tích các phần tử trong các mảng. Khi dùng điều kiện, nó trở thành công cụ mạnh để tính tổng số lần xuất hiện.
- Cách dùng:
=SUMPRODUCT(--(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="a"))– nhưng điều này còn phức tạp.
Một cách đơn giản hơn là dùng SUMPRODUCT kết hợp với LEN và SUBSTITUTE:
=SUMPRODUCT(LEN(A1:A10) - LEN(SUBSTITUTE(A1:A10, "a", "")))
Nếu A1:A10 là dải ô, công thức này sẽ tính tổng số lần xuất hiện của “a” trong toàn bộ dải.
Có thể bạn quan tâm: Công Thức Tính Giá Trị Lớn Nhất Trong Excel
3. Kiến thức nâng cao: Đếm ký tự trong nhiều ô
3.1 Đếm ký tự trong một dải ô (range)
Khi bạn muốn đếm số lần xuất hiện của một ký tự trong toàn bộ cột hoặc hàng, ta có thể dùng công thức array:
=SUMPRODUCT(LEN(A1:A100) - LEN(SUBSTITUTE(A1:A100, "a", "")))
Lưu ý: Trong Excel 365, bạn có thể dùng SUM + MAP hoặc BYROW:
=SUM(MAP(A1:A100, LAMBDA(x, LEN(x)-LEN(SUBSTITUTE(x,"a","")))))
Điều này giúp giảm thiểu việc ghi công thức array phức tạp.
3.2 Đếm ký tự trong một chuỗi lớn (định dạng văn bản)
Đôi khi dữ liệu của bạn có thể nằm trong một ô duy nhất, ví dụ một tài liệu văn bản lớn. Để đếm ký tự trong một chuỗi lớn, bạn vẫn dùng công thức trên, chỉ cần thay đoạn LEN(A1) bằng LEN(A1) và SUBSTITUTE(A1,"a",""). Nếu chuỗi quá dài (hơn 32767 ký tự), Excel sẽ trả về lỗi #VALUE!. Trong trường hợp này, bạn có thể chia chuỗi thành các phần nhỏ hoặc dùng VBA.
3.3 Đếm ký tự trong hàng hoặc cột với điều kiện
Bạn có thể kết hợp SUMPRODUCT với IF trong array để đếm ký tự chỉ trong những ô đáp ứng điều kiện:
=SUMPRODUCT((B1:B10="Yes")(LEN(A1:A10)-LEN(SUBSTITUTE(A1:A10,"a",""))))
Ở đây, SUMPRODUCT tạo một mảng True/False (1/0) dựa trên điều kiện B1:B10="Yes", và nhân với số lần xuất hiện ký tự trong A1:A10.
4. Cách sử dụng hàm TEXTJOIN và FILTER trong Excel 365
Excel 365 giới thiệu các hàm dynamic array như FILTER, UNIQUE, SEQUENCE, TEXTJOIN. Bạn có thể tận dụng chúng để làm việc với dữ liệu chặt chẽ hơn.
4.1 Chuyển öfter chuỗi thành mảng ký tự
Bạn có thể dùng MID kết hợp với SEQUENCE để tách từng ký tự ra một mảng:
=MID(A1, SEQUENCE(LEN(A1)), 1)
Kết quả sẽ là một mảng các ký tự trong ô A1. Bạn có thể dùng FILTER để lọc ra những ký tự cụ thể:
=FILTER(MID(A1, SEQUENCE(LEN(A1)), Hl), MID(A1, SEQUENCE(LEN(A1)), 1)="a")
Điều này sẽ trả về các ký tự “a” trong A1 (mảng có độ dài bằng số lần xuất hiện).
4.2 Đếm ký tự bằng TEXTJOIN và FREQUENCY

Có thể bạn quan tâm: Tải Và Cài Đặt Vba Cho Excel Bằng Tiếng Việt: Hướng Dẫn Toàn Diện
Mặc dù TEXTJOIN thường dùng để nối chuỗi, bạn có thể dùng nó để cộng dồn ký tự sau khi lọc:
=LEN(TEXTJOIN("",TRUE,FILTER(MID(A1,SEQUENCE(LEN(A1)),1),MID(A1,SEQUENCE(LEN(A1)),1)="a")))
Công thức này tạo chuỗi bao gồm tất cả ký tự “a” trong A1, và LEN tính độ dài chuỗi – tương đương với số lần xuất hiện.
5. Sử dụng VBA để đếm ký tự
Nếu bạn làm việc với dữ liệu lớn hoặc muốn tự động hóa quy trình, VBA (Visual Basic for Applications) là công cụ mạnh.
5.1 Hàm CountChar trong VBA
Function CountChar(rng As Range, charToCount As String) As Long Dim cell As Range Dim total As Long total = 0 For Each cell In rng If Len(cell.Value) > 0 Then total = total + Len(cell.Value) - Len(Replace(cell.Value, charToCount, "")) End If Next cell CountChar = total
End Function
Sử dụng trong Excel:
=CountChar(A1:A100, "a")
5.2 Đếm ký tự trong một ô duy nhất
Function CountCharInCell(text As String, charToCount As String) As Long CountCharInCell = Len(text) - Len(Replace(text, charToCount, ""))
End Function
5.3 Đặt macro trong workbook
Bạn có thể gắn macro này vào một nút hoặc gợi ý khi dữ liệu thay đổi (Worksheet_Change event). Ví dụ:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A100")) Is Nothing Then Range("B1").Value = CountChar(Range("A1:A100"), "a") End If
End Sub
Khi dữ liệu trong cột A thay đổi, ô B1 sẽ tự động cập nhật tổng số lần xuất hiện của ký tự “a”.
6. Kiểm tra lỗi và tối ưu hiệu năng
6.1 Đánh giá lỗi #VALUE!
- Khi chuỗi quá dài (hơn 32767 ký tự):
LENvàSUBSTITUTEsẽ trả về lỗi. Giải pháp: chia nhỏ chuỗi, hoặc dùngVBA. - Khi ô rỗng:
LEN("")trả về 0,SUBSTITUTE("", "a", "")cũng trả về “”, nên công thức vẫn ổn. Tuy nhiên, kiểm traIFcó thể tránh tính toán không cần thiết.
6.2 Tối ưu công thức
- Tránh tính toán lặp: Khi dùng
SUMPRODUCTtrên dải lớn, Excel sẽ tính lại nhiều lần. Nếu có thể, tạo một cột phụ lưuLEN(A1)và gearLEN(SUBSTITUTE(A1,"a","")). Sau đó dùngSUMPRODUCTchỉ trên cột phụ. - Sử dụng
LET(Excel 365): Đặt các biến tạm thời để giảm tải:
=LET( s, A1:A100, l, LEN(s), sl, LEN(SUBSTITUTE(s, "a", "")), SUM(l - sl)
)
- Giảm kích thước dải: Hạn chế dải theo tên định danh hoặc các cột thực tế, tránh toàn cột (A:A) trừ khi cần thiết.
6.3 Sử dụng Power Query
Power Query có thể xử lý dữ liệu lớn nhanh hơn. Bạn có thể thêm cột “CountA അമേരിക്ക” bằng cách:
- Tạo cột mới: Trong Power Query Editor, chọn “Add Column” > “Custom Column” và nhập công thức:
m Text.Length(Column1) - Text.Length(Text.Replace(Column1, "a", "")) - Tính tổng: Sau khi tải dữ liệu trở về Excel, dùng hàm
SUMđể lấy tổng.
7. Ứng dụng thực tế: Kiểm tra dữ liệu trong bảng bán hàng
Giả sử bạn có bảng bán hàng với cột “Mã ịdị” (Product Code) và bạn muốn xác định:
- Số lượng mã có ký tự “X”.
- Tổng số ký tự “X” trong toàn bộ mã.
| Mã sản phẩm | Giá | Số lượng |
|---|---|---|
| X1234 | 50 | 10 |
| A5678 | 30 | 5 |
| BX999 | 20 | 8 |
| X2000 | 45 | 12 |
7.1 Đếm số ô chứa “X”
=COUNTIF(A2:A5, "X")
Kết quả: 3 (tất cả những ô có “X”).
7.2 Đếm tổng số ký tự “XLBL”
=SUMPRODUCT(LEN(A2:A5)-LEN(SUBSTITUTE(A2:A5,"X","")))
Kết quả: 4 (X trong X1234, X trong BX999, X trong X2000 và X trong X2000).
8. Mẹo nhanh: Đếm ký tự trong một chuỗi đa ngôn ngữ
Khi làm việc với tiếng Việt, các ký tự có dấu phức tạpandiswa. Bạn không muốn đếm “a” và “á” như nhau. Sử dụng hàm LOWER để chuẩn hóa:
=LEN(LOWER(A1)) - LEN(SUBSTITUTE(LOWER(A1), "a", ""))
Nếu muốn tính “á” riêng:
=LEN(A1) - LEN(SUBSTITUTE(A1, "á", ""))
প্ৰকাশ.
9. Bảo mật dữ liệu khi sử dụng công thức
Nếu công thức của bạn chứa dữ liệu nhạy cảm, hãy:
- Đặt công thức trongmerking: Sử dụng
Sheet Protectionđể ngăn người dùng sửa công thức. - Sử dụng Named Range: Đặt dải dữ liệu vào một tên, và chỉ công thức tham chiếu đến tên. Khi dữ liệu được bảo vệ, công thức vẫn hoạt động.
10. Tóm tắt và lời khuyên
| Phương pháp | Khi nào dùng | Ưu điểm | Nhược điểm |
|---|---|---|---|
LEN + SUBSTITUTE | Đếm ký tự trong ô | Đơn giản, không cần array | Không hỗ trợ dải, cần tính riêng cho từng ô |
COUNTIF | Đếm ô chứa ký tự | Nhanh, dễ hiểu | Chỉ đếm ô, không tính số lần trong ô |
SUMPRODUCT | Đếm ký tự trong dải | Độ chính xác cao | Tốn tài nguyên khi dải lớn |
VBA | Dữ liệu lớn, tự động hóa | Linh hoạt | Cần kiến thức VBA |
Power Query | Dữ liệu hookups, ETL | Hiệu năng cao | Cần học Power Query |
Dynamic Array (FILTER, SEQUENCE, TEXTJOIN) | Excel 365 | Tính năng hiện đại | Không có trên các phiên bản cũ |
Lời khuyên: Bắt đầu với LEN + SUBSTITUTE cho các ô đơn lẻ. Khi mở rộng sang dải lớn, chuyển sang SUMPRODUCT hoặc VBA. Nếu làm việc với dữ liệu lớn và muốn tối ưu, hãy thử Power Query.
11. Kết luận
Trong môi trường làm việc ngày càng phức tạp, việc đếm số lần xuất hiện ký tự trong Excel không chỉ là một thao tác cơ bản mà còn là chìa khóa mở ra nhiều ứng dụng thực tiễn: kiểm tra tính hợp lệ, phân tích dữ liệu, tự động hóa báo cáo. Bằng cách nắm vững các hàm như LEN, SUBSTITUTE, COUNTIF, SUMPRODUCT, cùng với công nghệ mới như dynamic array, VBA, và Power Query, bạn sẽ có thể xử lý mọi tình huống một cách nhanh chóng, chính xác và hiệu quả.
Hãy thử áp dụng những công thức và mẹo trên vào bảng tính hiện tại của bạn, và bạn sẽ thấy sự thay đổi rõ rệt trong việc quản lý và phân tích dữ liệu. Chúc bạn thành công!

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