التحقق من صحة بيانات Excel باستخدام التعبيرات العادية (Regex)

  • شارك هذا
Michael Brown

يوضح البرنامج التعليمي كيفية القيام بالتحقق من صحة البيانات في Excel باستخدام التعبيرات العادية بمساعدة وظيفة RegexMatch المخصصة.

عندما يتعلق الأمر بتقييد إدخال المستخدم في أوراق عمل Excel ، التحقق من صحة البيانات لا غنى عنه. هل تريد السماح بالأرقام أو التواريخ فقط في خلية معينة؟ أو تحديد القيم النصية بطول معين؟ أو ربما عدم السماح بأوقات خارج نطاق معين؟ لا توجد مشكلة ، كل هذا يمكن القيام به بسهولة باستخدام معايير التحقق من الصحة المحددة مسبقًا أو المخصصة. ولكن ماذا لو كنت أرغب في السماح بعناوين البريد الإلكتروني الصالحة فقط أو السلاسل التي تطابق نمطًا معينًا؟ للأسف ، هذا غير ممكن. Regex تقول؟ حسنًا ... قد ينجح ذلك!

    كيفية إجراء التحقق من صحة بيانات Excel باستخدام Regex

    للأسف ، لا تدعم أي من ميزات Excel المضمنة regex ، ولا يدعم التحقق من صحة البيانات استثناء. لتتمكن من التحقق من صحة إدخال الخلية باستخدام التعبيرات العادية ، تحتاج إلى إنشاء وظيفة Regex مخصصة أولاً. هناك تعقيد آخر يتمثل في أنه لا يمكن تقديم الوظائف المحددة من قِبل المستخدم لـ VBA إلى التحقق من صحة البيانات مباشرةً - ستحتاج إلى وسيط في شكل صيغة مسماة.

    بالنظر إلى ما سبق ، دعنا نحدد بإيجاز الخطوات التي يجب اتخاذها للتحقق من صحة البيانات في Excel باستخدام regexes:

    1. قم بإنشاء دالة Regex مخصصة للتحقق مما إذا كانت قيمة الإدخال تتطابق مع تعبير عادي.
    2. حدد اسمًا لصيغة Regex.
    3. تكوين قاعدة التحقق من صحة البيانات استنادًا إلى الصيغة المسماة.
    4. انسخ ملفإعدادات التحقق من الصحة لأكبر عدد تريده من الخلايا.

    هل تبدو خطة؟ دعنا نحاول تنفيذها عمليًا!

    التحقق من صحة بيانات Excel باستخدام تعبيرات عادية مخصصة

    يعالج هذا المثال حالة شائعة جدًا - كيفية السماح فقط بقيم نمط معين.

    لنفترض أنك تحتفظ ببعض رموز SKU في ورقة العمل الخاصة بك وتريد التأكد من أن الرموز المطابقة لنمط معين فقط هي التي تدخل القائمة. بشرط أن يتكون كل SKU من مجموعتين من الأحرف مفصولة بواصلة ، المجموعة الأولى تتضمن 3 أحرف كبيرة والمجموعة الثانية - 3 أرقام ، يمكنك تحديد هذه القيم باستخدام التعبير العادي أدناه.

    النمط : ^ [A-Z] {3} - \ d {3} $

    يُرجى ملاحظة أن بداية السلسلة (^) ونهايتها ($) مرتكزة ، لذلك لا توجد أحرف غير الموجودة في يمكن إدخال النمط في خلية.

    1. إضافة دالة Regex Match مخصصة

    ابدأ بإدراج وظيفة RegexpMatch في المصنف الخاص بك. تمت كتابة الكود بالفعل بواسطة معلمو Excel لدينا ، لذلك تحتاج فقط إلى نسخه من الصفحة المرتبطة أعلاه ولصقه في محرر VBA الخاص بك.

    إليك بنية الوظيفة للرجوع إليها:

    RegExpMatch (نص ، pattern، [match_case])

    حيث:

    • Text (مطلوب) - سلسلة مصدر (في سياقنا - خلية تم التحقق من صحتها).
    • Pattern (مطلوب) - تعبير عادي للمطابقة.
    • Match_case (اختياري) - نوع المطابقة. TRUE أو تم حذفها - حالة-حساس؛ خطأ - غير حساس لحالة الأحرف.

    نصيحة. إذا كنت أحد مستخدمي Ultimate Suite ، فيمكنك إجراء التحقق من صحة بيانات Regex في Excel دون إضافة أي كود VBA إلى مصنفاتك. ما عليك سوى الاستفادة من وظيفة AblebitsRegexMatch المخصصة المضمنة في أدوات Regex.

    2. قم بإنشاء صيغة مسماة

    في ورقة العمل الهدف الخاصة بك ، حدد الخلية A1 (بغض النظر عن محتوياتها وبغض النظر عن الخلية التي ستقوم بالتحقق من صحتها بالفعل) ، اضغط على Ctrl + F3 لفتح مدير الاسم ، وحدد اسمًا لهذه الصيغة:

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

    أو يمكنك إدخال regex في بعض الخلايا (A2 في هذا المثال) وتزويد الوسيطة الثانية $ A $ 2:

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

    لكي تعمل الصيغة بشكل صحيح ، تأكد من استخدام مرجع نسبي للوسيطة نص (A1) والمرجع المطلق للنمط ($ A $ 2).

    نظرًا لأن صيغتنا مصممة للتحقق من صحة أرقام SKU ، فإننا نسميها وفقًا لذلك: Validate_SKU .

    ملاحظة مهمة! عند تحديد الصيغة ، يرجى التحقق جيدًا من أن الوسيطة الأولى تشير إلى الخلية المحددة حاليًا ، وإلا فلن تعمل الصيغة. على سبيل المثال ، إذا تم تحديد الخلية A1 على الورقة ، فضع A1 في الوسيطة الأولى (وفقًا لتوصياتنا) ؛ إذا تم تحديد B2 ، فاستخدم B2 للوسيطة الأولى ، وهكذا. لا يهم حقًا المرجع المعين الذي تستخدمه طالما أنه يتطابق مع الخلية المحددة حاليًا.

    للحصول على خطوة بخطوةالتعليمات ، يرجى الاطلاع على كيفية عمل صيغة مسماة في Excel.

    3. قم بإعداد التحقق من صحة البيانات

    حدد الخلية الأولى المطلوب التحقق منها (A5 في حالتنا) وقم بإنشاء قاعدة مخصصة للتحقق من صحة البيانات استنادًا إلى الصيغة المسماة. لهذا ، قم بما يلي:

    1. انقر فوق علامة التبويب البيانات & gt ؛ التحقق من صحة البيانات .
    2. في السماح القائمة المنسدلة ، حدد مخصص
    3. أدخل الصيغة أدناه في المربع المقابل.

      =Validate_SKU

    4. ألغ تحديد الخيار تجاهل الفراغ ، وإلا فلن تعمل القاعدة.

    اختياريًا ، يمكنك الكتابة رسالة خطأ مخصصة ليتم عرضها عند إدخال بيانات غير صالحة في خلية.

    إذا كنت تشعر أنك بحاجة إلى الخطوات التفصيلية ، فإليك ما يلي: كيفية إعداد التحقق من صحة البيانات المخصص في Excel.

    4. نسخ التحقق من صحة البيانات إلى مزيد من الخلايا

    لنسخ إعدادات التحقق من الصحة إلى المزيد من الخلايا ، هذا ما تحتاج إلى القيام به:

    1. حدد الخلية التي تحتوي على التحقق من صحة البيانات واضغط على Ctrl + C من أجل انسخه.
    2. حدد الخلايا الأخرى التي تريد التحقق من صحتها ، وانقر بزر الماوس الأيمن فوقها ، وانقر فوق لصق خاص ، واختر الخيار التحقق من الصحة .
    3. انقر فوق موافق .

    يمكن العثور على مزيد من المعلومات في كيفية نسخ التحقق من صحة البيانات.

    الآن ، في كل مرة يحاول شخص ما إدخال SKU غير صالح في أي من الخلايا التي تم التحقق من صحتها ، ما يلي ستظهر رسالة تحذير:

    التحقق من صحة البريد الإلكتروني باستخدام Regex

    لإجراء التحقق من صحة البريد الإلكتروني ، عليك أن تبدأمع كتابة تعبير عادي يطابق عنوان بريد إلكتروني.

    النمط : ^ [\ w \. \ -] + @ [A-Za-z0-9] + [A-Za -z0-9 \. \ -] * [A-Za-z0-9] + \. [A-Za-z] {2،24} $

    للحصول على شرح مفصل لبناء الجملة ، من فضلك راجع Regex لمطابقة عناوين البريد الإلكتروني الصالحة.

    والآن ، حدد معايير التحقق من خلال تنفيذ الخطوات المألوفة بالفعل:

    1. أدخل regex أعلاه في B2.
    2. حدد الخلية A1 وحدد اسمًا يسمى Validate_Email يشير إلى:

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

    3. بالنسبة للخلية B5 ، قم بتطبيق التحقق من صحة البيانات المخصص باستخدام الصيغة أدناه. من الضروري أن يكون الخيار تجاهل الفراغ غير محدد.

      =Validate_Email

      بالإضافة إلى ذلك ، يمكنك تكوين رسالة خطأ مخصصة تطالب المستخدم بإدخال عنوان بريد إلكتروني صالح.

    4. انسخ القاعدة إلى الخلايا أدناه.

    إذا كان عنوان البريد الإلكتروني الذي أدخلته في خلية تم التحقق من صحتها لا يتطابق مع نمط regex ، فسيقوم التنبيه التالي انبثاق:

    التحقق من صحة كلمات المرور باستخدام التعبيرات العادية

    عند استخدام regex للتحقق من صحة كلمة المرور ، فإن أول شيء يجب أن تقرره هو بالضبط ما يجب أن يتحقق منه التعبير العادي. فيما يلي بعض الأمثلة التي قد تضعك على المسار الصحيح.

    يجب أن تتكون كلمة المرور من 6 أحرف على الأقل ويمكن أن تحتوي فقط على أحرف (أحرف كبيرة أو صغيرة) وأرقام:

    النمط : ^ [A-Za-z0-9] {6،} $

    يجب أن تتكون كلمة المرور من 6 أحرف كحد أدنى وتتضمن حرفًا واحدًا على الأقل ورقم واحد:

    النمط : ^ (؟ =. * [A-Za-z]) (؟ =. * \ d) [A-Za-z \ d] {6 ،} $

    يجب أن تتكون كلمة المرور من 6 أحرف كحد أدنى وتتضمن حرفًا كبيرًا واحدًا على الأقل وحرفًا صغيرًا ورقمًا واحدًا:

    Pattern : ^ (؟ =؟ = . * [A-Z]) (؟ =. * [a-z]) (؟ =. * \ d) [A-Za-z \ d] {6،} $

    يجب ألا تقل كلمة المرور عن 6 أحرف طويل ويتضمن حرفًا واحدًا على الأقل ورقمًا واحدًا وحرفًا خاصًا واحدًا:

    النمط : ^ (؟ =. * [A-Za-z]) (؟ =. * \ d ) (؟ =. * [@ $!٪ * #؟ & amp؛ _-]) [A-Za-z \ d @ $!٪ * #؟ & amp؛ _-] {6،} $

    مع إنشاء النمط ، يمكنك الانتقال إلى إعداد التحقق من صحة البيانات:

    1. أدخل regex كلمة المرور في C2.
    2. حدد الخلية A1 وقم بإنشاء صيغة مسماة تسمى Validate_Password :

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

    3. للخلية C5 ، قم بإنشاء قاعدة تحقق مخصصة باستخدام الصيغة أدناه. تذكر إلغاء تحديد خانة الاختيار تجاهل الفراغ .

      =Validate_Password

    4. انسخ القاعدة إلى أي عدد تريده من الخلايا.

    الآن ، يمكنك إضافة كلمات مرور جديدة إلى القائمة بأمان. إذا لم تتطابق سلسلة الإدخال مع regex ، فسيذكرك التنبيه التالي بأنواع القيم المقبولة:

    التحقق من صحة البيانات Regex لا يعمل

    إذا لم يعمل التحقق من صحة بيانات Regex في Excel الخاص بك ، على الأرجح بسبب أحد الأسباب التالية.

    وظيفة RegExpMatch مفقودة

    قبل تطبيق التحقق من صحة البيانات ، تأكد من إدخال رمز وظيفة RegExpMatch في المصنف الخاص بك.

    العادية غير صحيحةتعبير

    للتأكد من عمل regex كما هو متوقع ، يمكنك إدخال صيغة RegExpMatch في بعض الخلايا وفحص النتائج. لمزيد من المعلومات ، يرجى الاطلاع على مطابقة التعبير العادي في Excel مع الأمثلة.

    لتحليل التعبيرات العادية وتصحيحها ، يمكنك استخدام خدمات اختبار regex المجانية عبر الإنترنت مثل RegEx101 أو RegExr.

    صيغة اسم خاطئة

    سبب شائع جدًا لفشل التحقق من صحة البيانات هو صيغة مسماة Regex تشير إلى خلية خاطئة. في جميع الأمثلة ، نوصي بتعريف صيغة تشير إلى A1:

    =RegExpMatch(A1, regex)

    يعمل هذا فقط إذا كانت الخلية A1 نشطة عند تحديد اسم و المرجع النسبي (بدون علامة $) مستخدم.

    الفكرة هي أن المرجع النسبي المحدد في الصيغة (A1) سيتغير تلقائيًا بناءً على الموضع النسبي للخلية التي تم التحقق من صحتها. بمعنى آخر ، يتم اختيار الخلية A1 فقط من أجل الراحة والاتساق. في الواقع ، يمكنك تحديد الخلية B1 والرجوع إلى B1 وتحديد الخلية C1 والرجوع إلى C1 وما إلى ذلك. الشيء الأساسي هو أن الخلية المشار إليها يجب أن تكون الخلية النشطة .

    للتحقق مما إذا كانت الصيغة المسماة صحيحة ، حدد أي خلية في ورقة العمل الخاصة بك ، افتح مدير الاسم ، واطلع على الخلية التي تشير إليها الصيغة. إذا كانت تشير إلى الخلية المحددة حاليًا ، فإن الصيغة صحيحة. خلاف ذلك ، يجب عليك تغيير المرجع في الوسيطة الأولى.

    في لقطة الشاشةأدناه ، يتم تحديد الخلية A7 ، مما يعني أن الصيغة المسماة يجب أن تحتوي على A7 في الوسيطة الأولى. تشير الوسيطة الثانية ($ A $ 2) إلى regex - من المفترض أن يظل هذا المرجع ثابتًا ، لذلك يتم قفله بعلامة $.

    تم تحديد خيار تجاهل الفراغ

    عند إعداد قاعدة مخصصة للتحقق من صحة البيانات ، من المهم إلغاء تحديد خانة الاختيار تجاهل الفراغ . وبخلاف ذلك ، لن تعمل القاعدة بسبب السبب التالي:

    إذا لم يتم العثور على تطابق ، تقوم الدالة RegExpMatch بإرجاع FALSE. مع تحديد الخيار تجاهل الفراغ ، FALSE يساوي فارغًا ويتم تجاهله.

    ينص حل بديل صراحة على أن الصيغة يجب أن ترجع TRUE:

    =RegExpMatch(…)=TRUE

    هذه هي كيفية إجراء التحقق من صحة البيانات في Excel باستخدام التعبيرات العادية. أشكرك على القراءة وأتطلع إلى رؤيتك على مدونتنا الأسبوع المقبل!

    تدرب على تنزيل المصنف

    أمثلة للتحقق من صحة البيانات Regex (ملف .xlsm)

    مايكل براون متحمس للتكنولوجيا ولديه شغف لتبسيط العمليات المعقدة باستخدام أدوات البرمجيات. مع أكثر من عشر سنوات من الخبرة في صناعة التكنولوجيا ، صقل مهاراته في Microsoft Excel و Outlook ، بالإضافة إلى جداول بيانات Google والمستندات. مدونة مايكل مكرسة لمشاركة معرفته وخبرته مع الآخرين ، وتقديم نصائح ودروس تعليمية سهلة المتابعة لتحسين الإنتاجية والكفاءة. سواء كنت محترفًا متمرسًا أو مبتدئًا ، تقدم مدونة مايكل رؤى قيمة ونصائح عملية للحصول على أقصى استفادة من أدوات البرامج الأساسية هذه.