विषयसूची
इस लेख में, आप जानेंगे कि टेक्स्ट स्ट्रिंग से विशिष्ट वर्णों को कैसे हटाएं और एक साथ कई सेल से अवांछित वर्णों को कैसे हटाएं।
एक्सेल में कहीं और से डेटा आयात करते समय, बहुत सारे विशेष वर्ण आपके कार्यपत्रकों में जा सकते हैं। इससे भी अधिक निराशाजनक बात यह है कि कुछ वर्ण अदृश्य होते हैं, जो टेक्स्ट स्ट्रिंग्स के पहले, बाद में या अंदर अतिरिक्त सफेद स्थान पैदा करते हैं। यह ट्यूटोरियल इन सभी समस्याओं का समाधान प्रदान करता है, जिससे आपको डेटा सेल-बाय-सेल से गुजरने और अवांछित वर्णों को हाथ से निकालने की परेशानी से मुक्ति मिलती है।
एक्सेल सेल से विशेष वर्ण निकालें
किसी सेल से किसी विशिष्ट वर्ण को हटाने के लिए, इसके सरलतम रूप में सबस्टिट्यूट फ़ंक्शन का उपयोग करके इसे एक खाली स्ट्रिंग से बदलें:
सबस्टिट्यूट( सेल, char<2)>, "")उदाहरण के लिए, A2 से एक प्रश्न चिह्न को मिटाने के लिए, B2 में सूत्र है:
=SUBSTITUTE(A2, "?", "")
एक को हटाने के लिए वर्ण जो आपके कीबोर्ड पर मौजूद नहीं है, आप इसे मूल सेल से सूत्र में कॉपी/पेस्ट कर सकते हैं।
उदाहरण के लिए, यहां बताया गया है कि आप उल्टे प्रश्न चिह्न से कैसे छुटकारा पा सकते हैं:
=SUBSTITUTE(A2, "¿", "")
लेकिन यदि कोई अवांछित वर्ण अदृश्य है या सही ढंग से कॉपी नहीं करता है, तो आप इसे सूत्र में कैसे रखेंगे? बस, कोड फ़ंक्शन का उपयोग करके इसकी कोड संख्या ज्ञात करें।
हमारे मामले में, अवांछित वर्ण ("¿") सेल A2 में सबसे अंत में आता है, इसलिए हम एक संयोजन का उपयोग कर रहे हैंइसके अद्वितीय कोड मान को पुनः प्राप्त करने के लिए कोड और राइट फ़ंक्शंस का, जो कि 191 है:
=CODE(RIGHT(A2))
एक बार जब आप वर्ण का कोड प्राप्त कर लेते हैं, तो संबंधित CHAR की सेवा करें उपरोक्त सामान्य सूत्र के लिए कार्य करें। हमारे डेटासेट के लिए, सूत्र इस प्रकार है:
=SUBSTITUTE(A2, CHAR(191),"")
नोट। सबस्टिट्यूट फ़ंक्शन केस-संवेदी है, जिसका अर्थ है कि यह लोअरकेस और अपरकेस अक्षरों को अलग-अलग वर्णों के रूप में मानता है। कृपया इसे ध्यान में रखें यदि आपका अवांछित चरित्र एक पत्र है।
स्ट्रिंग से कई वर्ण हटाएं
पिछले लेखों में से एक में, हमने देखा कि एक्सेल में स्ट्रिंग्स से विशिष्ट वर्णों को कैसे हटाया जाए, इसके लिए कई सबस्टिट्यूट फ़ंक्शंस को एक दूसरे में नेस्ट किया जाता है। एक बार में दो या दो से अधिक अवांछित पात्रों को खत्म करने के लिए एक ही दृष्टिकोण का उपयोग किया जा सकता है:
स्थानापन्न (स्थानापन्न (स्थानापन्न ( सेल , char1 , ""), char2 , ""), char3 , "")उदाहरण के लिए, A2 में टेक्स्ट स्ट्रिंग से सामान्य विस्मयादिबोधक और प्रश्न चिह्नों के साथ-साथ उल्टे वाले को मिटाने के लिए, इस सूत्र का उपयोग करें:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
CHAR फ़ंक्शन की सहायता से भी ऐसा ही किया जा सकता है, जहां 161 "¡" के लिए वर्ण कोड है और 191 "¿" के लिए वर्ण कोड है:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
नेस्टेड सबस्टिट्यूट फ़ंक्शन वर्णों की उचित संख्या के लिए ठीक काम करते हैं, लेकिन यदि आपके पास निकालने के लिए दर्जनों वर्ण हैं, तो सूत्र बहुत लंबा और प्रबंधित करने में कठिन हो जाता है। अगला उदाहरण एक प्रदर्शित करता हैअधिक कॉम्पैक्ट और सुरुचिपूर्ण समाधान।
एक बार में सभी अवांछित वर्णों को हटा दें
समाधान केवल Microsoft 365 के लिए Excel में काम करता है
जैसा कि आप शायद जानते हैं, एक्सेल 365 में एक विशेष कार्य है जो आपको पुनरावर्ती गणना करने वाले कार्यों सहित अपने स्वयं के कार्यों को बनाने में सक्षम बनाता है। इस नए फंक्शन का नाम LAMBDA है, और आप इसके बारे में पूरी जानकारी उपरोक्त लिंक्ड ट्यूटोरियल में पा सकते हैं। नीचे, मैं कुछ व्यावहारिक उदाहरणों के साथ अवधारणा को समझाऊंगा।
अवांछित वर्णों को हटाने के लिए एक कस्टम LAMBDA फ़ंक्शन इस प्रकार है:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
अपने कार्यपत्रकों में इस फ़ंक्शन का उपयोग करने में सक्षम होने के लिए, आपको पहले इसे नाम देना होगा। इसके लिए, नाम प्रबंधक खोलने के लिए Ctrl + F3 दबाएं, और फिर एक नया नाम इस प्रकार परिभाषित करें:
- नाम में बॉक्स में, फ़ंक्शन का नाम दर्ज करें: RemoveChars .
- स्कोप को वर्कबुक पर सेट करें.
- इसका संदर्भ देता है बॉक्स में, उपरोक्त सूत्र को पेस्ट करें।
- वैकल्पिक रूप से, टिप्पणी बॉक्स में पैरामीटर का विवरण दर्ज करें। जब आप सेल में सूत्र टाइप करते हैं तो पैरामीटर प्रदर्शित होंगे।
- अपना नया फ़ंक्शन सहेजने के लिए ठीक क्लिक करें।
विस्तृत निर्देशों के लिए, कृपया देखें कस्टम LAMBDA फ़ंक्शन का नाम कैसे दें।
फ़ंक्शन को एक बार नाम मिलने के बाद, आप इसे किसी भी मूल सूत्र की तरह संदर्भित कर सकते हैं।
उपयोगकर्ता के दृष्टिकोण से , हमारे कस्टम फ़ंक्शन का सिंटैक्स उतना ही सरल है जितनायह:
RemoveChars(string, chars)कहां:
- String - मूल स्ट्रिंग है, या स्ट्रिंग वाले सेल/श्रेणी का संदर्भ है( एस)।
- वर्ण - हटाए जाने वाले वर्ण। टेक्स्ट स्ट्रिंग या सेल संदर्भ द्वारा प्रदर्शित किया जा सकता है।
सुविधा के लिए, हम कुछ सेल में अवांछित वर्ण इनपुट करते हैं, जैसे D2 A2 से उन वर्णों को हटाने के लिए, सूत्र है:
=RemoveChars(A2, $D$2)
फ़ॉर्मूला ठीक से काम करे, इसके लिए कृपया निम्नलिखित बातों पर ध्यान दें:
- D2 में , वर्णों को रिक्तियों के बिना सूचीबद्ध किया जाता है, जब तक कि आप रिक्तियों को भी समाप्त नहीं करना चाहते हैं। फॉर्मूला को नीचे की कोशिकाओं में।>
एक सूत्र के साथ कई कक्षों को साफ़ करने के लिए, पहले तर्क के लिए श्रेणी A2:A6 की आपूर्ति करें:
=RemoveChars(A2:A6, D2)
चूँकि सूत्र केवल सबसे ऊपरी कक्ष में दर्ज किया जाता है, आपको सेल निर्देशांक लॉक करने के बारे में चिंता करने की ज़रूरत नहीं है - इस मामले में एक सापेक्ष संदर्भ (डी 2) ठीक काम करता है। और गतिशील सरणियों के समर्थन के कारण, सूत्र सभी संदर्भित कोशिकाओं में स्वचालित रूप से फैल जाता है:
पूर्वनिर्धारित वर्ण सेट को हटाना
के पूर्वनिर्धारित सेट को हटाना एकाधिक कक्षों से वर्ण, आप बना सकते हैंएक अन्य LAMBDA जो मुख्य RemoveChars फ़ंक्शन को कॉल करता है और दूसरे पैरामीटर में अवांछित वर्णों को निर्दिष्ट करता है। उदाहरण के लिए:
विशेष वर्णों को हटाने के लिए, हमने RemoveSpecialChars नाम का एक कस्टम फ़ंक्शन बनाया है:
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
प्रति टेक्स्ट स्ट्रिंग्स से संख्याएं हटाएं , हमने RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
उपरोक्त दोनों कार्य बेहद आसान हैं उपयोग करने के लिए क्योंकि उन्हें केवल एक तर्क - मूल स्ट्रिंग की आवश्यकता होती है। 24>
केवल संख्यात्मक वर्णों को हटाने के लिए:
=RemoveNumbers(A2)
यह फ़ंक्शन कैसे काम करता है:
संक्षेप में, RemoveChars फ़ंक्शन chars की सूची के माध्यम से लूप करता है और एक समय में एक वर्ण को हटा देता है। प्रत्येक पुनरावर्ती कॉल से पहले, IF फ़ंक्शन शेष वर्णों की जाँच करता है। यदि chars स्ट्रिंग रिक्त नहीं है (chars""), तो फ़ंक्शन स्वयं कॉल करता है। जैसे ही अंतिम वर्ण को संसाधित किया जाता है, सूत्र स्ट्रिंग को उसका वर्तमान स्वरूप वापस कर देता है और बाहर निकल जाता है।
विस्तृत सूत्र के टूटने के लिए, अवांछित वर्णों को हटाने के लिए कृपया पुनरावर्ती LAMBDA देखें।
VBA के साथ विशेष वर्ण हटाएं
फ़ंक्शन Excel के सभी संस्करणों में काम करते हैं
यदि LAMBDA फ़ंक्शन आपके Excel में उपलब्ध नहीं है, तो कुछ भी आपको रोकता नहीं है वीबीए के साथ एक समान कार्य बनाने से। एक उपयोगकर्ता परिभाषितफ़ंक्शन (UDF) को दो तरह से लिखा जा सकता है।
विशेष वर्णों को हटाने के लिए कस्टम फ़ंक्शन रिकर्सिव :
यह कोड ऊपर चर्चा किए गए LAMBDA फ़ंक्शन के तर्क का अनुकरण करता है।
फ़ंक्शन RemoveUnwantedChars (स्ट्रिंग के रूप में स्ट्रिंग, स्ट्रिंग के रूप में वर्ण) यदि ("" वर्ण) तो str = बदलें (str, बाएँ (वर्ण, 1), "") वर्ण = दाएँ (वर्ण, लेन (वर्ण) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End if End Functionविशेष वर्णों को हटाने के लिए कस्टम फ़ंक्शन गैर-पुनरावर्ती :
यहां, हम 1 से अवांछित वर्णों के माध्यम से साइकिल चलाते हैं लेन (वर्ण) और मूल स्ट्रिंग में पाए गए लोगों को कुछ भी नहीं बदलें। MID फ़ंक्शन अवांछित वर्णों को एक-एक करके खींचता है और उन्हें रिप्लेस फ़ंक्शन में भेजता है। index, 1), "") अगला RemoveUnwantedChars = str End Function
अपनी कार्यपुस्तिका में उपरोक्त कोडों में से एक को सम्मिलित करें जैसा कि Excel में VBA कोड कैसे सम्मिलित करें में बताया गया है, और आपका कस्टम फ़ंक्शन उपयोग के लिए तैयार है।
लैम्ब्डा-परिभाषित फ़ंक्शन के साथ हमारे नए उपयोगकर्ता-परिभाषित फ़ंक्शन को भ्रमित करने के लिए नहीं, हमने इसे अलग नाम दिया है:
RemoveUnwantedChars(string, chars)मान लें कि मूल स्ट्रिंग A2 में है और D2 में अवांछित वर्ण हैं, हम इस सूत्र का उपयोग करके उनसे छुटकारा पा सकते हैं:
= RemoveUnwantedChars(A2, $D$2)
हार्डकोड के साथ कस्टम फ़ंक्शनवर्ण
यदि आप प्रत्येक सूत्र के लिए विशेष वर्णों की आपूर्ति के बारे में परेशान नहीं करना चाहते हैं, तो आप उन्हें सीधे कोड में निर्दिष्ट कर सकते हैं: लंबा वर्ण = "?¿!¡*%#$(){}[]^&/\~+-" सूचकांक के लिए = 1 से लेन (वर्ण) str = बदलें (str, Mid(chars, index, 1) , "") अगला RemoveSpecialChars = str समाप्ति समारोह
कृपया ध्यान रखें कि उपरोक्त कोड प्रदर्शन उद्देश्यों के लिए है। व्यावहारिक उपयोग के लिए, उन सभी वर्णों को शामिल करना सुनिश्चित करें जिन्हें आप निम्न पंक्ति में हटाना चाहते हैं:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
इस कस्टम फ़ंक्शन का नाम RemoveSpecialChars है और इसके लिए केवल एक की आवश्यकता है तर्क - मूल स्ट्रिंग:
RemoveSpecialChars(string)हमारे डेटासेट से विशेष वर्णों को हटाने के लिए, सूत्र है:
=RemoveSpecialChars(A2)
एक्सेल में गैर-मुद्रण योग्य वर्णों को हटा दें
माइक्रोसॉफ्ट एक्सेल में अमुद्रणीय वर्णों को हटाने के लिए एक विशेष कार्य है - स्वच्छ कार्य। तकनीकी रूप से, यह 7-बिट ASCII सेट (कोड 0 से 31) में पहले 32 वर्णों को हटा देता है। :
=CLEAN(A2)
यह गैर-मुद्रण वर्णों को समाप्त कर देगा, लेकिन पाठ के पहले/बाद में और शब्दों के बीच रिक्त स्थान रहेगा।
प्रति अतिरिक्त रिक्त स्थान से छुटकारा पाएं, TRIM फ़ंक्शन में CLEAN फ़ॉर्मूला लपेटें:
=TRIM(CLEAN(A2))
अब, सभी अग्रणी औरअनुगामी रिक्त स्थान हटा दिए जाते हैं, जबकि बीच के रिक्त स्थान एक एकल स्थान वर्ण में कम हो जाते हैं:
यदि आप अंदर के सभी रिक्त स्थान को पूरी तरह से हटाना चाहते हैं एक स्ट्रिंग, फिर स्पेस कैरेक्टर (कोड नंबर 32) को एक खाली स्ट्रिंग के साथ प्रतिस्थापित करें:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
कुछ स्पेस या अन्य अदृश्य वर्ण अभी भी आपकी वर्कशीट? इसका मतलब है कि उन वर्णों के यूनिकोड वर्ण सेट में अलग-अलग मान हैं।
उदाहरण के लिए, नॉन-ब्रेकिंग स्पेस ( ) का वर्ण कोड 160 है और आप इस सूत्र का उपयोग करके इसे शुद्ध कर सकते हैं:
=SUBSTITUTE(A2, CHAR(160)," ")
यह सभी देखें: एक्सेल गणना: स्वचालित, मैनुअल, पुनरावृत्तकिसी विशिष्ट गैर-मुद्रण वर्ण को मिटाने के लिए, आपको पहले उसका कोड मान खोजना होगा। विस्तृत निर्देश और सूत्र उदाहरण यहां हैं: एक विशिष्ट गैर-प्रिंटिंग वर्ण को कैसे हटाएं।
अल्टीमेट सूट के साथ विशेष वर्णों को हटाएं
माइक्रोसॉफ्ट 365, एक्सेल 2019 - 2010 के लिए एक्सेल का समर्थन करता है
इस अंतिम उदाहरण में, मैं आपको एक्सेल में विशेष वर्णों को हटाने का सबसे आसान तरीका दिखाता हूँ। अल्टीमेट सुइट स्थापित होने के साथ, आपको यह करना होगा:
- एबलबिट्स डेटा टैब पर, टेक्स्ट समूह में, क्लिक करें निकालें > अक्षर हटाएं ।
- एड-इन के फलक पर, स्रोत श्रेणी चुनें, निकालें वर्ण सेट और ड्रॉपडाउन सूची से वांछित विकल्प चुनें ( प्रतीक और विराम चिह्न इसमेंउदाहरण)।
- निकालें बटन दबाएं।
एक पल में, आपको एक सटीक परिणाम मिलेगा:
अगर कुछ गलत हो जाता है, तो चिंता न करें - इस वर्कशीट का बैक अप लें बॉक्स डिफ़ॉल्ट रूप से चयनित होने पर आपकी वर्कशीट की एक बैकअप कॉपी अपने आप बन जाएगी।
हमारे निकालें टूल को आज़माने के लिए उत्सुक हैं? मूल्यांकन संस्करण का लिंक ठीक नीचे है। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और अगले सप्ताह आपको हमारे ब्लॉग पर देखने की आशा करता हूं!
डाउनलोड उपलब्ध हैं
विशेष वर्ण हटाएं - उदाहरण (.xlsm फ़ाइल)
अल्टीमेट सुइट - परीक्षण संस्करण (.exe फ़ाइल)