Regex वापरून एक्सेलमधील व्हाइटस्पेसेस आणि रिकाम्या ओळी काढा

  • ह्याचा प्रसार करा
Michael Brown

सर्वात प्रभावी पद्धतीने व्हाइटस्पेस हाताळू इच्छिता? सेलमधील सर्व स्पेस काढण्यासाठी रेग्युलर एक्स्प्रेशन्स वापरा, एका वर्णाने अनेक स्पेस बदला, फक्त संख्यांमधील स्पेस ट्रिम करा आणि बरेच काही.

तुम्ही कोणताही इनपुट डेटा वापरत असाल, तुम्हाला क्वचितच आढळेल. रिक्त स्थानांशिवाय डेटासेट. बर्‍याच प्रकरणांमध्ये, व्हाईटस्पेस चांगली असते - तुम्ही माहितीचे वेगवेगळे तुकडे दृष्यदृष्ट्या वेगळे करण्यासाठी ते समजणे सोपे करण्यासाठी वापरता. काही परिस्थितींमध्ये, तथापि, ते वाईट होऊ शकते - अतिरिक्त स्पेसमुळे तुमची सूत्रे बिघडू शकतात आणि तुमची वर्कशीट्स जवळजवळ अव्यवस्थापित करू शकतात.

    एक्सेलमध्ये व्हाइटस्पेस ट्रिम करण्यासाठी रेग्युलर एक्सप्रेशन का वापरावे?

    एक्सेल वर्कशीट्समधील व्हाईटस्पेस काढण्यासाठी रेग्युलर एक्स्प्रेशन्सचा वापर करण्याआधी, मी मनात येणारा प्रश्न सोडवू इच्छितो - जेव्हा एक्सेलमध्ये आधीपासूनच TRIM असते तेव्हा आम्हाला रेगेक्सेसची आवश्यकता का आहे? फंक्शन?

    फरक समजून घेण्यासाठी, प्रत्येक केसमध्ये व्हाइटस्पेस काय मानली जाते ते पाहू:

    • बिल्ट-इन TRIM फंक्शन फक्त स्पेस कॅरेक्टर काढून टाकू शकते. ज्याचे मूल्य 7-बिट ASCII प्रणालीमध्ये 32 आहे.
    • रेग्युलर एक्स्प्रेशन व्हाइटस्पेसचे काही भिन्न प्रकार ओळखू शकतात जसे की space ( ), टॅब (\t), कॅरेज रिटर्न (\r), आणि नवीन ओळ (\n). याव्यतिरिक्त, या सर्व प्रकारांशी जुळणारे व्हाइटस्पेस वर्ण (\s) आहे आणि कच्चा इनपुट साफ करण्यासाठी अत्यंत उपयुक्त आहेडेटा.

    पडद्यामागे नेमके काय घडते हे जाणून घेणे, त्यावर उपाय शोधणे खूप सोपे आहे, बरोबर?

    एक्सेलमध्ये रेग्युलर एक्सप्रेशन कसे सक्षम करावे

    हे सर्वज्ञात सत्य आहे की आउट-ऑफ-द-बॉक्स एक्सेल रेग्युलर एक्स्प्रेशनला सपोर्ट करत नाही. त्यांना सक्षम करण्यासाठी, तुम्हाला सानुकूल VBA फंक्शन तयार करणे आवश्यक आहे. सुदैवाने, आमच्याकडे आधीपासूनच RegExpReplace नावाचे एक आहे. थांबा, आम्ही काढण्याबद्दल बोलत असताना "बदला" का? एक्सेल भाषेत, "रिप्लेस विथ एम्प्टी स्ट्रिंग" साठी "रिमूव्ह" हा दुसरा शब्द आहे :)

    तुमच्या एक्सेलमध्ये फंक्शन जोडण्यासाठी, फक्त त्याचा कोड या पेजवरून कॉपी करा, तो VBA एडिटरमध्ये पेस्ट करा. , आणि तुमची फाइल मॅक्रो-सक्षम वर्कबुक (.xlsm) म्हणून सेव्ह करा.

    तुमच्या संदर्भासाठी फंक्शनचे वाक्यरचना येथे आहे:

    RegExpReplace(text, pattern, replacement, [instance_num] , [match_case])

    पहिले तीन वितर्क आवश्यक आहेत, शेवटचे दोन पर्यायी आहेत.

    कुठे:

    • मजकूर - मूळ स्ट्रिंग मध्ये शोधा.
    • पॅटर्न - शोधण्यासाठी regex.
    • बदलणे - बदलण्यासाठी मजकूर. काढण्यासाठी व्हाईटस्पेसेस , तुम्ही हा युक्तिवाद यापैकी एकावर सेट कराल:
      • रिक्त स्ट्रिंग ("") पूर्णपणे सर्व स्पेस ट्रिम करण्यासाठी<11
      • स्पेस कॅरेक्टर (" ") एका स्पेस कॅरेक्टरने एकाधिक स्पेस बदलण्यासाठी
  • Instance_num (पर्यायी) - उदाहरण क्रमांक. बर्‍याच प्रकरणांमध्ये, सर्व उदाहरणे पुनर्स्थित करण्यासाठी तुम्ही ते वगळाल(डिफॉल्ट).
  • Match_case (वैकल्पिक) - एक बुलियन मूल्य जे जुळवायचे (TRUE) किंवा दुर्लक्ष (FALSE) मजकूर केस. व्हाईटस्पेससाठी, ते अप्रासंगिक आहे आणि म्हणून वगळले आहे.
  • अधिक माहितीसाठी, कृपया RegExpReplace फंक्शन पहा.

    regex सह व्हाईटस्पेस कशी काढायची - उदाहरणे

    सह RegExpReplace फंक्शन तुमच्या वर्कबुकमध्ये जोडले आहे, चला एकावेळी वेगवेगळ्या परिस्थितींचा सामना करू या.

    regex वापरून सर्व व्हाइटस्पेस काढा

    स्ट्रिंगमधील सर्व स्पेस काढून टाकण्यासाठी, तुम्ही कोणत्याही व्हाईटस्पेस वर्णाचा शोध घ्या, यासह एक स्पेस, एक टॅब, कॅरेज रिटर्न आणि लाइन फीड, आणि त्यांना रिकाम्या स्ट्रिंगने बदला ("").

    पॅटर्न : \s+

    बदलणे : ""

    स्रोत स्ट्रिंग A5 मध्ये आहे असे गृहीत धरून, B5 मधील सूत्र आहे:

    =RegExpReplace(A5, "\s+", "")

    तुमचे नमुने व्यवस्थापित करणे सोपे करण्यासाठी , तुम्ही पूर्वनिर्धारित सेलमध्‍ये regex इनपुट करू शकता आणि $A$2 सारखा निरपेक्ष संदर्भ वापरून फॉर्म्युलाला पुरवू शकता, त्यामुळे कॉलमच्या खाली फॉर्म्युला कॉपी करताना सेल अॅड्रेस अपरिवर्तित राहील.

    =RegExpReplace(A5, $A$2, "")

    एकाहून अधिक व्हाइटस्पेस काढा

    अतिरिक्त व्हाइटस्पेस काढण्यासाठी (म्हणजे अधिक n एक सलग स्पेस), समान regex \s+ वापरा परंतु सापडलेल्या जुळण्यांना एका स्पेस वर्णाने बदला.

    पॅटर्न : \s+

    बदलणे : " "

    =RegExpReplace(A5, "\s+", " ")

    कृपया लक्ष द्या की हे सूत्र केवळ दरम्यानच नाही तर एक स्पेस वर्ण ठेवतेडेटासेटच्या खाली, समजा तुम्हाला सर्व अग्रगण्य/मागोमाग असलेल्या स्पेसेस ट्रिम करायच्या आहेत आणि एकापेक्षा जास्त ओळी अबाधित ठेवून एक सोडून बाकी सर्व जागा. कार्य पूर्ण करण्यासाठी, तुम्हाला दोन भिन्न RegExpReplace फंक्शन्सची आवश्यकता असेल.

    पहिले फंक्शन एकाधिक स्पेस एका स्पेस कॅरेक्टरने बदलते.

    =RegExpReplace(A5, " +", " ")

    दुसरे स्पेस काढते ओळीच्या सुरुवातीपासून आणि शेवटपासून:

    =RegExpReplace(A5, "^ +| +$", "")

    फक्त दोन फंक्शन्स एकमेकांमध्ये नेस्ट करा:

    =RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")

    आणि तुम्हाला एक मिळेल परिपूर्ण परिणाम:

    एका वर्णाने अनेक स्पेस रिप्लेस करण्यासाठी Regex

    जर तुम्हाला स्ट्रिंगमधून सर्व स्पेस काढून टाकायच्या असतील आणि लागोपाठ स्पेसचा प्रत्येक गट बदलायचा असेल एका विशिष्ट वर्णासह, तुम्हाला हे करणे आवश्यक आहे:

    प्रथम, अग्रगण्य आणि अनुगामी व्हाइटस्पेस ट्रिम करण्यासाठी हे रेगेक्स वापरा:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    नंतर, वरील फंक्शन सर्व्ह करा दुसर्‍या RegExpReplace च्या टेक्स्ट युक्तिवादावर जो तुम्ही निर्दिष्ट केलेल्या वर्णाने एक किंवा अधिक व्हाइटस्पेस बदलतो, उदा. हायफन:

    पॅटर्न : \s+

    बदलणे : -

    स्रोत स्ट्रिंग A8 मध्ये आहे असे गृहीत धरून, सूत्र हा आकार घेतो:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    किंवा तुम्ही स्क्रीनशॉटमध्ये दर्शविल्याप्रमाणे वेगळ्या सेलमध्ये पॅटर्न आणि बदलू शकता:

    Regex रिकाम्या ओळी काढण्यासाठी

    येथे एक प्रश्न आहे जे वापरकर्ते ज्यांच्याकडे एका सेलमध्ये अनेक ओळी आहेत ते वारंवार विचारतात: "माझ्या सेलमध्ये खूप रिकाम्या ओळी आहेत. मिळवण्याचा काही मार्ग आहे का?प्रत्येक सेलमधून जाणे आणि प्रत्येक ओळ व्यक्तिचलितपणे हटवणे याशिवाय त्यापासून सुटका? उत्तर: ते सोपे आहे!

    सध्याच्या ओळीच्या सुरुवातीपासून ^ पर्यंत एकही वर्ण नसलेल्या रिकाम्या रेषा जुळवण्यासाठी पुढील ओळ \n, regex आहे:

    पॅटर्न : ^\n

    तुमच्या दृष्यदृष्ट्या रिकाम्या ओळींमध्ये स्पेस किंवा टॅब असल्यास, हा रेग्युलर एक्सप्रेशन वापरा:

    पॅटर्न : ^[\t ]*\n

    फक्त हे सूत्र वापरून regex रिकाम्या स्ट्रिंगने बदला, आणि सर्व रिकाम्या ओळी एकाच वेळी निघून जातील!

    =RegExpReplace(A5, $A$2, "")

    RegEx टूल्ससह व्हाइटस्पेस काढून टाकणे

    वरील उदाहरणांनी regexes द्वारे प्रदान केलेल्या अद्भुत शक्यतांचा फक्त एक छोटासा भाग प्रदर्शित केला आहे. दुर्दैवाने, सर्वच नाही क्लासिक रेग्युलर एक्सप्रेशन्सची वैशिष्ट्ये VBA मध्ये उपलब्ध आहेत.

    सुदैवाने, आमच्या अल्टिमेट सूटमध्ये समाविष्ट केलेली RegEx टूल्स या मर्यादांपासून मुक्त आहेत कारण ते Microsoft च्या .NET RegEx इंजिनद्वारे प्रक्रिया केलेले आहेत. हे तुम्हाला अधिक अत्याधुनिक नमुने तयार करू देते जे VBA RegExp. बेलो द्वारे समर्थित नाही तुम्हाला अशा रेग्युलर एक्स्प्रेशनचे उदाहरण सापडेल.

    संख्यांमधील जागा काढण्यासाठी Regex

    अल्फान्यूमेरिक स्ट्रिंगमध्ये, समजा तुम्हाला फक्त संख्यांमधील व्हाईटस्पेस काढायची आहे, म्हणून स्ट्रिंग जसे की "A 1 2 B" "A 12 B" बनते.

    कोणत्याही दोन अंकांमधील व्हाईटस्पेस जुळण्यासाठी, तुम्ही खालील लुक-अराउंड वापरू शकता:

    पॅटर्न : (?<=\d)\s+(?=\d)

    आधारित सूत्र तयार करण्यासाठीवरील regexes वर, येथे दोन सोप्या पायऱ्या आहेत:

    1. Ablebits Data टॅबवर, Text गटात, Regex वर क्लिक करा टूल्स .

    2. Regex Tools उपखंडावर, स्रोत डेटा निवडा, तुमचा regex प्रविष्ट करा, काढा निवडा पर्याय, आणि काढा दाबा.

      मूल्ये नव्हे तर सूत्र म्हणून परिणाम मिळविण्यासाठी, सूत्र म्हणून घाला चेक बॉक्समध्ये एक टिक लावणे लक्षात ठेवा.

    क्षणभरात, तुम्हाला मूळ डेटाच्या उजवीकडे नवीन स्तंभात समाविष्ट केलेले AblebitsRegexRemove फंक्शन दिसेल.

    वैकल्पिकपणे, तुम्ही काही सेलमध्ये regex इनपुट करू शकता. , A5 म्हणा आणि Insert Function डायलॉग बॉक्स वापरून थेट सेलमध्ये सूत्र घाला, जेथे AblebitsRegexRemove हे AblebitsUDFs अंतर्गत वर्गीकृत केले आहे.

    हे फंक्शन विशेषत: स्ट्रिंग्स काढण्यासाठी डिझाइन केलेले असल्यामुळे, त्यासाठी फक्त दोन वितर्क आवश्यक आहेत - इनपुट स्ट्रिंग आणि regex:

    =AblebitsRegexRemove(A5, $A$2)

    अशा प्रकारे स्पेसेस काढायच्या रेग्युलर एक्स्प्रेशन वापरून एक्सेल. वाचल्याबद्दल मी तुमचा आभारी आहे आणि पुढच्या आठवड्यात तुम्हाला आमच्या ब्लॉगवर भेटण्यास उत्सुक आहे!

    उपलब्ध डाउनलोड

    रेजेक्ससह व्हाईटस्पेस काढा - उदाहरणे (.xlsm फाइल)

    अल्टीमेट सूट - चाचणी आवृत्ती (.exe फाइल)

    शब्द पण स्ट्रिंगच्या सुरूवातीस आणि शेवटी, जे चांगले नाही. अग्रगण्य आणि मागच्या व्हाईटस्पेसपासून मुक्त होण्यासाठी, वरील सूत्र दुसर्‍या RegExpReplace फंक्शनमध्ये नेस्ट करा जे सुरुवातीपासून आणि शेवटपासून रिक्त जागा काढून टाकते:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    ते लीडिंग आणि ट्रेलिंग व्हाईटस्पेस काढून टाका

    ओळीच्या सुरुवातीला किंवा शेवटी व्हाइटस्पेस शोधण्यासाठी, start^ आणि end $ अँकर वापरा.

    लीडिंग व्हाइटस्पेस:

    नमुना : ^[\s]+

    अनुगामी व्हाइटस्पेस:

    पॅटर्न : [\s ]+$

    अग्रणी आणि मागे व्हाइटस्पेस:

    पॅटर्न : ^[\s]+

    मायकेल ब्राउन हे सॉफ्टवेअर टूल्स वापरून जटिल प्रक्रिया सुलभ करण्याच्या उत्कटतेने एक समर्पित तंत्रज्ञान उत्साही आहे. टेक उद्योगातील एका दशकाहून अधिक अनुभवासह, त्यांनी Microsoft Excel आणि Outlook, तसेच Google Sheets आणि Docs मध्ये आपल्या कौशल्यांचा गौरव केला आहे. मायकेलचा ब्लॉग त्याचे ज्ञान आणि कौशल्य इतरांसोबत सामायिक करण्यासाठी समर्पित आहे, उत्पादकता आणि कार्यक्षमता सुधारण्यासाठी सुलभ टिपा आणि ट्यूटोरियल प्रदान करतो. तुम्ही अनुभवी व्यावसायिक असाल किंवा नवशिक्या असाल, मायकेलचा ब्लॉग या आवश्यक सॉफ्टवेअर टूल्सचा जास्तीत जास्त फायदा घेण्यासाठी मौल्यवान अंतर्दृष्टी आणि व्यावहारिक सल्ला देतो.