Xác thực dữ liệu Excel bằng biểu thức chính quy (Regex)

  • Chia Sẻ Cái Này
Michael Brown

Hướng dẫn chỉ ra cách thực hiện xác thực dữ liệu trong Excel bằng cách sử dụng biểu thức chính quy với sự trợ giúp của hàm RegexMatch tùy chỉnh.

Khi nói đến việc hạn chế đầu vào của người dùng trong trang tính Excel, Xác thực dữ liệu Là không thể thiếu. Bạn muốn chỉ cho phép số hoặc ngày trong một ô nhất định? Hoặc giới hạn các giá trị văn bản ở một độ dài cụ thể? Hoặc có thể không cho phép thời gian bên ngoài một phạm vi nhất định? Không thành vấn đề, tất cả điều này có thể được thực hiện dễ dàng với các tiêu chí xác thực tùy chỉnh hoặc đặt trước. Nhưng nếu tôi chỉ muốn cho phép các địa chỉ email hoặc chuỗi hợp lệ khớp với một mẫu cụ thể thì sao? Than ôi, điều đó là không thể. Regex bạn nói? Hmm… cái đó có thể hiệu quả!

    Cách thực hiện Xác thực dữ liệu Excel với Regex

    Rất tiếc, không có tính năng tích hợp sẵn nào của Excel hỗ trợ biểu thức chính quy và Xác thực dữ liệu cũng không ngoại lệ. Để có thể xác thực dữ liệu nhập vào ô bằng biểu thức chính quy, trước tiên bạn cần tạo một hàm Regex tùy chỉnh. Một điều phức tạp khác là các hàm do người dùng VBA xác định không thể được cung cấp trực tiếp cho Xác thực dữ liệu - bạn sẽ cần một công cụ hòa giải ở dạng công thức được đặt tên.

    Xem xét những điều trên, chúng ta hãy phác thảo ngắn gọn các bước cần thực hiện để xác thực dữ liệu trong Excel bằng biểu thức chính quy:

    1. Tạo hàm Regex tùy chỉnh để kiểm tra xem giá trị đầu vào có khớp với biểu thức chính quy hay không.
    2. Xác định tên cho công thức Regex của bạn.
    3. Định cấu hình quy tắc Xác thực dữ liệu dựa trên công thức đã đặt tên.
    4. Sao chépcài đặt xác thực cho bao nhiêu ô tùy thích.

    Có vẻ như là một kế hoạch? Hãy thử triển khai nó trong thực tế!

    Xác thực dữ liệu Excel bằng biểu thức chính quy tùy chỉnh

    Ví dụ này giải quyết một trường hợp rất phổ biến - cách chỉ cho phép các giá trị của một mẫu cụ thể.

    Giả sử bạn giữ một số mã SKU trong trang tính của mình và muốn đảm bảo rằng chỉ những mã phù hợp với một mẫu nhất định mới được đưa vào danh sách. Với điều kiện là mỗi SKU bao gồm 2 nhóm ký tự được phân tách bằng dấu gạch nối, nhóm đầu tiên bao gồm 3 chữ cái viết hoa và nhóm thứ hai - 3 chữ số, bạn có thể xác định các giá trị đó bằng cách sử dụng biểu thức chính quy bên dưới.

    Mẫu : ^[A-Z]{3}-\d{3}$

    Xin lưu ý rằng phần đầu (^) và phần cuối ($) của chuỗi được neo, vì vậy không có ký tự nào khác ngoài ký tự trong mẫu có thể được nhập vào một ô.

    1. Thêm chức năng Đối sánh Regex tùy chỉnh

    Bắt đầu bằng việc chèn hàm RegExpMatch vào sổ làm việc của bạn. Mã này đã được các chuyên gia Excel của chúng tôi viết nên bạn chỉ cần sao chép mã từ trang được liên kết ở trên và dán vào trình chỉnh sửa VBA của mình.

    Đây là cú pháp của hàm để bạn tham khảo:

    RegExpMatch(text , mẫu, [match_case])

    Ở đâu:

    • Văn bản (bắt buộc) - một chuỗi nguồn (trong ngữ cảnh của chúng tôi - một ô đã xác thực).
    • Mẫu (bắt buộc) - một biểu thức chính quy để khớp.
    • Match_case (tùy chọn) - loại khớp. TRUE hoặc bỏ qua - trường hợp-nhạy cảm; FALSE - không phân biệt chữ hoa chữ thường.

    Mẹo. Nếu bạn là người dùng Ultimate Suite của chúng tôi thì bạn có thể thực hiện Xác thực dữ liệu Regex trong Excel mà không cần thêm bất kỳ mã VBA nào vào sổ làm việc của mình. Chỉ cần tận dụng chức năng AblebitsRegexMatch tùy chỉnh có trong Công cụ Regex của chúng tôi.

    2. Tạo công thức được đặt tên

    Trong trang tính mục tiêu của bạn, hãy chọn ô A1 (bất kể nội dung của ô đó là gì và bất kể bạn đang thực sự xác thực ô nào), nhấn Ctrl + F3 để mở Trình quản lý tên và xác định tên cho công thức này:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Hoặc bạn có thể nhập biểu thức chính quy vào một số ô (A2 trong ví dụ này) và cung cấp $A$2 cho đối số thứ hai:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    Để công thức hoạt động chính xác, hãy nhớ sử dụng tham chiếu tương đối cho đối số văn bản (A1) và tham chiếu tuyệt đối cho mẫu ($A$2).

    Vì mục đích của công thức là xác thực số SKU nên chúng tôi đặt tên cho công thức đó là: Validate_SKU .

    Lưu ý quan trọng! Khi xác định công thức, vui lòng kiểm tra kỹ xem đối số đầu tiên có tham chiếu đến ô hiện được chọn không , nếu không công thức sẽ không hoạt động. Ví dụ: nếu ô A1 được chọn trên trang tính, hãy đặt A1 vào đối số đầu tiên (theo đề xuất của chúng tôi); nếu B2 được chọn, thì hãy sử dụng B2 cho đối số đầu tiên, v.v. Việc bạn sử dụng tham chiếu cụ thể nào không thực sự quan trọng miễn là tham chiếu đó khớp với ô hiện được chọn.

    Để biết từng bướchướng dẫn, vui lòng xem Cách tạo công thức được đặt tên trong Excel.

    3. Thiết lập Xác thực dữ liệu

    Chọn ô đầu tiên cần kiểm tra (A5 trong trường hợp của chúng tôi) và tạo quy tắc xác thực dữ liệu tùy chỉnh dựa trên công thức đã đặt tên. Đối với điều này, hãy làm như sau:

    1. Nhấp vào tab Dữ liệu > Xác thực dữ liệu .
    2. Trong Cho phép danh sách thả xuống, chọn Tùy chỉnh .
    3. Nhập công thức bên dưới vào ô tương ứng.

      =Validate_SKU

    4. Bỏ chọn tùy chọn Bỏ qua trống , nếu không quy tắc của bạn sẽ không hoạt động.

    Bạn có thể nhập tùy chọn một thông báo lỗi tùy chỉnh sẽ được hiển thị khi dữ liệu không hợp lệ được nhập vào một ô.

    Nếu bạn cảm thấy cần các bước chi tiết, hãy xem tại đây: Cách thiết lập Xác thực dữ liệu tùy chỉnh trong Excel.

    4. Sao chép xác thực dữ liệu sang nhiều ô hơn

    Để sao chép cài đặt xác thực sang nhiều ô hơn, bạn cần làm như sau:

    1. Chọn ô có xác thực dữ liệu và nhấn Ctrl + C để sao chép nó.
    2. Chọn các ô khác mà bạn muốn xác thực, nhấp chuột phải vào các ô đó, nhấp vào Dán Đặc biệt và chọn tùy chọn Xác thực .
    3. Nhấp vào OK .

    Bạn có thể tìm thêm thông tin trong Cách sao chép Xác thực dữ liệu.

    Bây giờ, mỗi khi ai đó cố gắng nhập SKU không hợp lệ vào bất kỳ ô nào được xác thực, thông tin sau thông báo cảnh báo sẽ xuất hiện:

    Xác thực email bằng Regex

    Để thực hiện xác thực email, bạn bắt đầubằng cách viết một biểu thức chính quy khớp với một địa chỉ email.

    Mẫu : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Để được giải thích chi tiết về cú pháp, vui lòng xem Regex để khớp các địa chỉ email hợp lệ.

    Và bây giờ, hãy chỉ định tiêu chí xác thực bằng cách thực hiện các bước đã quen thuộc:

    1. Nhập regex trên vào B2.
    2. Chọn ô A1 và xác định tên có tên là Validate_Email đề cập đến:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. Đối với ô B5, hãy áp dụng Xác thực dữ liệu tùy chỉnh bằng công thức bên dưới. Điều cần thiết là không chọn tùy chọn Ignore blank .

      =Validate_Email

      Ngoài ra, bạn có thể định cấu hình thông báo lỗi tùy chỉnh nhắc người dùng nhập địa chỉ email hợp lệ.

    4. Sao chép quy tắc vào các ô bên dưới.

    Nếu địa chỉ email bạn nhập vào ô đã xác thực không khớp với mẫu biểu thức chính quy, cảnh báo sau sẽ bật lên:

    Xác thực mật khẩu bằng biểu thức chính quy

    Khi sử dụng biểu thức chính quy để xác thực mật khẩu, điều đầu tiên cần quyết định là biểu thức chính quy của bạn nên kiểm tra chính xác điều gì. Dưới đây là một số ví dụ có thể giúp bạn đi đúng hướng.

    Mật khẩu phải dài ít nhất 6 ký tự và chỉ được chứa các chữ cái (chữ hoa hoặc chữ thường) và chữ số:

    Mẫu : ^[A-Za-z0-9]{6,}$

    Mật khẩu phải dài tối thiểu 6 ký tự và bao gồm ít nhất một chữ cái vàmột chữ số:

    Mẫu : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    Mật khẩu phải dài tối thiểu 6 ký tự và bao gồm ít nhất một chữ hoa, một chữ thường và một chữ số:

    Mẫu : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    Mật khẩu phải có ít nhất 6 ký tự dài và bao gồm ít nhất một chữ cái, một chữ số và một ký tự đặc biệt:

    Pattern : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Khi mẫu đã được thiết lập, bạn có thể chuyển sang thiết lập Xác thực dữ liệu:

    1. Nhập biểu thức chính xác mật khẩu của bạn vào ô C2.
    2. Chọn ô A1 và tạo một công thức có tên là Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. Đối với ô C5, hãy tạo quy tắc xác thực tùy chỉnh bằng công thức bên dưới. Hãy nhớ bỏ chọn hộp kiểm Bỏ qua ô trống .

      =Validate_Password

    4. Sao chép quy tắc vào bao nhiêu ô tùy thích.

    Bây giờ, bạn có thể thêm mật khẩu mới vào danh sách một cách an toàn. Nếu một chuỗi đầu vào không khớp với biểu thức chính quy, cảnh báo sau sẽ nhắc bạn loại giá trị nào được chấp nhận:

    Xác thực dữ liệu Regex không hoạt động

    Nếu Xác thực dữ liệu Regex không hoạt động trong Excel của bạn , rất có thể là do một trong những lý do sau.

    Thiếu hàm RegExpMatch

    Trước khi áp dụng Xác thực dữ liệu, hãy đảm bảo chèn mã của hàm RegExpMatch vào sổ làm việc của bạn.

    Không chính quybiểu thức

    Để đảm bảo biểu thức chính quy của bạn hoạt động như mong đợi, bạn có thể nhập công thức RegExpMatch vào một số ô và kiểm tra kết quả. Để biết thêm thông tin, vui lòng xem Kết hợp biểu thức chính quy Excel với các ví dụ.

    Để phân tích và gỡ lỗi các biểu thức chính quy của bạn, bạn có thể sử dụng các dịch vụ kiểm tra biểu thức chính quy trực tuyến miễn phí như RegEx101 hoặc RegExr.

    Công thức được đặt tên sai

    Một lý do rất phổ biến dẫn đến lỗi xác thực dữ liệu là công thức có tên Regex đề cập đến một ô sai. Trong tất cả các ví dụ, chúng tôi khuyên bạn nên xác định công thức tham chiếu đến A1:

    =RegExpMatch(A1, regex)

    Điều này chỉ hoạt động nếu ô A1 đang hoạt động khi xác định tên và tham chiếu tương đối (không có dấu $) được sử dụng.

    Ý tưởng là tham chiếu tương đối được chỉ định trong công thức (A1) sẽ tự động thay đổi dựa trên vị trí tương đối của ô được xác thực. Nói cách khác, ô A1 được chọn chỉ để thuận tiện và nhất quán. Trên thực tế, bạn có thể chọn ô B1 và ​​tham chiếu đến B1, chọn ô C1 và tham chiếu đến C1, v.v. Điều quan trọng là ô được tham chiếu phải là ô hoạt động .

    Để kiểm tra xem công thức được đặt tên của bạn có đúng không, hãy chọn bất kỳ ô nào trong trang tính của bạn, mở Trình quản lý tên và xem công thức trỏ đến ô nào. Nếu nó đề cập đến ô hiện được chọn, công thức là đúng. Nếu không, bạn nên thay đổi tham chiếu trong đối số đầu tiên.

    Trong ảnh chụp màn hìnhbên dưới, ô A7 được chọn, nghĩa là công thức được đặt tên phải có A7 trong đối số đầu tiên. Đối số thứ hai ($A$2) đề cập đến biểu thức chính quy - tham chiếu này được cho là không đổi, do đó, nó bị khóa bằng ký hiệu $.

    Bỏ qua tùy chọn trống đã chọn

    Khi thiết lập quy tắc Xác thực dữ liệu tùy chỉnh, điều quan trọng là bỏ chọn hộp kiểm Bỏ qua trống . Nếu không, quy tắc sẽ không hoạt động vì lý do sau:

    Nếu không tìm thấy kết quả khớp, hàm RegExpMatch trả về SAI. Với tùy chọn Bỏ qua khoảng trống được chọn, FALSE tương đương với khoảng trống và bị bỏ qua.

    Một giải pháp thay thế nêu rõ rằng công thức sẽ trả về TRUE:

    =RegExpMatch(…)=TRUE

    Đó là cách thực hiện Xác thực dữ liệu trong Excel bằng biểu thức chính quy. Tôi cảm ơn bạn đã đọc và mong được gặp bạn trên blog của chúng tôi vào tuần tới!

    Sách bài tập thực hành để tải xuống

    Các ví dụ về Xác thực dữ liệu Regex (tệp .xlsm)

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.