विषयसूची
यह ट्यूटोरियल आपको मूल सूत्रों और कस्टम फ़ंक्शंस का उपयोग करके एक्सेल में संख्याओं से पाठ को अलग करना सिखाएगा। आप पाठ और संख्याओं को दो अलग-अलग स्तंभों में विभाजित करना भी सीखेंगे।
यह कल्पना करें: आपको विश्लेषण के लिए अपरिष्कृत डेटा प्राप्त होता है और पता चलता है कि संख्याएँ एक स्तंभ में पाठ के साथ मिश्रित हैं। ज्यादातर स्थितियों में, उन्हें बारीकी से जांच के लिए अलग-अलग कॉलम में रखना निश्चित रूप से अधिक सुविधाजनक होगा।
यदि आप सजातीय डेटा के साथ काम कर रहे हैं, तो आप संभवतः बाएं, दाएं और मध्य कार्यों का उपयोग कर सकते हैं। एक ही स्थिति से वर्णों की समान संख्या। लेकिन प्रयोगशाला परीक्षणों के लिए यह एक आदर्श परिदृश्य है। वास्तविक जीवन में, आप असमान डेटा से निपटने की सबसे अधिक संभावना रखते हैं, जहां टेक्स्ट से पहले, टेक्स्ट के बाद या टेक्स्ट के बीच नंबर आते हैं। नीचे दिए गए उदाहरण इस मामले के लिए सटीक समाधान प्रदान करते हैं।
टेक्स्ट को कैसे हटाएं और एक्सेल सेल में नंबर कैसे रखें
समाधान एक्सेल 365, एक्सेल 2021 में काम करता है , और Excel 2019
Microsoft Excel 2019 ने कुछ नए फ़ंक्शन पेश किए हैं जो पहले के संस्करणों में उपलब्ध नहीं थे, और हम ऐसे कार्यों में से एक का उपयोग करने जा रहे हैं, जिसका नाम है TEXTJOIN, एक सेल से टेक्स्ट वर्णों को हटाने के लिए जिसमें संख्याएँ हों।
सामान्य सूत्र है:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:"&LEN(<1)>सेल))), 1) *1, ""))Excel 365 और 2021 में, यह भी काम करेगा:
TEXTJOIN("", TRUE,IFERROR(MID( cell, SEQUENCE(LEN( cell)), 1) *1, ""))पहली नजर में, सूत्र थोड़े डरावने लग सकते हैं, लेकिन वे काम करते हैं :)
उदाहरण के लिए, A2 में संख्याओं से पाठ को हटाने के लिए, नीचे दिए गए सूत्रों में से एक को B2 में दर्ज करें, और फिर इसे आवश्यकतानुसार कई कक्षों में कॉपी करें।
Excel 365 - 2019 में:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
Excel 2019 में, इसे Ctrl + Shift + Enter के साथ एक सरणी सूत्र के रूप में दर्ज किया जाना चाहिए। डायनामिक सरणी एक्सेल में, यह एंटर कुंजी के साथ पूर्ण सामान्य सूत्र के रूप में काम करता है। एक सेल से हटा दिया जाता है और संख्याएँ रखी जाती हैं:
यह सूत्र कैसे काम करता है:
तर्क को बेहतर ढंग से समझने के लिए, आइए जाँच करना शुरू करें अंदर से सूत्र:
आप या तो ROW(INDIRECT("1:"&LEN(string))) या SEQUENCE(LEN(string)) का उपयोग कुल संख्या के अनुरूप संख्याओं का अनुक्रम बनाने के लिए करते हैं स्रोत स्ट्रिंग में वर्णों की संख्या, और फिर उन अनुक्रमिक संख्याओं को प्रारंभिक संख्याओं के रूप में MID फ़ंक्शन में फ़ीड करें। B2 में, सूत्र का यह भाग इस प्रकार दिखता है:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
MID फ़ंक्शन A2 से प्रत्येक वर्ण को पहले वर्ण से निकालता है और उन्हें एक सरणी के रूप में लौटाता है:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
इस सरणी को 1 से गुणा किया जाता है। संख्यात्मक मान बिना किसी परिवर्तन के बने रहते हैं, जबकि एक गैर-संख्यात्मक वर्ण को गुणा करने पर #VALUE! error:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
IFERROR फ़ंक्शन हैंडल करता हैये त्रुटियां और उन्हें खाली स्ट्रिंग्स से बदल देती हैं:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
यह अंतिम सरणी TEXTJOIN फ़ंक्शन को दी जाती है, जो सरणी में गैर-खाली मानों को जोड़ती है ( ignore_empty तर्क TRUE पर सेट) सीमांकक के लिए एक रिक्त स्ट्रिंग ("") का उपयोग करके:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
युक्ति. Excel 2016 - 2007 के लिए, एक समाधान भी मौजूद है, लेकिन सूत्र कहीं अधिक जटिल है। आप इसे इस ट्यूटोरियल में पा सकते हैं: Excel में संख्याएँ कैसे निकालें।
संख्याओं से पाठ को हटाने के लिए कस्टम फ़ंक्शन
यह समाधान एक्सेल के सभी संस्करणों के लिए काम करता है
यदि आप एक्सेल के पुराने संस्करण का उपयोग कर रहे हैं या उपरोक्त सूत्र भी ढूंढते हैं याद रखना मुश्किल है, कुछ भी आपको सरल सिंटैक्स और उपयोगकर्ता के अनुकूल नाम जैसे RemoveText के साथ अपना स्वयं का फ़ंक्शन बनाने से नहीं रोकता है। उपयोगकर्ता परिभाषित फ़ंक्शन (UDF) को दो तरीकों से लिखा जा सकता है:
VBA कोड 1:
यहाँ, हम स्रोत स्ट्रिंग में प्रत्येक वर्ण को एक-एक करके देखते हैं one और जांचें कि यह संख्यात्मक है या नहीं। यदि कोई संख्या है, तो वर्ण परिणामी स्ट्रिंग में जोड़ा जाता है। , 1)) तब sRes = sRes & Mid(str, i, 1) End if Next i RemoveText = sRes End Function
VBA code 2:
कोड रेगुलर एक्सप्रेशन को प्रोसेस करने के लिए एक ऑब्जेक्ट बनाता है। RegExp का उपयोग करके, हम स्रोत स्ट्रिंग से अंक 0-9 के अलावा सभी वर्णों को हटा देते हैं।
फ़ंक्शन RemoveText(str As String ) as String with CreateObject ("VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "") ) End with End Functionछोटे वर्कशीट्स पर, दोनों कोड समान रूप से अच्छा प्रदर्शन करेंगे। बड़े वर्कशीट पर जहां फ़ंक्शन को सैकड़ों या हजारों बार कॉल किया जाता है, VBScript.RegExp का उपयोग करने वाला कोड 2 तेजी से काम करेगा।
आपकी कार्यपुस्तिका में कोड डालने के लिए विस्तृत कदम यहां देखे जा सकते हैं: एक्सेल में कोड।
अंतिम-उपयोगकर्ता दृष्टिकोण से, आप जो भी दृष्टिकोण चुनते हैं, पाठ को हटाने और संख्याओं को छोड़ने का कार्य उतना ही सरल है:
निकालें पाठ (स्ट्रिंग)उदाहरण के लिए, सेल A2 से गैर-संख्यात्मक वर्णों को हटा दें, B2 में सूत्र है:
=RemoveText(A2)
बस इसे कॉलम के नीचे कॉपी करें, और आपको यह परिणाम मिलेगा:
ध्यान दें। मूल सूत्र और कस्टम फ़ंक्शन दोनों एक संख्यात्मक स्ट्रिंग का उत्पादन करते हैं। इसे एक संख्या में बदलने के लिए, परिणाम को 1 से गुणा करें, या शून्य जोड़ें, या सूत्र को VALUE फ़ंक्शन में लपेटें। उदाहरण के लिए:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
Excel में टेक्स्ट स्ट्रिंग से नंबर कैसे निकालें
समाधान Excel 365, Excel 2021 और Excel में काम करता है 2019
अल्फान्यूमेरिक स्ट्रिंग से संख्याओं को हटाने के सूत्र पिछले उदाहरण में चर्चा किए गए सूत्रों के समान ही हैं।
Excel 365 - 2019 के लिए:
TEXTJOIN(" ", TRUE, IF(ISERR(MID( सेल , ROW(अप्रत्यक्ष)("1:"&LEN( सेल ) ), 1) *1), MID( सेल , ROW(INDIRECT("1:"&LEN( cell ))), 1), ""))Excel 2019 में, Ctrl + Shift + Enter कुंजियों को एक साथ दबाकर इसे सरणी सूत्र बनाना याद रखें।
Excel 365 और 2021 के लिए:
TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID ( सेल , SEQUENCE(LEN( सेल )), 1), ""))उदाहरण के लिए, A2 में एक स्ट्रिंग से संख्याएं निकालने के लिए, सूत्र है:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
या
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
परिणामस्वरूप, सेल से सभी नंबर हटा दिए जाते हैं और टेक्स्ट वर्ण रखे जाते हैं:
जैसा कि ऊपर दिए गए स्क्रीनशॉट में दिखाया गया है, फ़ॉर्मूला स्ट्रिंग में किसी भी स्थिति से संख्यात्मक वर्णों को निकालता है: शुरुआत में, अंत में और बीच में। हालांकि, एक चेतावनी है: यदि कोई स्ट्रिंग एक संख्या के साथ शुरू होता है जिसके बाद एक स्थान होता है , उस स्थान को बनाए रखा जाता है, जो अग्रणी रिक्त स्थान की समस्या उत्पन्न करता है (जैसे B2 में)।
पाठ से पहले अतिरिक्त रिक्तियों से छुटकारा पाने के लिए , सूत्र को TRIM फ़ंक्शन में इस तरह लपेटें:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
अब, आपके परिणाम बिल्कुल सही हैं!
यह सूत्र कैसे काम करता है:
संक्षेप में, सूत्र उसी तरह काम करता है जैसा पिछले उदाहरण में बताया गया है। अंतर यह है कि, TEXTJOIN फ़ंक्शन को दी गई अंतिम सरणी से, आपको संख्याओं को हटाने की आवश्यकता है, पाठ की नहीं। इसे पूरा करने के लिए, हम IF और ISERROR कार्यों के संयोजन का उपयोग करते हैं।
जैसा कि आपको याद है,MID(…)+0 संख्याओं की एक सरणी और #VALUE! एक ही स्थिति में टेक्स्ट वर्णों का प्रतिनिधित्व करने वाली त्रुटियाँ:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
ISERROR फ़ंक्शन त्रुटियों को पकड़ता है और बूलियन मानों के परिणामी सरणी को IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
यह अंतिम सरणी TEXTJOIN को पास कर दी जाती है, इसलिए यह पाठ वर्णों को जोड़ता है और आउटपुट करता है परिणाम।
टेक्स्ट से संख्याओं को हटाने के लिए कस्टम फ़ंक्शन
यह समाधान सभी एक्सेल संस्करणों के लिए काम करता है
यह ध्यान में रखते हुए कि एक मजबूत सूत्र रखा जाना चाहिए सरल, मैं किसी भी संख्यात्मक वर्ण को अलग करने के लिए उपयोगकर्ता परिभाषित फ़ंक्शन (यूडीएफ) का कोड साझा करूंगा। sRes as String sRes = "" For i = 1 To Len(str) if False = IsNumeric(Mid(str, i, 1)) तो sRes = sRes & Mid(str, i, 1) End if Next i RemoveNumbers = sRes End Function
VBA code 2:
Function RemoveNumbers(str As String) As String With CreateObject ("VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "") End with End FunctionRemoveText फ़ंक्शन के मामले में, दूसरा कोड उपयोग करने के लिए बेहतर है विशालप्रदर्शन को अनुकूलित करने के लिए कार्यपत्रक।
एक बार आपकी कार्यपुस्तिका में कोड जुड़ जाने के बाद, आप इस कस्टम फ़ंक्शन का उपयोग करके सेल से सभी संख्यात्मक वर्णों को हटा सकते हैं:
RemoveNumbers(string)हमारे मामले में, B2 में सूत्र है:
=RemoveNumbers(A2)
यदि कोई हो तो प्रमुख रिक्त स्थान को ट्रिम करने के लिए, TRIM के अंदर कस्टम फ़ंक्शन को उसी तरह नेस्ट करें जैसे आप एक मूल सूत्र करते हैं:
=TRIM(RemoveNumbers(A2))
संख्याओं और टेक्स्ट को अलग-अलग कॉलम में विभाजित करें
ऐसी स्थिति में जब आप टेक्स्ट और संख्याओं को दो कॉलम में अलग करना चाहते हैं, तो अच्छा होगा कि एक ही फ़ॉर्मूला से काम पूरा हो जाए , सहमत होना? इसके लिए, हम केवल RemoveText और RemoveNumbers फ़ंक्शन के कोड को एक फ़ंक्शन में मर्ज करते हैं, जिसका नाम SplitTextNumbers है, या बस Split , या आपको जो भी पसंद हो :)
VBA कोड 1:
फंक्शन स्प्लिटटेक्स्टनंबर्स (str As String , is_remove_text As Boolean ) as String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" के लिए i = 1 से लेन (str) sCurChar = Mid(str, i, 1) यदि True = IsNumeric(sCurChar) तो sNum = sNum & sCurChar Else sText = sText & sCurChar एंड इफ नेक्स्ट i इफ ट्रू = is_remove_text तो स्प्लिटटेक्स्टनंबर्स = sNum अन्य स्प्लिटटेक्स्टनंबर्स = sटेक्स्ट एंड इफ एंड फंक्शनVBA कोड 2:
फंक्शन स्प्लिटटेक्स्टनंबर्स (स्ट्रिंग के रूप में, is_remove_text बूलियन के रूप में) स्ट्रिंग के रूप में CreateObject के साथ ("VBScript.RegExp") .Global = True अगर True = is_remove_text तो .Pattern = "[^0-9]" अन्य.Pattern = "[0-9]" End if SplitTextNumbers = .Replace(str, "") End with End Functionहमारे नए कस्टम फ़ंक्शन को दो तर्कों की आवश्यकता है:
SplitTextNumbers(string, is_remove_text)कहां is_remove_text एक बूलियन मान है जो दर्शाता है कि किन वर्णों को अलग करना है:
- TRUE या 1 - टेक्स्ट हटाएं और नंबर रखें
- FALSE या 0 - नंबर हटाएं और टेक्स्ट रखें
हमारे नमूना डेटासेट के लिए, सूत्र यह रूप लेते हैं:
गैर-संख्यात्मक वर्णों को हटाने के लिए:
=SplitTextNumbers(A2, TRUE)
संख्यात्मक वर्णों को हटाने के लिए :
=SplitTextNumbers(A2, FALSE)
युक्ति। अग्रणी रिक्त स्थान की संभावित समस्या से बचने के लिए, मेरा सुझाव है कि TRIM फ़ंक्शन में संख्याओं को निकालने वाले सूत्र को हमेशा लपेट कर रखें:
=TRIM(SplitTextNumbers(A2, FALSE))
संख्याओं या टेक्स्ट को निकालने के लिए विशेष टूल
उन लोगों के लिए जो ऐसा करते हैं अनावश्यक रूप से चीजों को जटिल करना पसंद नहीं है, मैं एक्सेल में टेक्स्ट या नंबरों को हटाने का अपना तरीका दिखाऊंगा।
मान लें कि हमारा अल्टीमेट सूट आपके एक्सेल रिबन में जोड़ा गया है, आप यही करते हैं:
- एबलबिट्स डेटा टैब पर, टेक्स्ट समूह में, निकालें > अक्षर हटाएं क्लिक करें। <21
युक्ति। यदि परिणामों में कुछ अग्रणी स्थान हैं, तो Trim Spacesउपकरण उन्हें कुछ ही समय में समाप्त कर देगा।
Excel में स्ट्रिंग से टेक्स्ट या न्यूमेरिक कैरेक्टर्स को निकालने का तरीका यही है। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और अगले सप्ताह आपको हमारे ब्लॉग पर देखने के लिए उत्सुक हूं!
उपलब्ध डाउनलोड
Excel में पाठ या संख्या निकालें - उदाहरण (.xlsm फ़ाइल)
अल्टीमेट सुइट - परीक्षण संस्करण (.exe फ़ाइल)