Khi làm việc trong Microsoft Excel, đôi khi chúng ta cần tìm các mẫu cụ thể bằng biểu thức chính quy (Regex). Tuy nhiên, Excel không hỗ trợ Regex gốc. Do đó, bạn có thể gặp khó khăn. Trong bài viết này, tôi sẽ chia sẻ cách đếm Regex với hàm COUNTIF trong Excel.
Đếm Regex với COUNTIF trong Excel: Các bước chi tiết
Dưới đây là các bước chi tiết để đếm Regex với COUNTIF trong Excel.
Bước 1: Chuẩn bị bộ dữ liệu cho khớp Regex
Giả sử chúng ta có bộ dữ liệu Danh sách liên lạc. Chúng ta sẽ dùng hàm COUNTIF kết hợp Regex để kiểm tra trong Excel.
Như bạn thấy, chúng ta có Danh sách liên lạc từ đó sẽ kiểm tra xem có chứa Số điện thoại hay không trong bảng.

Bước 2: Tạo hàm hỗ trợ tùy chỉnh (Custom Helper Function) bằng VBA
Trong phần này, chúng ta sẽ dùng mã VBA để tạo hàm hỗ trợ tùy chỉnh tên là RegExMatch. Làm theo hướng dẫn dưới đây:
- Trước tiên, khi sổ làm việc đang mở, nhấn ALT + F11 để mở cửa sổ "Microsoft Visual Basic for Applications".
- Thứ hai, chọn "Module" từ tùy chọn "Insert" (Chèn).

- Tiếp theo, dán mã sau vào mô-đun và lưu lại:
Public Function RegExMatch(input_reg_range As Range, reg_pattern As String, Optional reg_match As Boolean = True) As Variant
Dim WX() As Variant
Dim Input_Row, Input_Col, cnt_Rows, cnt_Cols As Long
On Error GoTo ErrHandl
RegExMatch = WX
Set Wregex = CreateObject("VBScript.RegExp")
Wregex.pattern = reg_pattern
Wregex.Global = True
Wregex.MultiLine = True
If True = reg_match Then
Wregex.ignorecase = False
Else
Wregex.ignorecase = True
End If
cnt_Rows = input_reg_range.Rows.Count
cnt_Cols = input_reg_range.Columns.Count
ReDim WX(1 To cnt_Rows, 1 To cnt_Cols)
For Input_Row = 1 To cnt_Rows
For Input_Col = 1 To cnt_Cols
WX(Input_Row, Input_Col) = Wregex.Test(input_reg_range.Cells(Input_Row, Input_Col).Value)
Next
Next
RegExMatch = WX
Exit Function
ErrHandl:
RegExMatch = CVErr(xlErrValue)
End Function

- Sau đó, chúng ta sẽ đặt mẫu Regex sau vào trang tính (vì Excel không hỗ trợ Regex gốc):
\(\d{3}\)|\d{3})[-\.\s]?\d{3}[-\.\s]?\d{4}\b

Đọc thêm: Cách tìm mẫu RegEx trong Excel
Bước 3: Sử dụng công thức để tìm Regex và đếm
Sau khi đã thiết lập hàm RegExMatch, lần này chúng ta sẽ áp dụng hàm này để tìm sự khớp phù hợp từ một chuỗi.
- Do đó, chọn một ô (C7) và áp dụng công thức sau xuống dưới:
Ở đây, hàm RegExMatch kiểm tra xem bất kỳ phần nào của chuỗi có khớp với biểu thức cho trước hay không.

- Chỉ cần nhấn ENTER để có kết quả.

- Kéo "Fill Handle" (cúi chuột) xuống để điền công thức cho toàn cột.

- Sau đó, hãy đếm các ô có số điện thoại bằng công thức dưới đây tại ô C15:
=COUNTIF(C7:C13, TRUE)
Ở đây, hàm COUNTIF được dùng để đếm các ô thỏa mãn điều kiện "TRUE" từ phạm vi C7:C13.

- Cuối cùng, nhấn phím ENTER để có kết quả.
- Ở đây, chúng ta đã trích xuất thành công kết quả với hàm COUNTIF và Regex trong Excel.

Đọc thêm: Cách thực hiện khớp mẫu (Pattern Matching) trong Excel
Tải tệp thực hành
Tải tệp thực hành này để luyện tập khi đọc bài viết.
Kết luận
Trong bài viết này, tôi đã cố gắng bao gồm hầu như tất cả các phương pháp để COUNTIF Regex trong Excel. Hãy tham khảo tệp thực hành và tải về để tự luyện tập. Tôi hy vọng bạn thấy nó hữu ích. Vui lòng cho chúng tôi biết trải nghiệm của bạn trong phần bình luận.
Các bài viết liên quan
- Cách dùng REGEX không cần VBA trong Excel
- Cách dùng REGEX khớp mẫu trong Excel
- Cách lọc bằng RegEx trong Excel
- Cách Tìm & Thay thế văn bản bằng Regex trong Excel
- Cách Tìm và Thay thế mẫu RegEx trong Excel
- Xác thực dữ liệu với RegEx trong Excel
<< Quay lại: RegEx in Excel | String Manipulation | Learn Excel
Nhận miễn phí Bài tập Excel nâng cao có lời giải!