एक्सेल सेलमधून मजकूर किंवा क्रमांक कसे काढायचे

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

हे ट्युटोरियल तुम्हाला एक्सेलमधील मजकूर हे मूळ सूत्र आणि सानुकूल फंक्शन्स वापरून कसे वेगळे करायचे ते शिकवेल. तुम्ही मजकूर आणि संख्यांना दोन स्वतंत्र स्तंभांमध्ये कसे विभाजित करायचे ते देखील शिकाल.

याची कल्पना करा: तुम्हाला विश्लेषणासाठी कच्चा डेटा मिळेल आणि एका स्तंभातील मजकूरात संख्या मिसळल्या गेल्या आहेत. बर्‍याच परिस्थितींमध्ये, जवळच्या तपासणीसाठी त्यांना वेगळ्या कॉलममध्ये ठेवणे नक्कीच अधिक सोयीचे असेल.

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

    एक्सेल सेलमध्ये मजकूर कसा काढायचा आणि नंबर कसे ठेवायचे

    सोल्यूशन एक्सेल 365, एक्सेल 2021 मध्ये कार्य करते , आणि Excel 2019

    Microsoft Excel 2019 ने काही नवीन फंक्शन्स सादर केली आहेत जी पूर्वीच्या आवृत्त्यांमध्ये उपलब्ध नाहीत आणि आम्ही सेलमधील मजकूर वर्ण काढून टाकण्यासाठी अशा फंक्शनपैकी एक म्हणजे TEXTJOIN वापरणार आहोत. संख्या समाविष्टीत आहे.

    सर्वसाधारण सूत्र आहे:

    TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:"&LEN( सेल))), 1) *1, ""))

    एक्सेल 365 आणि 2021 मध्ये, हे देखील कार्य करेल:

    TEXTJOIN("", TRUE,IFERROR(मध्य( सेल, SEQUENCE(LEN( सेल)), 1) *1, ""))

    प्रथम दृष्टीक्षेपात, सूत्रे थोडी भीतीदायक वाटू शकतात, परंतु ते कार्य करतात :)

    उदाहरणार्थ, A2 मधील संख्यांमधून मजकूर काढण्यासाठी, B2 मध्ये खालीलपैकी एक सूत्र प्रविष्ट करा आणि नंतर आवश्यक तितक्या सेलमध्ये कॉपी करा.

    Excel 365 - 2019 मध्ये:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))

    Excel 2019 मध्ये, ते Ctrl + Shift + Enter सह अॅरे फॉर्म्युला म्हणून एंटर केले जाणे आवश्यक आहे. डायनॅमिक अॅरे एक्सेलमध्ये, ते एंटर कीसह पूर्ण केलेल्या सामान्य सूत्राप्रमाणे कार्य करते.

    एक्सेल 365 आणि 2021 मध्ये:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))

    परिणामी म्हणून, सर्व मजकूर वर्ण आहेत सेलमधून काढले जातात आणि संख्या ठेवल्या जातात:

    हे सूत्र कसे कार्य करते:

    तर्कशास्त्र अधिक चांगल्या प्रकारे समजून घेण्यासाठी, चला तपास सुरू करूया आतून सूत्र:

    एकूण संख्येशी संबंधित एक क्रम तयार करण्यासाठी तुम्ही ROW(INDIRECT("1:"&LEN(string))) किंवा SEQUENCE(LEN(स्ट्रिंग)) वापरता स्त्रोत स्ट्रिंगमधील वर्णांची संख्या, आणि नंतर त्या अनुक्रमिक संख्यांना 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 मध्ये परिणाम होतो! त्रुटी:

    {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;"";"";"";"";"";"";"";"";"";"";"";""})

    टीप. एक्सेल 2016 - 2007 साठी, एक उपाय देखील अस्तित्वात आहे, परंतु सूत्र अधिक जटिल आहे. तुम्ही ते या ट्युटोरियलमध्ये शोधू शकता: एक्सेलमध्ये नंबर कसे काढायचे.

    संख्यांमधून मजकूर काढण्यासाठी कस्टम फंक्शन

    सोल्यूशन सर्व एक्सेल आवृत्त्यांसाठी कार्य करते

    तुम्ही एक्सेलची जुनी आवृत्ती वापरत असाल किंवा वरील सूत्रे देखील शोधा लक्षात ठेवणे कठीण, सोपे वाक्यरचना आणि RemoveText सारख्या वापरकर्ता-अनुकूल नावासह आपले स्वतःचे कार्य तयार करण्यापासून काहीही प्रतिबंधित करत नाही. वापरकर्ता-परिभाषित फंक्शन (UDF) दोन प्रकारे लिहीले जाऊ शकते:

    VBA कोड 1:

    येथे, आपण स्त्रोत स्ट्रिंगमधील प्रत्येक वर्ण एक-एक करून पाहतो. एक आणि ते संख्यात्मक आहे की नाही ते तपासा. संख्या असल्यास, परिणामी स्ट्रिंगमध्ये वर्ण जोडला जातो.

    फंक्शन RemoveText(str स्ट्रिंग म्हणून ) मंद sRes String sRes = "" साठी i = 1 ते Len(str) खरे असल्यास = IsNumeric(Mid(str, i) , 1)) नंतर sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End Function

    VBA code 2:

    कोड रेग्युलर एक्सप्रेशनवर प्रक्रिया करण्यासाठी ऑब्जेक्ट तयार करतो. RegExp वापरून, आम्ही स्त्रोत स्ट्रिंगमधून 0-9 अंकांव्यतिरिक्त इतर सर्व वर्ण काढून टाकतो.

    CreateObject ( "VBScript.RegExp" ) सह स्ट्रिंग म्हणून फंक्शन RemoveText(string as ) .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) एंड फंक्शनसह समाप्त करा

    छोट्या वर्कशीटवर, दोन्ही कोड तितकेच चांगले काम करतील. मोठ्या वर्कशीटवर जेथे फंक्शनला शेकडो किंवा हजारो वेळा कॉल केले जाते, VBScript.RegExp वापरणारा कोड 2 अधिक जलद कार्य करेल.

    तुमच्या वर्कबुकमध्ये कोड घालण्यासाठी तपशीलवार पायऱ्या येथे आढळू शकतात: VBA कसे घालायचे एक्सेलमधील कोड.

    अंतिम-वापरकर्त्याच्या दृष्टीकोनातून तुम्ही कोणताही पर्याय निवडता, मजकूर हटवणे आणि अंक सोडण्याचे कार्य यासारखे सोपे आहे:

    RemoveText(string)

    उदाहरणार्थ, ते सेल A2 मधून नॉन-न्यूमेरिक वर्ण काढून टाका, B2 मधील सूत्र आहे:

    =RemoveText(A2)

    फक्त ते कॉलम खाली कॉपी करा आणि तुम्हाला हा परिणाम मिळेल:

    टीप. दोन्ही मूळ सूत्रे आणि सानुकूल कार्य आउटपुट संख्यात्मक स्ट्रिंग . ते एका संख्येत बदलण्यासाठी, परिणामाचा 1 ने गुणाकार करा किंवा शून्य जोडा किंवा VALUE फंक्शनमध्ये सूत्र गुंडाळा. उदाहरणार्थ:

    =RemoveText(A2) + 0

    =VALUE(RemoveText(A2))

    एक्सेलमधील मजकूर स्ट्रिंगमधून क्रमांक कसे काढायचे

    सोल्यूशन एक्सेल 365, एक्सेल 2021 आणि एक्सेलमध्ये कार्य करते 2019

    अल्फान्यूमेरिक स्ट्रिंगमधून संख्या काढून टाकण्याची सूत्रे मागील उदाहरणात चर्चा केलेल्या सूत्रांसारखीच आहेत.

    एक्सेल 365 - 2019 साठी:

    TEXTJOIN(" ", TRUE, IF(ISERR(MID( सेल , ROW(अप्रत्यक्ष("1:"&LEN( सेल ) )), 1) *1), MID( सेल , ROW(अप्रत्यक्ष("1:"&LEN( ) सेल ))), 1), ""))

    एक्सेल 2019 मध्ये, Ctrl + Shift + Enter की एकत्र दाबून ते अॅरे फॉर्म्युला बनवण्याचे लक्षात ठेवा.

    एक्सेल 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}

    <वर पास करते 0>जेव्हा IF फंक्शन TRUE (एरर) पाहतो, तेव्हा ते दुसर्‍या MID फंक्शनच्या मदतीने संबंधित टेक्स्ट कॅरेक्टर प्रक्रिया केलेल्या अॅरेमध्ये समाविष्ट करते. जेव्हा IF फंक्शन FALSE (संख्या) पाहतो, तेव्हा ते रिकाम्या स्ट्रिंगसह बदलते:

    {"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}

    हा अंतिम अॅरे TEXTJOIN वर जातो, त्यामुळे ते मजकूर वर्ण जोडते आणि आउटपुट करते परिणाम.

    मजकूरातून संख्या काढून टाकण्यासाठी सानुकूल कार्य

    उपकरण सर्व एक्सेल आवृत्त्यांसाठी कार्य करते

    लक्षात ठेवून एक मजबूत सूत्र ठेवले पाहिजे साधे, मी कोणतेही अंकीय वर्ण काढून टाकण्यासाठी वापरकर्ता-परिभाषित फंक्शन (UDF) चा कोड सामायिक करेन.

    VBA कोड 1:

    फंक्शन रिमूव्हनंबर्स(str म्हणून स्ट्रिंग) मंद स्ट्रिंग म्हणून sRes sRes = "" i = 1 ते Len(str) साठी False = IsNumeric(Mid(str, i, 1)) तर sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End फंक्शन

    VBA code 2:

    फंक्शन RemoveNumbers(str म्हणून ) CreateObject ( "VBScript.RegExp" सह स्ट्रिंग म्हणून ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End फंक्शनसह समाप्त करा

    RemoveText फंक्शनच्या बाबतीत, दुसरा कोड वापरणे चांगले आहे. मोठेकार्यपत्रके कार्यप्रदर्शन ऑप्टिमाइझ करण्यासाठी.

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

    RemoveNumbers(string)

    आमच्या बाबतीत, B2 मधील सूत्र आहे:

    =RemoveNumbers(A2)

    असेल तर अग्रगण्य स्पेस ट्रिम करण्यासाठी, TRIM मध्ये कस्टम फंक्शन नेस्ट करा जसे की तुम्ही मूळ सूत्र:

    =TRIM(RemoveNumbers(A2))

    <0

    संख्या आणि मजकूर वेगळे स्तंभांमध्ये विभाजित करा

    जेव्हा तुम्हाला मजकूर आणि संख्या दोन स्तंभांमध्ये विभक्त करायच्या असतील, तेव्हा एकाच सूत्राने काम पूर्ण करणे चांगले होईल. , सहमत? यासाठी, आम्ही फक्त RemoveText आणि RemoveNumbers फंक्शन्सचा कोड एका फंक्शनमध्ये विलीन करतो, ज्याचे नाव SplitTextNumbers , किंवा फक्त Split , किंवा तुम्हाला जे आवडते ते :)

    VBA कोड 1:

    फंक्शन SplitTextNumbers(string म्हणून , is_remove_text as boolean ) String Dim sNum, sText, sChar स्ट्रिंग म्हणून sCurChar = sNum = sText = "" साठी i = 1 ते Len(str) sCurChar = Mid(str, i, 1) खरे असल्यास = IsNumeric(sCurChar) नंतर sNum = sNum & sCurChar Else sText = sText & sCurChar End If Next i If True = is_remove_text नंतर SplitTextNumbers = sNum अन्यथा SplitTextNumbers = sText End फंक्शन समाप्त झाल्यास

    VBA कोड 2:

    फंक्शन SplitTextNumbers(str as String, as_remove_text) आहे. CreateObject ( "VBScript.RegExp" ) सह .Global = True If True = is_remove_text नंतर .Pattern = "[^0-9]" बाकी.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "" ) एंड फंक्शनसह समाप्त करा

    आमच्या नवीन कस्टम फंक्शनला दोन वितर्क आवश्यक आहेत:

    SplitTextNumbers(string, is_remove_text)

    कुठे is_remove_text हे बुलियन मूल्य आहे जे कोणते वर्ण काढायचे हे दर्शविते:

    • TRUE किंवा 1 - मजकूर काढून टाका आणि संख्या ठेवा
    • FALSE किंवा 0 - संख्या काढून टाका आणि मजकूर ठेवा

    आमच्या नमुना डेटासेटसाठी, सूत्रे हा फॉर्म घेतात:

    नॉन-न्यूमेरिक वर्ण काढण्यासाठी:

    =SplitTextNumbers(A2, TRUE)

    अंकीय वर्ण हटवण्यासाठी :

    =SplitTextNumbers(A2, FALSE)

    टीप. अग्रगण्य स्पेसची संभाव्य समस्या टाळण्यासाठी, मी TRIM फंक्शनमधील संख्या काढून टाकणारे सूत्र नेहमी गुंडाळण्याची शिफारस करतो:

    =TRIM(SplitTextNumbers(A2, FALSE))

    संख्या किंवा मजकूर काढण्यासाठी विशेष साधन

    जे करतात त्यांच्यासाठी अनावश्यक गोष्टी क्लिष्ट करणे आवडत नाही, मी Excel मधील मजकूर किंवा अंक काढण्याचा आमचा स्वतःचा मार्ग दाखवीन.

    आमचा अल्टीमेट सूट तुमच्या एक्सेल रिबनमध्ये जोडला गेला आहे असे गृहीत धरून, तुम्ही हे करा:

    1. Ablebits Data टॅबवर, मजकूर गटात, काढा > वर्ण काढा वर क्लिक करा.
    2. <21

  • अ‍ॅड-इनच्या उपखंडावर, स्त्रोत श्रेणी निवडा, अक्षर संच काढा पर्याय निवडा आणि मजकूर <1 निवडा ड्रॉप-डाउन सूचीमध्ये>अक्षरे किंवा अंकीय वर्ण .
  • काढून टाका दाबा आणि परिणामाचा आनंद घ्या :)
  • टीप. परिणामांमध्ये काही अग्रगण्य स्पेस असल्यास, ट्रिम स्पेसेससाधन त्यांना काही वेळेत दूर करेल.

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

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

    एक्सेलमधील मजकूर किंवा संख्या काढा - उदाहरणे (.xlsm फाइल)

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

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