ریگولر ایکسپریشنز (Regex) کا استعمال کرتے ہوئے ایکسل ڈیٹا کی توثیق

  • اس کا اشتراک
Michael Brown

ٹیوٹوریل دکھاتا ہے کہ کس طرح ایکسل میں حسب ضرورت RegexMatch فنکشن کی مدد سے ریگولر ایکسپریشنز کا استعمال کرتے ہوئے ڈیٹا کی توثیق کی جاتی ہے۔

جب ایکسل ورک شیٹس میں صارف کے ان پٹ کو محدود کرنے کی بات آتی ہے تو ڈیٹا کی توثیق ناگزیر ہے. دیئے گئے سیل میں صرف نمبروں یا تاریخوں کی اجازت دینا چاہتے ہیں؟ یا متن کی اقدار کو ایک مخصوص لمبائی تک محدود کریں؟ یا شاید کسی مقررہ حد سے باہر اوقات کی اجازت نہ دیں؟ کوئی حرج نہیں، یہ سب آسانی سے پیش سیٹ یا حسب ضرورت توثیق کے معیار کے ساتھ کیا جا سکتا ہے۔ لیکن کیا ہوگا اگر میں صرف درست ای میل پتوں یا تاروں کی اجازت دینا چاہتا ہوں جو مخصوص پیٹرن سے مماثل ہوں؟ افسوس، یہ ممکن نہیں ہے۔ Regex آپ کہتے ہیں؟ ہمم… یہ کام کر سکتا ہے!

    ریجیکس کے ساتھ ایکسل ڈیٹا کی توثیق کیسے کریں

    افسوس کی بات یہ ہے کہ ایکسل میں شامل کوئی بھی خصوصیت ریجیکس کو سپورٹ نہیں کرتی ہے، اور ڈیٹا کی توثیق نہیں ہے رعایت. ریگولر ایکسپریشنز کا استعمال کرتے ہوئے سیل ان پٹ کی توثیق کرنے کے لیے، آپ کو پہلے اپنی مرضی کے مطابق ریجیکس فنکشن بنانا ہوگا۔ ایک اور پیچیدگی یہ ہے کہ VBA صارف کے طے شدہ فنکشنز کو ڈیٹا کی توثیق کے لیے براہ راست پیش نہیں کیا جا سکتا - آپ کو ایک نامزد فارمولے کی شکل میں ایک ثالث کی ضرورت ہوگی۔ ریجیکس کا استعمال کرتے ہوئے ایکسل میں ڈیٹا کی توثیق کرنے کے لیے:

    1. ایک حسب ضرورت ریجیکس فنکشن بنائیں جو یہ چیک کرے کہ آیا ان پٹ ویلیو ریگولر ایکسپریشن سے میل کھاتی ہے۔
    2. اپنے ریجیکس فارمولے کے لیے ایک نام کی وضاحت کریں۔
    3. نام شدہ فارمولے کی بنیاد پر ڈیٹا کی توثیق کے اصول کو ترتیب دیں۔
    4. کاپی کریںجتنے آپ چاہیں سیلز کی توثیق کی ترتیبات۔

    ایک منصوبہ لگتا ہے؟ آئیے اسے عملی طور پر نافذ کرنے کی کوشش کریں!

    حسب ضرورت ریگولر ایکسپریشنز کا استعمال کرتے ہوئے ایکسل ڈیٹا کی توثیق

    یہ مثال ایک بہت ہی عام معاملے کو حل کرتی ہے - صرف ایک مخصوص پیٹرن کی اقدار کو کیسے اجازت دی جائے۔

    فرض کریں کہ آپ اپنی ورک شیٹ میں کچھ SKU کوڈز رکھتے ہیں اور اس بات کو یقینی بنانا چاہتے ہیں کہ صرف دیئے گئے پیٹرن سے مماثل کوڈز ہی فہرست میں شامل ہوں۔ بشرطیکہ ہر SKU حروف کے 2 گروپس پر مشتمل ہو جو ایک ہائفن کے ساتھ الگ ہو، پہلا گروپ جس میں 3 بڑے حروف اور دوسرا گروپ - 3 ہندسوں پر مشتمل ہو، آپ ذیل کے ریجیکس کا استعمال کرتے ہوئے ایسی قدروں کی شناخت کر سکتے ہیں۔

    پیٹرن : ^[A-Z]{3}-\d{3}$

    براہ کرم نوٹ کریں کہ سٹرنگ کا آغاز (^) اور اختتام ($) لنگر انداز ہیں، لہذا اس کے علاوہ کوئی حرف نہیں پیٹرن سیل میں داخل کیا جا سکتا ہے۔

    1۔ ایک حسب ضرورت Regex Match فنکشن شامل کریں

    اپنی ورک بک میں RegExpMatch فنکشن داخل کرنے کے ساتھ شروع کریں۔ کوڈ پہلے سے ہی ہمارے ایکسل گرو نے لکھا ہے، اس لیے آپ کو اسے اوپر سے منسلک صفحہ سے کاپی کرکے اپنے VBA ایڈیٹر میں چسپاں کرنے کی ضرورت ہے۔

    آپ کے حوالہ کے لیے فنکشن کا نحو یہ ہے:

    RegExpMatch(text , pattern, [match_case])

    کہاں:

    • Text (ضرورت) - ایک سورس سٹرنگ (ہمارے تناظر میں - ایک توثیق شدہ سیل)۔
    • پیٹرن (ضروری) - ملانے کے لیے ایک ریگولر ایکسپریشن۔
    • Match_case (اختیاری) - میچ کی قسم۔ صحیح یا چھوڑ دیا گیا - کیس-حساس FALSE - کیس غیر حساس۔

    ٹپ۔ اگر آپ ہمارے الٹیمیٹ سویٹ کے صارف ہیں، تو آپ اپنی ورک بک میں کوئی وی بی اے کوڈ شامل کیے بغیر ایکسل میں ریجیکس ڈیٹا کی توثیق کر سکتے ہیں۔ بس ہمارے Regex ٹولز کے ساتھ شامل ایک حسب ضرورت AblebitsRegexMatch فنکشن کا فائدہ اٹھائیں۔

    2۔ ایک نامزد فارمولہ بنائیں

    اپنی ٹارگٹ ورک شیٹ میں، سیل A1 کو منتخب کریں (اس کے مواد سے قطع نظر اور اس بات سے کوئی فرق نہیں پڑتا ہے کہ آپ اصل میں کس سیل کی توثیق کرنے جارہے ہیں)، Name Manager کو کھولنے کے لیے Ctrl + F3 دبائیں، اور ایک نام کی وضاحت کریں۔ اس فارمولے کے لیے:

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

    یا آپ کچھ سیل میں ریجیکس درج کر سکتے ہیں (اس مثال میں A2) اور دوسری دلیل میں $A$2 فراہم کر سکتے ہیں:

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

    فارمولہ درست طریقے سے کام کرنے کے لیے، متن دلیل (A1) کے لیے ایک متعلقہ حوالہ اور پیٹرن ($A$2) کے لیے مطلق حوالہ استعمال کرنا یقینی بنائیں۔

    یہ دیکھتے ہوئے کہ ہمارا فارمولہ SKU نمبروں کی توثیق کے لیے ہے، ہم اس کے مطابق اس کا نام رکھتے ہیں: Validate_SKU ۔

    اہم نوٹ! فارمولے کی وضاحت کرتے وقت، براہ کرم دو بار چیک کریں کہ پہلی دلیل فی الحال منتخب سیل سے مراد ہے، ورنہ فارمولا کام نہیں کرے گا۔ مثال کے طور پر، اگر شیٹ پر سیل A1 منتخب کیا گیا ہے، تو A1 کو پہلی دلیل میں ڈالیں (ہماری سفارشات کے مطابق)؛ اگر B2 منتخب کیا گیا ہے، تو پہلے دلیل کے لیے B2 استعمال کریں، اور اسی طرح ایک۔ اس سے کوئی فرق نہیں پڑتا کہ آپ کون سا خاص حوالہ استعمال کرتے ہیں جب تک کہ یہ موجودہ منتخب سیل سے میل کھاتا ہے۔

    مرحلہ بہ قدمہدایات، براہ کرم ملاحظہ کریں کہ ایکسل میں نام کا فارمولا کیسے بنایا جائے۔

    3۔ ڈیٹا کی توثیق سیٹ اپ کریں

    چیک کیے جانے والے پہلے سیل کو منتخب کریں (ہمارے معاملے میں A5) اور نامزد فارمولے کی بنیاد پر ڈیٹا کی توثیق کا ایک حسب ضرورت اصول بنائیں۔ اس کے لیے، درج ذیل کریں:

    1. Data ٹیب > ڈیٹا کی توثیق پر کلک کریں۔
    2. اجازت دیں<2 میں> ڈراپ ڈاؤن فہرست، اپنی مرضی کے مطابق کو منتخب کریں۔
    3. متعلقہ باکس میں درج ذیل فارمولہ درج کریں۔

      =Validate_SKU

    4. خالی نظر انداز کریں اختیار کو غیر منتخب کریں، ورنہ آپ کا اصول کام نہیں کرے گا۔

    اختیاری طور پر، آپ ٹائپ کرسکتے ہیں۔ سیل میں غلط ڈیٹا داخل ہونے پر ایک حسب ضرورت غلطی کا پیغام ظاہر کیا جائے گا۔

    اگر آپ کو لگتا ہے کہ آپ کو تفصیلی اقدامات کی ضرورت ہے، تو آپ یہ ہیں: Excel میں اپنی مرضی کے مطابق ڈیٹا کی توثیق کیسے ترتیب دیں۔

    4۔ ڈیٹا کی توثیق کو مزید سیلز میں کاپی کریں

    زیادہ سیلز میں توثیق کی ترتیبات کاپی کرنے کے لیے، آپ کو یہ کرنا ہوگا:

    1. ڈیٹا کی توثیق کے ساتھ سیل کو منتخب کریں اور Ctrl + C دبائیں اسے کاپی کریں۔
    2. دوسرے سیلز کو منتخب کریں جن کی آپ تصدیق کرنا چاہتے ہیں، ان پر دائیں کلک کریں، پیسٹ اسپیشل پر کلک کریں، اور تصدیق اختیار منتخب کریں۔
    3. ٹھیک ہے پر کلک کریں۔

    ڈیٹا کی توثیق کو کاپی کرنے کے طریقہ میں مزید معلومات حاصل کی جاسکتی ہیں۔

    اب، جب بھی کوئی توثیق شدہ سیل میں غلط SKU داخل کرنے کی کوشش کرتا ہے، درج ذیل انتباہی پیغام ظاہر ہوگا:

    ریجیکس کے ساتھ ای میل کی توثیق

    ای میل کی توثیق کرنے کے لیے، آپ شروع کریںایک ریگولر ایکسپریشن لکھنے کے ساتھ جو ای میل ایڈریس سے میل کھاتا ہے۔

    پیٹرن : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\[A-Za-z]{2,24}$

    نحو کی تفصیلی وضاحت کے لیے، براہ کرم درست ای میل پتوں سے ملنے کے لیے ریجیکس دیکھیں۔

    اور اب، پہلے سے مانوس مراحل کو انجام دے کر توثیق کے معیار کی وضاحت کریں:

    1. مذکورہ بالا ریجیکس کو B2 میں درج کریں۔
    2. سیل A1 کو منتخب کریں اور Validate_Email نام کی وضاحت کریں جس سے مراد ہے:

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

    3. سیل B5 کے لیے، درج ذیل فارمولے کا استعمال کرتے ہوئے اپنی مرضی کے مطابق ڈیٹا کی توثیق کا اطلاق کریں۔ یہ ضروری ہے کہ خالی نظر انداز کریں آپشن کو غیر منتخب کیا جائے۔

      =Validate_Email

      اس کے علاوہ، آپ صارف کو درست ای میل ایڈریس داخل کرنے کے لیے ایک حسب ضرورت ایرر میسج ترتیب دے سکتے ہیں۔

    4. نیچے دیے گئے سیلز میں اصول کاپی کریں۔

    اگر آپ نے تصدیق شدہ سیل میں جو ای میل ایڈریس درج کیا ہے وہ ریجیکس پیٹرن سے مماثل نہیں ہے، تو درج ذیل الرٹ ہوگا پاپ اپ:

    ریگولر ایکسپریشنز کا استعمال کرتے ہوئے پاس ورڈ کی توثیق کرنا

    پاس ورڈ کی توثیق کے لیے ریجیکس استعمال کرتے وقت، سب سے پہلے یہ فیصلہ کرنا ہے کہ آپ کے ریگولر ایکسپریشن کو کیا چیک کرنا چاہیے۔ یہاں کچھ مثالیں ہیں جو آپ کو صحیح راستے پر ڈال سکتی ہیں۔

    ایک پاس ورڈ کم از کم 6 حروف کا ہونا چاہیے اور اس میں صرف حروف (بڑے یا چھوٹے) اور ہندسے شامل ہو سکتے ہیں:

    پیٹرن : ^[A-Za-z0-9]{6,}$

    ایک پاس ورڈ کم از کم 6 حروف کا ہونا چاہیے اور اس میں کم از کم ایک حرف اورایک ہندسہ:

    پیٹرن : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    ایک پاس ورڈ کم از کم 6 حروف کا ہونا چاہیے اور اس میں کم از کم ایک بڑے حروف، ایک چھوٹے حرف اور ایک ہندسہ شامل ہونا چاہیے:

    پیٹرن : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    ایک پاس ورڈ کم سے کم 6 حروف کا ہونا چاہیے لمبا اور کم از کم ایک حرف، ایک ہندسہ اور ایک خاص حرف شامل کریں:

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

    پیٹرن قائم ہونے کے ساتھ، آپ ڈیٹا کی توثیق کو ترتیب دینے کے لیے آگے بڑھ سکتے ہیں:

    1. C2 میں اپنا پاس ورڈ ریجیکس درج کریں۔
    2. سیل A1 کو منتخب کریں اور نامی ایک فارمولا بنائیں۔ Validate_Password :

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

    3. سیل C5 کے لیے، ذیل کے فارمولے کے ساتھ اپنی مرضی کے مطابق توثیق کا اصول بنائیں۔ خالی نظر انداز کریں چیک باکس کو غیر منتخب کرنا یاد رکھیں۔

      =Validate_Password

    4. جتنے چاہیں اصول کو کاپی کریں۔

    اب، آپ فہرست میں محفوظ طریقے سے نئے پاس ورڈز شامل کرسکتے ہیں۔ اگر کوئی ان پٹ سٹرنگ ریجیکس سے مماثل نہیں ہے، تو درج ذیل الرٹ آپ کو یاد دلائے گا کہ کس قسم کی قدریں قبول کی جاتی ہیں:

    ریجیکس ڈیٹا کی توثیق کام نہیں کر رہی ہے

    اگر ریجیکس ڈیٹا کی توثیق آپ کے ایکسل میں کام نہیں کرتی ہے۔ ، غالباً یہ مندرجہ ذیل وجوہات میں سے کسی ایک کی وجہ سے ہے۔

    RegExpMatch فنکشن غائب ہے

    ڈیٹا کی توثیق کا اطلاق کرنے سے پہلے، اپنی ورک بک میں RegExpMatch فنکشن کا کوڈ ضرور ڈالیں۔

    غلط ریگولراظہار

    اس بات کو یقینی بنانے کے لیے کہ آپ کا ریجیکس توقع کے مطابق کام کرتا ہے، آپ کچھ سیل میں RegExpMatch فارمولہ درج کر کے نتائج کی جانچ کر سکتے ہیں۔ مزید معلومات کے لیے، براہ کرم مثالوں کے ساتھ ایکسل ریگولر ایکسپریشن مماثل دیکھیں۔

    اپنے ریگولر ایکسپریشنز کا تجزیہ اور ڈیبگ کرنے کے لیے، آپ مفت آن لائن ریجیکس ٹیسٹنگ سروسز جیسے RegEx101 یا RegExr استعمال کرسکتے ہیں۔

    غلط نام والا فارمولا

    ڈیٹا کی توثیق کی ناکامی کی ایک بہت عام وجہ ریجیکس نامی فارمولہ ہے جو غلط سیل کا حوالہ دیتا ہے۔ تمام مثالوں میں، ہم نے A1 کا حوالہ دینے والے فارمولے کی وضاحت کرنے کی سفارش کی ہے:

    =RegExpMatch(A1, regex)

    یہ صرف اس صورت میں کام کرتا ہے جب سیل A1 فعال ہو نام اور <15 کی وضاحت کرتے وقت>رشتہ دار حوالہ ($ کے نشان کے بغیر) استعمال کیا جاتا ہے۔

    خیال یہ ہے کہ فارمولہ (A1) میں متعین ایک متعلقہ حوالہ خود بخود توثیق شدہ سیل کی متعلقہ پوزیشن کی بنیاد پر تبدیل ہوجائے گا۔ دوسرے الفاظ میں، سیل A1 کا انتخاب صرف سہولت اور مستقل مزاجی کے لیے کیا جاتا ہے۔ درحقیقت، آپ سیل B1 کو منتخب کر سکتے ہیں اور B1 کا حوالہ دے سکتے ہیں، سیل C1 کو منتخب کر سکتے ہیں اور C1 کا حوالہ دے سکتے ہیں، وغیرہ۔ اہم بات یہ ہے کہ حوالہ شدہ سیل فعال سیل ہونا چاہیے۔

    یہ چیک کرنے کے لیے کہ آیا آپ کا نامزد کردہ فارمولا درست ہے، اپنی ورک شیٹ میں کسی بھی سیل کو منتخب کریں، کھولیں۔ مینیجر کو نام دیں، اور دیکھیں کہ فارمولہ کس سیل کی طرف اشارہ کرتا ہے۔ اگر یہ فی الحال منتخب سیل سے مراد ہے، تو فارمولا درست ہے۔ بصورت دیگر، آپ کو پہلی دلیل میں حوالہ تبدیل کرنا چاہیے۔

    اسکرین شاٹ میںذیل میں، سیل A7 منتخب کیا گیا ہے، یعنی ایک نامزد فارمولے میں پہلی دلیل میں A7 ہونا چاہیے۔ دوسری دلیل ($A$2) ریجیکس سے مراد ہے - یہ حوالہ مستقل رہنا ہے، لہذا یہ $ نشان کے ساتھ مقفل ہے۔

    منتخب خالی آپشن کو نظر انداز کریں

    اپنی مرضی کے مطابق ڈیٹا کی توثیق کے اصول کو ترتیب دیتے وقت، خالی نظر انداز کریں چیک باکس کو غیر منتخب کرنا ضروری ہے۔ بصورت دیگر، اصول درج ذیل وجہ سے کام نہیں کرے گا:

    اگر کوئی مماثلت نہیں ملتی ہے، تو RegExpMatch فنکشن FALSE لوٹاتا ہے۔ Ignore blank آپشن منتخب ہونے کے ساتھ، FALSE خالی کے برابر ہوتا ہے اور اسے نظر انداز کر دیا جاتا ہے۔

    ایک متبادل حل واضح طور پر یہ بتا رہا ہے کہ فارمولے کو TRUE:

    =RegExpMatch(…)=TRUE

    ریگولر ایکسپریشنز کا استعمال کرتے ہوئے ایکسل میں ڈیٹا کی توثیق کرنے کا طریقہ یہی ہے۔ میں پڑھنے کے لیے آپ کا شکریہ ادا کرتا ہوں اور اگلے ہفتے آپ کو ہمارے بلاگ پر دیکھنے کا منتظر ہوں!

    ڈاؤن لوڈ کے لیے ورک بک کی مشق کریں

    ریجیکس ڈیٹا کی توثیق کی مثالیں (.xlsm فائل)

    <3

    مائیکل براؤن سافٹ ویئر ٹولز کا استعمال کرتے ہوئے پیچیدہ عمل کو آسان بنانے کے جذبے کے ساتھ ٹیکنالوجی سے وابستہ ایک سرشار ہے۔ ٹیک انڈسٹری میں ایک دہائی سے زیادہ کے تجربے کے ساتھ، اس نے مائیکروسافٹ ایکسل اور آؤٹ لک کے ساتھ ساتھ گوگل شیٹس اور دستاویزات میں بھی اپنی صلاحیتوں کو نکھارا ہے۔ مائیکل کا بلاگ اپنے علم اور مہارت کو دوسروں کے ساتھ بانٹنے کے لیے وقف ہے، پیداواری صلاحیت اور کارکردگی کو بہتر بنانے کے لیے آسان پیروی کرنے والی تجاویز اور سبق فراہم کرتا ہے۔ چاہے آپ ایک تجربہ کار پیشہ ور ہوں یا ابتدائی، مائیکل کا بلاگ ان ضروری سافٹ ویئر ٹولز سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے قیمتی بصیرتیں اور عملی مشورہ پیش کرتا ہے۔