Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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.

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

  • 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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

  • 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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

Đọ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.

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

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

Làm chủ đếm mẫu Regex trong Excel bằng COUNTIF: Hướng dẫn từng bước

Đọ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!