مواد جي جدول
ٽيوٽوريل ڏيکاري ٿو ته ڪيئن ڪجي Excel ۾ ڊيٽا جي تصديق حسب ضرورت RegexMatch فنڪشن جي مدد سان ريگيولر ايڪسپريشنز کي استعمال ڪندي.
جڏهن اها ڳالهه اچي ٿي ته Excel ورڪ شيٽس ۾ صارف جي ان پٽ کي محدود ڪرڻ، ڊيٽا جي تصديق ناگزير آهي. ڏنل سيل ۾ صرف نمبرن يا تاريخن جي اجازت ڏيڻ چاھيو ٿا؟ يا متن جي قيمتن کي مخصوص ڊيگهه تائين محدود ڪريو؟ يا ٿي سگهي ٿو هڪ ڏنل حد کان ٻاهر وقت جي اجازت نه ڏيو؟ ڪو مسئلو ناهي، اهو سڀ آساني سان ڪري سگهجي ٿو اڳواٽ يا ڪسٽم جي تصديق جي معيار سان. پر ڇا جيڪڏهن مان صرف صحيح اي ميل پتي يا تارن جي اجازت ڏيڻ چاهيان ٿو جيڪي مخصوص نموني سان ملن ٿيون؟ افسوس، اهو ممڪن ناهي. Regex توهان چئو ٿا؟ هيم… اهو ڪم ڪري سگهي ٿو!
جيئن ڪجي ايڪسل ڊيٽا جي تصديق ريجڪس سان
افسوس سان، ڪنهن به ٺهيل ايڪسل فيچرز ريجڪس کي سپورٽ نٿو ڪري، ۽ ڊيٽا جي تصديق ناهي استثنا. باقاعده اظهار استعمال ڪندي سيل ان پٽ کي درست ڪرڻ جي قابل ٿيڻ لاء، توهان کي پهريان هڪ ڪسٽم ريجڪس فنڪشن ٺاهڻ جي ضرورت آهي. هڪ ٻي پيچيدگي اها آهي ته VBA صارف جي مقرر ڪيل ڪمن کي سڌو سنئون ڊيٽا جي تصديق جي خدمت نه ٿي ڪري سگھجي - توهان کي هڪ ثالث جي ضرورت پوندي هڪ نالي واري فارمولا جي صورت ۾.
مٿين کي غور ڪندي، اچو ته مختصر طور تي انهن قدمن کي بيان ڪريون جيڪي کنيا ويندا. regexes استعمال ڪندي Excel ۾ ڊيٽا کي درست ڪرڻ لاءِ:
- هڪ ڪسٽم ريجڪس فنڪشن ٺاهيو جيڪو چيڪ ڪري ٿو ته ڇا ان پٽ جي قيمت ريگيولر ايڪسپريشن سان ملي ٿي.
- پنهنجي ريجڪس فارمولا لاءِ نالو بيان ڪريو. 9جيتري قدر سيلز جي تصديق جي سيٽنگون توهان چاهيو ٿا.
آواز هڪ منصوبي وانگر آهي؟ اچو ته ان کي عملي طور تي عمل ۾ آڻڻ جي ڪوشش ڪريون!
ڪسٽم ريگيولر ايڪسپريشنز استعمال ڪندي ايڪسل ڊيٽا جي تصديق
هي مثال هڪ تمام عام ڪيس کي حل ڪري ٿو - صرف هڪ مخصوص نموني جي قدرن کي ڪيئن اجازت ڏيو.
فرض ڪريو ته توھان پنھنجي ورڪ شيٽ ۾ ڪجھ SKU ڪوڊ رکو ٿا ۽ پڪ ڪرڻ چاھيو ٿا ته صرف ڏنل نمونن سان ملندڙ ڪوڊ لسٽ ۾ اچن. بشرطيڪ هر SKU اکرن جي 2 گروپن تي مشتمل ھجي جنھن کي ھائيفن سان الڳ ڪيو ويو آھي، پھريون گروپ جنھن ۾ 3 وڏا اکر ۽ ٻيو گروپ - 3 عدد شامل آھن، توھان ھيٺ ڏنل ريجڪس استعمال ڪندي اھڙين قدرن جي سڃاڻپ ڪري سگھو ٿا.
نمون : ^[A-Z]{3}-\d{3}$
مهرباني ڪري نوٽ ڪريو ته اسٽرنگ جي شروعات (^) ۽ پڄاڻي ($) لنگر انداز ٿيل آهن، تنهن ڪري ان کان سواءِ ٻيو ڪو به اکر ڪونهي نموني سيل ۾ داخل ٿي سگھي ٿو.
1. ڪسٽم ريجڪس ميچ فنڪشن شامل ڪريو
شروع ڪريو RegExpMatch فنڪشن کي پنھنجي ورڪ بڪ ۾ داخل ڪرڻ سان. ڪوڊ اڳ ۾ ئي اسان جي ايڪسل گروس طرفان لکيل آهي، تنهنڪري توهان کي صرف ان کي مٿين ڳنڍيل پيج تان ڪاپي ڪري پنهنجي VBA ايڊيٽر ۾ پيسٽ ڪرڻ جي ضرورت آهي.
هتي توهان جي حوالي لاءِ فنڪشن جو نحو آهي:
RegExpMatch(text , pattern, [match_case])ڪٿي:
- ٽيڪسٽ (گهربل) - هڪ ماخذ اسٽرنگ (اسان جي حوالي سان - هڪ تصديق ٿيل سيل).
- Pattern (گهربل) - ملائڻ لاءِ هڪ باقاعده اظهار.
- Match_case (اختياري) - ميچ جو قسم. صحيح يا ختم ٿيل- ڪيس-حساس؛ FALSE - ڪيس غير حساس.
ٽپ. جيڪڏهن توهان صارف آهيو اسان جي Ultimate Suite، ته پوءِ توهان ڪري سگهو ٿا Regex Data Validation Excel ۾ بغير ڪنهن VBA ڪوڊ کي توهان جي ورڪ بڪ ۾ شامل ڪرڻ جي. بس اسان جي ريجڪس ٽولز سان شامل ڪيل ڪسٽم AblebitsRegexMatch فنڪشن جو فائدو وٺو.
2. هڪ نالي وارو فارمولا ٺاهيو
توهان جي ٽارگيٽ ورڪ شيٽ ۾، سيل A1 چونڊيو (قطع نظر ان جي مواد ۽ ڪنهن به سيل جي توهان اصل ۾ تصديق ڪرڻ وارا آهيو)، 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 استعمال ڪريو، ۽ پوء هڪ. ان سان ڪوبه فرق نٿو پوي ته توهان ڪهڙو خاص حوالو استعمال ڪندا آهيو جيستائين اهو هن وقت چونڊيل سيل سان ملندو آهي.
قدم در قدمھدايتون، مھرباني ڪري ڏسو ته ڪيئن ٺاھيو فارمولا Excel ۾.
3. ڊيٽا جي تصديق کي سيٽ اپ ڪريو
پھرين سيل کي چونڊيو جيڪو چيڪ ڪيو وڃي (اسان جي صورت ۾ A5) ۽ ٺاھيو ڪسٽم ڊيٽا جي تصديق واري قاعدي جي بنياد تي نامزد ٿيل فارمولا. ان لاءِ، ھيٺيون ڪم ڪريو:
- ڊيٽا ٽئب تي ڪلڪ ڪريو > ڊيٽا جي تصديق .
- ۾ اجازت ڏيو ڊراپ-ڊائون لسٽ، منتخب ڪريو ڪسٽم .
- هيٺ ڏنل فارمولا داخل ڪريو لاڳاپيل خاني ۾.
=Validate_SKU
- خالي نظر انداز ڪريو اختيار کي غير منتخب ڪريو، ٻي صورت ۾ توھان جو ضابطو ڪم نه ڪندو.
اختياري طور تي، توھان ٽائيپ ڪري سگھو ٿا جڏهن غلط ڊيٽا سيل ۾ داخل ٿئي ٿي ته ظاهر ٿيڻ لاءِ هڪ ڪسٽم غلطي پيغام.
جيڪڏهن توهان محسوس ڪيو ته توهان کي تفصيلي قدمن جي ضرورت آهي، هتي توهان وڃو: Excel ۾ ڪسٽم ڊيٽا جي تصديق ڪيئن قائم ڪجي.
4. ڊيٽا جي تصديق کي وڌيڪ سيلز ۾ نقل ڪريو
وڌيڪ سيلز ۾ تصديق جي سيٽنگن کي نقل ڪرڻ لاءِ، توهان کي اهو ڪرڻو آهي:
- ڊيٽا جي تصديق سان سيل کي چونڊيو ۽ Ctrl + C کي دٻايو. ان کي نقل ڪريو.
- ٻين سيلن کي چونڊيو جيڪي توھان تصديق ڪرڻ چاھيو ٿا، انھن تي ساڄي ڪلڪ ڪريو، ڪلڪ ڪريو خاص پيسٽ ڪريو ، ۽ چونڊيو تصديق اختيار.
- ڪلڪ ڪريو OK .
ڊيٽا جي تصديق کي ڪيئن نقل ڪرڻ ۾ وڌيڪ معلومات ملي سگهي ٿي.
هاڻي، هر ڀيري جڏهن ڪو ماڻهو ڪنهن به تصديق ٿيل سيلز ۾ غلط SKU داخل ڪرڻ جي ڪوشش ڪري ٿو، هيٺ ڏنل ڊيڄاريندڙ پيغام ظاهر ٿيندو:
ريجڪس سان اي ميل جي تصديق
اي ميل جي تصديق ڪرڻ لاءِ، توهان شروع ڪريوهڪ باقاعده اظهار لکڻ سان جيڪو هڪ اي ميل ايڊريس سان ملندو آهي.
Pattern : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
نحو جي تفصيلي وضاحت لاءِ، مھرباني ڪري صحيح اي ميل ايڊريس سان ملائڻ لاءِ ريجڪس ڏسو.
۽ ھاڻي، اڳيئي واقف قدمن تي عمل ڪندي تصديق جي معيار کي بيان ڪريو:
- مٿيون ريجڪس B2 ۾ داخل ڪريو.
- سيل A1 چونڊيو ۽ نالو متعين ڪريو Validate_Email جنهن جو حوالو ڏنو وڃي:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- سيل B5 لاءِ، هيٺ ڏنل فارمولا استعمال ڪندي ڪسٽم ڊيٽا جي تصديق لاڳو ڪريو. اهو ضروري آهي ته خالي کي نظر انداز ڪريو اختيار کي غير منتخب ڪيو وڃي.
=Validate_Email
اضافي طور تي، توهان ترتيب ڏئي سگهو ٿا هڪ ڪسٽم ايرر پيغام صارف کي صحيح اي ميل ايڊريس داخل ڪرڻ لاءِ.
- هيٺ ڏنل سيلز ۾ ضابطي کي نقل ڪريو.
جيڪڏهن هڪ اي ميل پتو جيڪو توهان تصديق ٿيل سيل ۾ داخل ڪيو ٿا اهو ريجڪس نموني سان نه ٿو ملي، هيٺ ڏنل خبرداري ڏيندو پاپ اپ:
باقاعده اظهار استعمال ڪندي پاسورڊ جي تصديق ڪرڻ
جڏهن پاسورڊ جي تصديق لاءِ ريجڪس استعمال ڪندي، فيصلو ڪرڻ لاءِ پهرين شيءِ اهو آهي ته توهان جي باقاعده اظهار کي چيڪ ڪرڻ گهرجي. ھتي ڪجھ مثال آھن جيڪي توھان کي صحيح رستي تي آڻي سگھن ٿا.
پاسورڊ گھٽ ۾ گھٽ 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 اکرن جو هجڻ گهرجي ڊگھو ۽ گھٽ ۾ گھٽ ھڪڙو اکر، ھڪڙو عدد ۽ ھڪڙو خاص اکر شامل ڪريو:
Pattern : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
ٺھيل نموني سان، توھان اڳتي ڪري سگھوٿا ڊيٽا جي تصديق کي ترتيب ڏيڻ:
- C2 ۾ پنھنجو پاسورڊ ريجڪس داخل ڪريو.
- سيل A1 کي چونڊيو ۽ ھڪڙي نالي وارو فارمولا ٺاھيو جنھن کي سڏيو ويندو آھي. Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- سيل C5 لاءِ، ھيٺ ڏنل فارمولا سان ڪسٽم جي تصديق وارو اصول ٺاھيو. خالي کي نظر انداز ڪريو چيڪ باڪس کي غير منتخب ڪرڻ ياد رکو.
=Validate_Password
- جيترن گھڻن سيلن ۾ توھان چاھيو قاعدي کي نقل ڪريو.
ھاڻي، توھان محفوظ طور تي لسٽ ۾ نوان پاسورڊ شامل ڪري سگھو ٿا. جيڪڏهن هڪ ان پٽ اسٽرنگ ريجڪس سان نه ٿو ملي، هيٺ ڏنل الرٽ توهان کي ياد ڏياريندو ته ڪهڙي قسم جا قدر قبول ڪيا ويا آهن:
ريجڪس ڊيٽا جي تصديق ڪم نه ڪري رهي آهي
جيڪڏهن ريجڪس ڊيٽا جي تصديق توهان جي Excel ۾ ڪم نه ڪندي , گهڻو ڪري اهو هيٺين سببن مان هڪ سبب آهي.
RegExpMatch فنڪشن غائب آهي
ڊيٽا جي تصديق لاڳو ڪرڻ کان پهريان، پنهنجي ورڪ بڪ ۾ RegExpMatch فنڪشن جو ڪوڊ داخل ڪرڻ جي پڪ ڪريو.
غلط باقاعدهexpression
پڪ ڪرڻ لاءِ ته توهان جو regex توقع مطابق ڪم ڪري، توهان ڪجهه سيل ۾ RegExpMatch فارمولا داخل ڪري نتيجن کي جانچي سگهو ٿا. وڌيڪ معلومات لاءِ، مھرباني ڪري مثالن سان ملندڙ Excel Regular expression ڏسو.
پنھنجي ريگيولر ايڪسپريشنز جو تجزيو ۽ ڊيبگ ڪرڻ لاءِ، توھان استعمال ڪري سگھو ٿا مفت آن لائن ريجڪس ٽيسٽنگ سروسز جيئن ته RegEx101 يا RegExr.
غلط نالي وارو فارمولا
ڊيٽا جي تصديق جي ناڪامي جو هڪ تمام عام سبب هڪ ريجڪس نالي فارمولا آهي جيڪو غلط سيل ڏانهن اشارو ڪري ٿو. سڀني مثالن ۾، اسان A1 جي حوالي سان هڪ فارمولا بيان ڪرڻ جي صلاح ڏني آهي:
=RegExpMatch(A1, regex)
اهو صرف ان صورت ۾ ڪم ڪري ٿو جڏهن سيل A1 فعال آهي جڏهن نالو ۽ <15 لاڳاپيل حوالو ($ جي نشاني کان سواءِ) استعمال ڪيو ويندو آهي.
خيال اهو آهي ته فارمولا (A1) ۾ بيان ڪيل هڪ لاڳاپو حوالو خودڪار طور تي تصديق ٿيل سيل جي لاڳاپي واري پوزيشن جي بنياد تي تبديل ٿي ويندو. ٻين لفظن ۾، سيل A1 صرف سهولت ۽ استحڪام لاء چونڊيو ويو آهي. حقيقت ۾، توهان سيل B1 چونڊيو ۽ B1 ڏانهن رجوع ڪري سگهو ٿا، سيل C1 چونڊيو ۽ C1 ڏانهن رجوع ڪريو، وغيره. اهم ڳالهه اها آهي ته حوال ڪيل سيل کي فعال سيل هجڻ گهرجي.
پڙهڻ لاءِ ته ڇا توهان جو نالو فارمولا درست آهي، پنهنجي ورڪ شيٽ ۾ ڪنهن به سيل کي چونڊيو، کوليو. نالو مئنيجر، ۽ ڏسو ته ڪهڙي سيل ڏانهن فارمولا اشارو ڪري ٿو. جيڪڏهن اهو هن وقت منتخب ٿيل سيل ڏانهن اشارو ڪري ٿو، فارمولا صحيح آهي. ٻي صورت ۾، توھان کي پھرين دليل ۾ حوالو تبديل ڪرڻ گھرجي.
اسڪرين شاٽ ۾هيٺ ڏنل، سيل A7 چونڊيو ويو آهي، مطلب ته هڪ نالي وارو فارمولا پهرين دليل ۾ A7 هجڻ گهرجي. ٻيو دليل ($A$2) ريجڪس ڏانهن اشارو ڪري ٿو - هي حوالو مسلسل رهڻو آهي، تنهنڪري اهو $ نشاني سان بند ڪيو ويو آهي.
نظر انداز ٿيل خالي آپشن چونڊيو
جڏهن ڪسٽم ڊيٽا جي تصديق واري ضابطي کي ترتيب ڏيو، اهو ضروري آهي ته خالي نظر انداز ڪريو چيڪ باڪس کي غير منتخب ڪيو وڃي. ٻي صورت ۾، هيٺ ڏنل سببن جي ڪري قاعدو ڪم نه ڪندو:
جيڪڏهن هڪ ميچ نه ملي، RegExpMatch فنڪشن FALSE موٽائي ٿو. سان خالي نظر انداز ڪريو اختيار چونڊيو، غلط کي خالي ڪرڻ جي برابر آهي ۽ نظر انداز ڪيو ويو آهي.
هڪ متبادل حل واضح طور تي بيان ڪري رهيو آهي ته فارمولا واپس اچڻ گهرجي TRUE:
=RegExpMatch(…)=TRUE
اهو ڪيئن ڪجي ايڪسل ۾ ڊيٽا جي تصديق کي باقاعده اظهار استعمال ڪندي. مان پڙهڻ لاءِ توهان جي مهرباني ۽ توهان کي ايندڙ هفتي اسان جي بلاگ تي ڏسڻ لاءِ منتظر آهيان!
ڊائون لوڊ لاءِ مشق ورڪ بڪ
Regex ڊيٽا جي تصديق جا مثال (.xlsm فائل)
3> 3>