विषयसूची
ट्यूटोरियल दिखाता है कि कस्टम RegexMatch फ़ंक्शन की मदद से रेगुलर एक्सप्रेशन का उपयोग करके Excel में डेटा सत्यापन कैसे किया जाता है।
जब एक्सेल वर्कशीट में उपयोगकर्ता इनपुट को प्रतिबंधित करने की बात आती है, तो डेटा सत्यापन अपरिहार्य है। किसी दिए गए सेल में केवल संख्या या दिनांक की अनुमति देना चाहते हैं? या पाठ मानों को एक विशिष्ट लंबाई तक सीमित करें? या हो सकता है कि किसी दिए गए सीमा के बाहर के समय को अस्वीकार कर दें? कोई समस्या नहीं, यह सब पूर्व निर्धारित या कस्टम सत्यापन मानदंड के साथ आसानी से किया जा सकता है। लेकिन क्या होगा यदि मैं केवल वैध ईमेल पते या विशिष्ट पैटर्न से मेल खाने वाले स्ट्रिंग्स को अनुमति देना चाहता हूं? काश, यह संभव नहीं होता। रेगेक्स आप कहते हैं? हम्म… यह काम कर सकता है!
रेगेक्स के साथ एक्सेल डेटा सत्यापन कैसे करें
अफसोस की बात है कि कोई भी अंतर्निहित एक्सेल फीचर रेगेक्स का समर्थन नहीं करता है, और डेटा सत्यापन नहीं है अपवाद। रेगुलर एक्सप्रेशन का उपयोग करके सेल इनपुट को सत्यापित करने में सक्षम होने के लिए, आपको पहले एक कस्टम रेगेक्स फ़ंक्शन बनाना होगा। एक और जटिलता यह है कि VBA उपयोगकर्ता-परिभाषित फ़ंक्शंस को सीधे डेटा सत्यापन के लिए प्रस्तुत नहीं किया जा सकता है - आपको नामांकित सूत्र के रूप में एक मध्यस्थ की आवश्यकता होगी। रेगेक्स का उपयोग करके एक्सेल में डेटा को मान्य करने के लिए:
- एक कस्टम रेगेक्स फ़ंक्शन बनाएं जो यह जांचता है कि इनपुट मान एक रेगुलर एक्सप्रेशन से मेल खाता है या नहीं।
- अपने रेगेक्स फॉर्मूला के लिए एक नाम परिभाषित करें।
- नामित सूत्र के आधार पर डेटा सत्यापन नियम कॉन्फ़िगर करें।
- प्रतिलिपि बनाएँआप जितने चाहें उतने सेल के लिए सत्यापन सेटिंग्स।
एक योजना की तरह लगता है? आइए इसे अभ्यास में लागू करने का प्रयास करें!
कस्टम रेगुलर एक्सप्रेशंस का उपयोग करते हुए एक्सेल डेटा सत्यापन
यह उदाहरण एक बहुत ही सामान्य मामले को संबोधित करता है - केवल एक विशिष्ट पैटर्न के मूल्यों को कैसे अनुमति दें।
मान लें कि आप अपनी वर्कशीट में कुछ SKU कोड रखते हैं और यह सुनिश्चित करना चाहते हैं कि केवल दिए गए पैटर्न से मेल खाने वाले कोड ही सूची में आएं। बशर्ते कि प्रत्येक एसकेयू में हाइफन से अलग वर्णों के 2 समूह होते हैं, पहला समूह 3 पूंजी अक्षरों और दूसरे समूह - 3 अंकों सहित, आप नीचे दिए गए रेगेक्स का उपयोग करके ऐसे मानों की पहचान कर सकते हैं।
पैटर्न : ^[A-Z]{3}-\d{3}$
कृपया ध्यान दें कि स्ट्रिंग का प्रारंभ (^) और अंत ($) एंकर हैं, इसलिए इसमें के अलावा कोई वर्ण नहीं है एक सेल में पैटर्न दर्ज किया जा सकता है।
1। एक कस्टम रेगेक्स मैच फ़ंक्शन जोड़ें
अपनी कार्यपुस्तिका में RegExpMatch फ़ंक्शन सम्मिलित करके प्रारंभ करें। कोड पहले से ही हमारे एक्सेल गुरुओं द्वारा लिखा गया है, इसलिए आपको इसे ऊपर दिए गए लिंक पेज से कॉपी करना होगा और अपने वीबीए संपादक में पेस्ट करना होगा।
आपके संदर्भ के लिए फ़ंक्शन का सिंटैक्स यहां दिया गया है:
RegExpMatch(text) , पैटर्न, [मैच_केस])कहां:
- टेक्स्ट (आवश्यक) - एक स्रोत स्ट्रिंग (हमारे संदर्भ में - एक मान्य सेल)। <9 पैटर्न (आवश्यक) - मिलान करने के लिए एक रेगुलर एक्सप्रेशन।
- Match_case (वैकल्पिक) - मिलान प्रकार। सही या छोड़ा गया - मामला-संवेदनशील; FALSE - केस-संवेदी।
युक्ति। यदि आप हमारे अल्टीमेट सूट के उपयोगकर्ता हैं, तो आप अपनी कार्यपुस्तिकाओं में कोई वीबीए कोड जोड़े बिना एक्सेल में रेगेक्स डेटा सत्यापन कर सकते हैं। बस हमारे रेगेक्स टूल्स के साथ शामिल कस्टम एबलबिट्स रेगेक्समैच फ़ंक्शन का लाभ उठाएं।
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 का उपयोग करें, और इसलिए एक। जब तक यह वर्तमान में चयनित सेल से मेल खाता है, तब तक यह वास्तव में मायने नहीं रखता कि आप किस विशेष संदर्भ का उपयोग करते हैं।
चरण-दर-चरण के लिएनिर्देश, कृपया देखें कि एक्सेल में नामांकित सूत्र कैसे बनाया जाता है।
3। डेटा वैलिडेशन सेट अप करें
चेक किए जाने वाले पहले सेल का चयन करें (हमारे मामले में A5) और नामित सूत्र के आधार पर एक कस्टम डेटा वैलिडेशन नियम बनाएं। इसके लिए, निम्न कार्य करें:
- डेटा टैब > डेटा सत्यापन क्लिक करें।
- अनुमति दें<2 में> ड्रॉप-डाउन सूची में, कस्टम चुनें।
- संबंधित बॉक्स में नीचे दिए गए सूत्र को दर्ज करें।
=Validate_SKU
- रिक्त को अनदेखा करें विकल्प को अचयनित करें, अन्यथा आपका नियम काम नहीं करेगा।
वैकल्पिक रूप से, आप टाइप कर सकते हैं सेल में अमान्य डेटा दर्ज किए जाने पर प्रदर्शित होने वाला कस्टम त्रुटि संदेश।
यदि आपको लगता है कि आपको विस्तृत चरणों की आवश्यकता है, तो आप यहां जाएं: एक्सेल में कस्टम डेटा सत्यापन कैसे सेट करें।
4। डेटा सत्यापन को और अधिक सेल में कॉपी करें
सत्यापन सेटिंग को अधिक सेल में कॉपी करने के लिए, आपको यह करना होगा:
- डेटा सत्यापन वाले सेल का चयन करें और इसके लिए Ctrl + C दबाएं इसे कॉपी करें।
- उन अन्य सेल का चयन करें जिन्हें आप सत्यापित करना चाहते हैं, उन्हें राइट-क्लिक करें, विशेष पेस्ट करें पर क्लिक करें, और मान्यकरण विकल्प चुनें।
- ओके क्लिक करें।
डेटा सत्यापन की प्रतिलिपि कैसे करें में अधिक जानकारी प्राप्त की जा सकती है।
अब, हर बार जब कोई किसी मान्य सेल में अमान्य SKU दर्ज करने का प्रयास करता है, तो निम्न चेतावनी संदेश दिखाई देगा:
रेगेक्स के साथ ईमेल सत्यापन
ईमेल सत्यापन करने के लिए, आप प्रारंभ करेंईमेल पते से मेल खाने वाली रेगुलर एक्सप्रेशन लिखने के साथ।
पैटर्न : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
सिंटैक्स की विस्तृत व्याख्या के लिए, कृपया मान्य ईमेल पतों के मिलान के लिए Regex देखें।
और अब, पहले से परिचित चरणों का पालन करके सत्यापन मानदंड निर्दिष्ट करें:
- 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 वर्ण लंबा होना चाहिए और इसमें कम से कम एक अपरकेस अक्षर, एक लोअरकेस अक्षर और एक अंक शामिल होना चाहिए:
पैटर्न : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
एक पासवर्ड कम से कम 6 अक्षरों का होना चाहिए लंबा और कम से कम एक अक्षर, एक अंक और एक विशेष वर्ण शामिल करें:
पैटर्न : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
स्थापित पैटर्न के साथ, आप डेटा सत्यापन सेट अप करने के लिए आगे बढ़ सकते हैं:
- C2 में अपना पासवर्ड रेगेक्स दर्ज करें।
- सेल A1 का चयन करें और नामक एक नामित सूत्र बनाएं Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- सेल C5 के लिए, नीचे दिए गए फ़ॉर्मूले से एक कस्टम सत्यापन नियम बनाएं। रिक्त को अनदेखा करें चेक बॉक्स को अचयनित करना याद रखें।
=Validate_Password
- जितने चाहें उतने सेल में नियम कॉपी करें।
अब, आप सूची में नए पासवर्ड सुरक्षित रूप से जोड़ सकते हैं। यदि कोई इनपुट स्ट्रिंग रेगेक्स से मेल नहीं खाती है, तो निम्नलिखित अलर्ट आपको याद दिलाएगा कि किस प्रकार के मान स्वीकार किए जाते हैं:
रेगेक्स डेटा सत्यापन काम नहीं कर रहा है
यदि रेगेक्स डेटा सत्यापन आपके एक्सेल में काम नहीं करता है , सबसे अधिक संभावना है कि यह निम्न कारणों में से एक के कारण हो।
RegExpMatch फ़ंक्शन अनुपलब्ध
डेटा सत्यापन लागू करने से पहले, अपनी कार्यपुस्तिका में RegExpMatch फ़ंक्शन का कोड सम्मिलित करना सुनिश्चित करें।
गलत नियमितअभिव्यक्ति
यह सुनिश्चित करने के लिए कि आपका रेगुलर एक्सप्रेशन अपेक्षित रूप से काम करता है, आप कुछ सेल में एक RegExpMatch सूत्र दर्ज कर सकते हैं और परिणामों की जांच कर सकते हैं। अधिक जानकारी के लिए, कृपया उदाहरणों के साथ एक्सेल रेगुलर एक्सप्रेशन मिलान देखें।
डेटा सत्यापन विफलता का एक बहुत ही सामान्य कारण एक गलत सेल का संदर्भ देने वाला एक रेगेक्स नाम का सूत्र है। सभी उदाहरणों में, हमने A1 को संदर्भित करते हुए एक सूत्र को परिभाषित करने की सिफारिश की:
=RegExpMatch(A1, regex)
यह केवल तभी काम करता है जब सेल A1 सक्रिय है जब एक नाम और <15 को परिभाषित किया जाता है>सापेक्ष संदर्भ (बिना $ चिह्न के) का उपयोग किया जाता है।
विचार यह है कि सूत्र (A1) में निर्दिष्ट एक सापेक्ष संदर्भ मान्य सेल की सापेक्ष स्थिति के आधार पर स्वचालित रूप से बदल जाएगा। दूसरे शब्दों में, कक्ष A1 को केवल सुविधा और निरंतरता के लिए चुना गया है। वास्तव में, आप सेल B1 का चयन कर सकते हैं और B1 को संदर्भित कर सकते हैं, सेल C1 का चयन कर सकते हैं और C1 को संदर्भित कर सकते हैं, और इसी तरह। मुख्य बात यह है कि संदर्भित सेल सक्रिय सेल होना चाहिए। नाम प्रबंधक, और देखें कि सूत्र किस सेल की ओर इशारा करता है। यदि यह वर्तमान में चयनित सेल को संदर्भित करता है, तो सूत्र सही है। अन्यथा, आपको पहले तर्क में संदर्भ बदल देना चाहिए।
स्क्रीनशॉट मेंनीचे, सेल A7 चुना गया है, जिसका अर्थ है कि नामांकित सूत्र में पहले तर्क में A7 होना चाहिए। दूसरा तर्क ($A$2) रेगेक्स को संदर्भित करता है - यह संदर्भ स्थिर रहने वाला माना जाता है, इसलिए इसे $ चिन्ह के साथ बंद कर दिया जाता है।
खाली विकल्प को अनदेखा करें
कस्टम डेटा सत्यापन नियम सेट करते समय, रिक्त को अनदेखा करें चेक बॉक्स को अचयनित करना महत्वपूर्ण है। अन्यथा, निम्नलिखित कारणों से नियम काम नहीं करेगा:
यदि कोई मिलान नहीं मिलता है, तो RegExpMatch फ़ंक्शन FALSE लौटाता है। रिक्त को अनदेखा करें विकल्प चुने जाने पर, FALSE रिक्त के बराबर होता है और इसे अनदेखा कर दिया जाता है।
एक वैकल्पिक समाधान स्पष्ट रूप से कह रहा है कि सूत्र TRUE लौटाना चाहिए:
=RegExpMatch(…)=TRUE
रेगुलर एक्सप्रेशंस का उपयोग करके एक्सेल में डेटा सत्यापन कैसे करें। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और अगले सप्ताह आपको हमारे ब्लॉग पर देखने के लिए उत्सुक हूं!
डाउनलोड के लिए अभ्यास कार्यपुस्तिका
Regex डेटा सत्यापन उदाहरण (.xlsm फ़ाइल)
<3