विषयसूची
व्हाइटस्पेस को सबसे प्रभावी तरीके से संभालना चाहते हैं? सेल में सभी स्पेस को हटाने के लिए रेगुलर एक्सप्रेशन का उपयोग करें, कई स्पेस को एक वर्ण से बदलें, केवल संख्याओं के बीच के स्पेस को ट्रिम करें, और बहुत कुछ। रिक्त स्थान के बिना डेटासेट। ज्यादातर मामलों में, व्हॉट्सएप अच्छा है - आप इसका उपयोग सूचनाओं के अलग-अलग टुकड़ों को नेत्रहीन रूप से अलग करने के लिए करते हैं ताकि इसे समझना आसान हो सके। हालांकि, कुछ स्थितियों में, यह बुरा हो सकता है - अतिरिक्त रिक्त स्थान आपके सूत्रों को गड़बड़ कर सकते हैं और आपकी कार्यपत्रकों को लगभग अप्रबंधनीय बना सकते हैं।
Excel में रिक्त स्थान को ट्रिम करने के लिए रेगुलर एक्सप्रेशन का उपयोग क्यों करें?
इससे पहले कि हम एक्सेल वर्कशीट में व्हाइटस्पेस को हटाने के लिए रेगुलर एक्सप्रेशन का उपयोग करने की सूक्ष्मता में गोता लगाएँ, मैं उस प्रश्न का समाधान करना चाहता हूँ जो पहली बार दिमाग में आता है - हमें रेगेक्स की आवश्यकता क्यों है जब एक्सेल में पहले से ही टीआरआईएम है function?
अंतर को समझने के लिए, देखते हैं कि प्रत्येक मामले में व्हॉट्सएप क्या माना जाता है:
- अंतर्निहित TRIM फ़ंक्शन केवल अंतरिक्ष वर्ण को हटा सकता है जिसका 7-बिट एएससीआईआई सिस्टम में मान 32 है। रेखा (\n). इसके अतिरिक्त, व्हाट्सएप कैरेक्टर (\s) है जो इन सभी प्रकारों से मेल खाता है और कच्चे इनपुट की सफाई के लिए बेहद मददगार हैdata.
परदे के पीछे वास्तव में क्या होता है, यह जानना, समाधान निकालना बहुत आसान है, ठीक है?
Excel में रेगुलर एक्सप्रेशन कैसे सक्षम करें
यह एक सर्वविदित तथ्य है कि आउट-ऑफ़-द-बॉक्स एक्सेल रेगुलर एक्सप्रेशन का समर्थन नहीं करता है। उन्हें सक्षम करने के लिए, आपको एक कस्टम VBA फ़ंक्शन बनाना होगा। सौभाग्य से, हमारे पास पहले से ही एक है, जिसका नाम RegExpReplace है। रुको, जब हम हटाने की बात कर रहे हैं तो "बदलें" क्यों? एक्सेल भाषा में, "निकालें" "एक खाली स्ट्रिंग के साथ बदलें" के लिए सिर्फ एक और शब्द है :)
अपने एक्सेल में फ़ंक्शन जोड़ने के लिए, बस इस पेज से इसके कोड को कॉपी करें, इसे वीबीए संपादक में पेस्ट करें , और अपनी फ़ाइल को मैक्रो-सक्षम वर्कबुक (.xlsm) के रूप में सहेजें।
आपके संदर्भ के लिए फ़ंक्शन का सिंटैक्स यहां दिया गया है:
RegExpReplace(टेक्स्ट, पैटर्न, रिप्लेसमेंट, [instance_num] , [match_case])पहले तीन तर्क आवश्यक हैं, अंतिम दो वैकल्पिक हैं।
कहां:
- पाठ - मूल स्ट्रिंग इसमें खोजें।
- पैटर्न - खोजने के लिए रेगेक्स। निकालने व्हाइटस्पेस के लिए, आप इस तर्क को या तो सेट करेंगे:
- रिक्त स्ट्रिंग ("") पूरी तरह से सभी स्पेस को ट्रिम करने के लिए<11
- स्पेस कैरेक्टर ("") एक स्पेस कैरेक्टर के साथ कई स्पेस को बदलने के लिए
अधिक जानकारी के लिए, कृपया RegExpReplace फ़ंक्शन देखें। RegExpReplace फ़ंक्शन को आपकी कार्यपुस्तिका में जोड़ा गया है, आइए एक बार में विभिन्न परिदृश्यों से निपटें।
regex का उपयोग करके सभी सफेद जगहों को हटाएं
एक स्ट्रिंग में सभी रिक्तियों को हटाने के लिए, आप बस किसी भी सफेद जगह के चरित्र को खोजते हैं, जिसमें शामिल हैं एक स्पेस, एक टैब, एक कैरिज रिटर्न और एक लाइन फीड, और उन्हें एक खाली स्ट्रिंग ("") से बदलें।
पैटर्न : \s+
प्रतिस्थापन : ""
यह मानते हुए कि स्रोत स्ट्रिंग A5 में है, B5 में सूत्र है:
=RegExpReplace(A5, "\s+", "")
अपने पैटर्न को प्रबंधित करना आसान बनाने के लिए , आप रेगेक्स को एक पूर्वनिर्धारित सेल में इनपुट कर सकते हैं और $A$2 जैसे एक पूर्ण संदर्भ का उपयोग करके सूत्र को आपूर्ति कर सकते हैं, इसलिए कॉलम के नीचे सूत्र की प्रतिलिपि बनाते समय सेल का पता अपरिवर्तित रहेगा।
=RegExpReplace(A5, $A$2, "")
एक से अधिक व्हाइटस्पेस हटाएं
अतिरिक्त व्हाइटस्पेस हटाने के लिए (यानी अधिक व्हाइटस्पेस हटाएं) n एक लगातार रिक्त स्थान), समान रेगेक्स \s+ का उपयोग करें लेकिन पाए गए मिलानों को एकल स्पेस वर्ण से बदलें।
पैटर्न : \s+
प्रतिस्थापन : " "
=RegExpReplace(A5, "\s+", " ")
कृपया ध्यान दें कि यह सूत्र केवल बीच में ही नहीं बल्कि एक स्थान वर्ण रखता हैडेटासेट के नीचे, मान लें कि आप सभी अग्रणी/पिछली जगहों को ट्रिम करना चाहते हैं और सभी के बीच में एक जगह को छोड़कर कई पंक्तियों को बरकरार रखते हैं। कार्य को पूरा करने के लिए, आपको दो अलग-अलग RegExpReplace फ़ंक्शंस की आवश्यकता होगी।
पहला फ़ंक्शन कई स्पेस को एक स्पेस वर्ण से बदल देता है।
=RegExpReplace(A5, " +", " ")
दूसरा फ़ंक्शन स्पेस को स्ट्रिप करता है एक पंक्ति के आरंभ और अंत से:
=RegExpReplace(A5, "^ +| +$", "")
बस दो कार्यों को एक दूसरे में नेस्ट करें:
=RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")
और आपको एक सही परिणाम:
एक वर्ण के साथ कई रिक्त स्थान को बदलने के लिए रेगेक्स
यदि आप स्ट्रिंग से सभी रिक्त स्थान को हटाना चाहते हैं और लगातार रिक्त स्थान के प्रत्येक समूह को प्रतिस्थापित करना चाहते हैं एक विशिष्ट वर्ण के साथ, आपको यह करने की आवश्यकता है:
सबसे पहले, इस रेगेक्स का उपयोग अग्रणी और अनुगामी व्हाइटस्पेस को ट्रिम करने के लिए करें:
=RegExpReplace(A8, "^[\s]+|[\s]+$", "")
फिर, उपरोक्त कार्य करें किसी अन्य RegExpReplace के टेक्स्ट तर्क के लिए जो आपके द्वारा निर्दिष्ट वर्ण के साथ एक या अधिक क्रमिक व्हाइटस्पेस को प्रतिस्थापित करता है, उदा. एक हाइफन:
पैटर्न : \s+
रिप्लेसमेंट : -
यह मानते हुए कि स्रोत स्ट्रिंग A8 में है, सूत्र यह आकार लेता है:
=RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")
या आप अलग-अलग सेल में पैटर्न और प्रतिस्थापन दर्ज कर सकते हैं जैसे स्क्रीनशॉट में दिखाया गया है:
Regex खाली लाइनों को हटाने के लिए
यहां एक सवाल है जो एक सेल में कई लाइन वाले उपयोगकर्ता अक्सर पूछते हैं: "मेरे सेल में बहुत सारी खाली लाइनें हैं। क्या पाने का कोई तरीका हैउन्हें प्रत्येक सेल के माध्यम से जाने और प्रत्येक पंक्ति को मैन्युअल रूप से हटाने के अलावा अन्य से छुटकारा पाएं?" उत्तर: यह आसान है!
खाली लाइनों से मिलान करने के लिए जिसमें वर्तमान लाइन के प्रारंभ से ^ तक एक भी वर्ण नहीं है अगली पंक्ति \n, रेगेक्स है:
पैटर्न : ^\n
यदि आपकी दृष्टिगत रिक्त पंक्तियों में रिक्त स्थान या टैब हैं, तो इस रेगुलर एक्सप्रेशन का उपयोग करें:
पैटर्न : ^[\t ]*\n
इस फॉर्मूले का उपयोग करके रेगेक्स को खाली स्ट्रिंग से बदलें, और सभी खाली लाइनें एक बार में चली जाएंगी!
=RegExpReplace(A5, $A$2, "")
RegEx Tools के साथ व्हाइटस्पेस हटाना
उपरोक्त उदाहरणों ने रेगेक्स द्वारा प्रदान की गई अद्भुत संभावनाओं का केवल एक छोटा सा हिस्सा प्रदर्शित किया है। दुर्भाग्य से, सभी नहीं VBA में क्लासिक रेगुलर एक्सप्रेशन की विशेषताएं उपलब्ध हैं।
सौभाग्य से, हमारे अल्टीमेट सूट में शामिल RegEx उपकरण इन सीमाओं से मुक्त हैं क्योंकि वे Microsoft के .NET RegEx इंजन द्वारा संसाधित किए जाते हैं। इससे आप अधिक परिष्कृत पैटर्न बना सकते हैं जो VBA RegExp द्वारा समर्थित नहीं हैं। बेलो w आपको इस तरह के रेगुलर एक्सप्रेशन का एक उदाहरण मिलेगा।
संख्याओं के बीच की जगह को हटाने के लिए Regex
एक अल्फ़ान्यूमेरिक स्ट्रिंग में, मान लें कि आप केवल संख्याओं के बीच के व्हाइटस्पेस को हटाना चाहते हैं, इसलिए एक स्ट्रिंग जैसे "A 1 2 B" "A 12 B" बन जाता है।
किन्ही भी दो अंकों के बीच रिक्त स्थान का मिलान करने के लिए, आप निम्नलिखित लुक-अराउंड का उपयोग कर सकते हैं:
पैटर्न : (?<=\d)\s+(?=\d)
फॉर्मूला आधारित बनाने के लिएउपरोक्त रेगेक्स पर, प्रदर्शन करने के लिए यहां दो आसान चरण हैं:
- एबलबिट्स डेटा टैब पर, टेक्स्ट समूह में, Regex पर क्लिक करें टूल्स । विकल्प, और निकालें हिट करें।
परिणामों को सूत्रों के रूप में प्राप्त करने के लिए, मूल्यों के रूप में नहीं, याद रखें कि सूत्र के रूप में सम्मिलित करें चेक बॉक्स में सही का निशान लगाएं।
<24
कुछ ही देर में, आपको मूल डेटा के दाईं ओर एक नए कॉलम में AblebitsRegexRemove फ़ंक्शन डाला हुआ दिखाई देगा।
वैकल्पिक रूप से, आप किसी सेल में रेगेक्स इनपुट कर सकते हैं , कहें A5, और इन्सर्ट फंक्शन डायलॉग बॉक्स का उपयोग करके सीधे सेल में फॉर्मूला डालें, जहां AblebitsRegexRemove को AblebitsUDFs के तहत वर्गीकृत किया गया है।
चूंकि यह फ़ंक्शन विशेष रूप से स्ट्रिंग्स को हटाने के लिए डिज़ाइन किया गया है, इसके लिए केवल दो तर्कों की आवश्यकता होती है - इनपुट स्ट्रिंग और रेगेक्स:
=AblebitsRegexRemove(A5, $A$2)
यह है कि रिक्त स्थान कैसे निकालें एक्सेल नियमित अभिव्यक्ति का उपयोग कर। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और अगले सप्ताह आपको हमारे ब्लॉग पर देखने के लिए उत्सुक हूं!
उपलब्ध डाउनलोड
रेगेक्स के साथ व्हाइटस्पेस हटाएं - उदाहरण (.xlsm फ़ाइल)
अल्टीमेट सूट - परीक्षण संस्करण (.exe फ़ाइल)
शब्द लेकिन एक स्ट्रिंग की शुरुआत और अंत में भी, जो अच्छा नहीं है। अग्रणी और अनुगामी व्हाइटस्पेस से छुटकारा पाने के लिए, उपरोक्त सूत्र को किसी अन्य RegExpReplace फ़ंक्शन में नेस्ट करें जो प्रारंभ और अंत से रिक्त स्थान को अलग करता है: =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")
Regex से अग्रणी और अनुगामी रिक्त स्थान को हटा दें
किसी पंक्ति के आरंभ या अंत में खाली स्थान खोजने के लिए, प्रारंभ ^ और अंत $ एंकर का उपयोग करें।
अग्रणी रिक्त स्थान:<3
पैटर्न : ^[\s]+
ट्रेलिंग व्हाइटस्पेस:
पैटर्न : [\s ]+$
अग्रणी और अनुगामी रिक्त स्थान:
पैटर्न : ^[\s]+