सामग्री सारणी
सूत्र आणि एक्स्ट्रॅक्ट टूल वापरून एक्सेलमधील विविध टेक्स्ट स्ट्रिंगमधून नंबर कसा काढायचा हे ट्युटोरियल दाखवते.
जेव्हा दिलेल्या लांबीच्या मजकूर स्ट्रिंगचा काही भाग काढण्याचा विचार येतो , एक्सेल कार्य द्रुतपणे हाताळण्यासाठी तीन सबस्ट्रिंग कार्ये (डावी, उजवी आणि मध्य) प्रदान करते. जेव्हा अल्फान्यूमेरिक स्ट्रिंगमधून संख्या काढण्याचा विचार येतो तेव्हा मायक्रोसॉफ्ट एक्सेल प्रदान करत नाही... काहीही नाही.
एक्सेलमधील स्ट्रिंगमधून नंबर मिळविण्यासाठी, थोडी कल्पकता, थोडा संयम आणि विविध फंक्शन्सचा समूह लागतो. एकमेकांमध्ये घरटी. किंवा, तुम्ही एक्स्ट्रॅक्ट टूल चालवू शकता आणि माउस क्लिकने काम पूर्ण करू शकता. खाली तुम्हाला दोन्ही पद्धतींबद्दल संपूर्ण माहिती मिळेल.
टेक्स्ट स्ट्रिंगच्या शेवटी नंबर कसा काढायचा
जेव्हा तुमच्याकडे अल्फान्यूमेरिक स्ट्रिंगचा कॉलम असेल जेथे नंबर नंतर येतो मजकूर, तो मिळविण्यासाठी तुम्ही खालील सूत्र वापरू शकता.
RIGHT( cell, LEN( cell) - MAX(IF(ISNUMBER(MID( cell)>, ROW(अप्रत्यक्ष("1:"&LEN( सेल))), 1) *1)=FALSE, ROW(अप्रत्यक्ष("1:"&LEN( सेल))), 0)))आम्ही थोड्या वेळाने सूत्राच्या तर्कावर विचार करू. आत्तासाठी, मूळ स्ट्रिंग (आमच्या बाबतीत A2) असलेल्या सेलच्या संदर्भासह फक्त सेल बदला आणि त्याच पंक्तीमधील कोणत्याही रिकाम्या सेलमध्ये सूत्र प्रविष्ट करा, B2 मध्ये म्हणा:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
या सूत्राला फक्त शेवटपासून क्रमांक मिळतो. जर एखाद्या स्ट्रिंगमध्ये सुरुवातीला किंवा मध्यभागी संख्या देखील असतील तर ते आहेतदुर्लक्षित:
एक्सट्रॅक्शन RIGHT फंक्शनसह केले जाते जे मजकूर फंक्शन्सच्या श्रेणीशी संबंधित आहे. या फंक्शनचे आउटपुट नेहमी टेक्स्ट असते. आमच्या बाबतीत, परिणाम संख्यात्मक सबस्ट्रिंग आहे, जो एक्सेलच्या दृष्टीने मजकूर आहे, संख्या नाही.
तुम्हाला निकाल हवा असेल तर संख्या (जे तुम्ही पुढील गणनेमध्ये वापरू शकता), नंतर सूत्र VALUE फंक्शनमध्ये गुंडाळा किंवा निकाल बदलत नाही असे अंकगणित ऑपरेशन करा, म्हणा, 1 ने गुणा करा किंवा 0 जोडा. स्ट्रिंगमधील त्रुटी पकडण्यासाठी सिंगल नंबर, IFERROR फंक्शन वापरा. उदाहरणार्थ:
=IFERROR(VALUE(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))), "")
किंवा
=IFERROR(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))) +0, "")
टीप. डायनॅमिक अॅरे एक्सेल (ऑफिस 365 आणि 2021) मध्ये, तुम्ही एंटर की वापरून नेहमीच्या पद्धतीने सूत्र प्रविष्ट करता. एक्सेल 2019 आणि त्यापूर्वी, ते फक्त अॅरे फॉर्म्युला म्हणून काम करते, त्यामुळे ते पूर्ण करण्यासाठी Ctrl + Shift + Enter दाबण्याचे लक्षात ठेवा.
हे सूत्र कसे कार्य करते:
अल्फान्यूमेरिक स्ट्रिंगमधून संख्या काढण्यासाठी, तुम्हाला माहिती असणे आवश्यक आहे की एक्सट्रॅक्शन कोठे सुरू करावे. स्ट्रिंगमधील शेवटच्या नॉन-न्यूमेरिक कॅरेक्टरची स्थिती या अवघड सूत्राच्या मदतीने निश्चित केली जाते:
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN( A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))
तर्क समजून घेण्यासाठी, आतून तपासूया :
द ROW(INDIRECT("1:"&LEN(A2))) संयोजनस्त्रोत स्ट्रिंग (A2) मधील एकूण वर्णांशी संबंधित संख्यांचा एक क्रम तयार करतो आणि आम्ही या अनुक्रमिक संख्यांना MID ला प्रारंभिक संख्या म्हणून देतो:
MID(A2, {1;2;3;4 ;5;6;7;8}, 1)
MID फंक्शन प्रत्येक वैयक्तिक वर्ण A2 मधून खेचते आणि त्यांना अॅरे म्हणून परत करते:
{"0";"5";" -";"E";"C";"-";"0";"1"}
MID हे मजकूर फंक्शन असल्याने, त्याचे आउटपुट नेहमी मजकूर असते (जसे तुम्ही लक्षात घेऊ शकता, सर्व वर्ण अवतरण चिन्हांमध्ये संलग्न आहेत). अंकीयांना संख्यांमध्ये रूपांतरित करण्यासाठी, आम्ही अॅरेला 1 ने गुणाकार करतो (दुहेरी नकार --MID() समान परिणाम देईल). या ऑपरेशनचा परिणाम म्हणजे संख्या आणि #VALUE! गैर-संख्यात्मक वर्णांचे प्रतिनिधित्व करणाऱ्या त्रुटी:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
ISNUMBER कार्य अॅरेच्या प्रत्येक घटकाचे मूल्यमापन करते आणि बुलियन मूल्यांच्या रूपात त्याचा निर्णय देते - संख्यांसाठी सत्य, इतर कोणत्याही गोष्टीसाठी असत्य:
{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
हा अॅरे IF फंक्शनच्या तार्किक चाचणीला जातो, जेथे अॅरेच्या प्रत्येक घटकाची FALSE शी तुलना केली जाते:
IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)
प्रत्येक FALSE (नॉन-न्यूमेरिक व्हॅल्यू) साठी, दुसरी ROW(INDIRECT()) फंक्शन मिळते स्ट्रिंगमधील त्याची सापेक्ष स्थिती. प्रत्येक TRUE (संख्यात्मक मूल्य) साठी, शून्य दिले जाते. परिणामी अॅरे असे दिसतेखालील:
{0;0;3;4;5;6;0;0}
बाकी सोपे आहे. MAX फंक्शन वरील अॅरेमध्ये सर्वाधिक संख्या शोधते, जी स्ट्रिंगमधील शेवटच्या नॉन-न्यूमेरिक व्हॅल्यूची स्थिती आहे (आमच्या बाबतीत 6). फक्त, LEN ने परत केलेल्या स्ट्रिंगच्या एकूण लांबीमधून ती स्थिती वजा करा आणि स्ट्रिंगच्या उजव्या बाजूने किती वर्ण काढायचे हे कळवण्यासाठी निकाल उजवीकडे पास करा:
उजवीकडे(A2, LEN (A2) - 6)
पूर्ण झाले!
मजकूर स्ट्रिंगच्या सुरुवातीपासून क्रमांक कसा काढायचा
जर तुम्ही रेकॉर्डसह काम करत असाल जिथे मजकूर क्रमांकानंतर दिसत असेल, तर तुम्ही हे जेनेरिक सूत्र वापरून स्ट्रिंगच्या सुरुवातीपासून क्रमांक काढा:
LEFT( cell, MATCH(FALSE, ISNUMBER(MID( cell, ROW(INDIRECT("1:)) "&LEN( सेल)+1)), 1) *1), 0) -1)A2 मधील मूळ स्ट्रिंगसह, क्रमांक मिळविण्यासाठी खालील सूत्र वापरा:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
मध्यभागी किंवा शेवटी कितीही अंक असले तरीही, फक्त सुरुवातीची संख्या काढली जाते:
टीप. एक्सेल 365 आणि एक्सेल 2021 मध्ये, डायनॅमिक अॅरेच्या समर्थनामुळे, एक नियमित सूत्र चांगले कार्य करते. एक्सेल 2019 आणि त्यापूर्वी, तुम्ही स्पष्टपणे अॅरे फॉर्म्युला बनवण्यासाठी Ctrl + Shift + Enter दाबले पाहिजे.
हे सूत्र कसे कार्य करते:
येथे, आम्ही पुन्हा ROW, INDIRECT आणि LEN फंक्शन्सचा वापर करून सोर्स स्ट्रिंग प्लस 1 मधील एकूण वर्णांच्या समान संख्यांचा क्रम तयार करतो (त्याची भूमिकाअतिरिक्त वर्ण थोड्या वेळाने स्पष्ट होतील).
ROW(INDIRECT("1:"&LEN(A2)+1))
MID आणि ISNUMBER समान कार्य करतात. मागील उदाहरण - MID वैयक्तिक वर्ण खेचते आणि ISNUMBER त्यांना तार्किक मूल्यांमध्ये रूपांतरित करते. TRUE's आणि FALSE's चा परिणामी अॅरे लुकअप अॅरे म्हणून MATCH फंक्शनवर जातो:
MATCH(FALSE, {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)
MATCH पहिल्या FALSE च्या सापेक्ष स्थितीची गणना करते, ज्यामुळे आम्हाला स्ट्रिंगमधील पहिल्या नॉन-न्यूमेरिक कॅरेक्टरची स्थिती मिळते (A2 मध्ये 3). मागील संख्या काढण्यासाठी, आम्ही पहिल्या मजकूर वर्णाच्या स्थानावरून 1 वजा करतो आणि संख्या_अक्षर लेफ्ट फंक्शनच्या युक्तिवादात फरक देतो:
LEFT(A2, 3-1)
आता, ROW(INDIRECT()+1)) द्वारे व्युत्पन्न केलेल्या क्रमातील "अतिरिक्त" वर्णाकडे परत या. तुम्हाला आधीच माहित आहे की, हा क्रम MID फंक्शनसाठी प्रारंभिक बिंदू प्रदान करतो. +1 शिवाय, MID मूळ स्ट्रिंगमध्ये जेवढे वर्ण आहेत तेवढेच काढेल. जर स्ट्रिंगमध्ये फक्त संख्या असतील, तर ISNUMBER फक्त TRUE देईल तर MATCH ला किमान एक FALSE आवश्यक आहे. याची खात्री करण्यासाठी, आम्ही स्ट्रिंगच्या एकूण लांबीमध्ये आणखी एक वर्ण जोडतो, ज्याला MID फंक्शन रिकाम्या स्ट्रिंगमध्ये रूपांतरित करेल. उदाहरणार्थ, B7 मध्ये, MID हा अॅरे परत करतो:
{"1";"2";"3";"4";""}
टीप. RIGHT फंक्शनच्या बाबतीत, LEFT देखील संख्या मिळवतेsubstring , जे तांत्रिकदृष्ट्या मजकूर आहे, संख्या नाही. अंकीय स्ट्रिंग ऐवजी संख्या म्हणून निकाल मिळविण्यासाठी, VALUE फंक्शनमध्ये सूत्र नेस्ट करा किंवा पहिल्या उदाहरणात दाखवल्याप्रमाणे निकाल 1 ने गुणा.
स्ट्रिंगमधील कोणत्याही स्थानावरून संख्या कशी मिळवायची
जर तुमचे कार्य स्ट्रिंगमधील कुठूनही नंबर काढणे सूचित करत असेल, तर तुम्ही MrExcel फोरमवर प्रकाशित खालील मनाला चकित करणारे सूत्र वापरू शकता:
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)
जेथे A2 आहे मूळ मजकूर स्ट्रिंग.
हे सूत्र खंडित करण्यासाठी वेगळ्या लेखाची आवश्यकता असेल, जेणेकरून ते खरोखर कार्य करते याची खात्री करण्यासाठी तुम्ही ते फक्त तुमच्या वर्कशीटमध्ये कॉपी करू शकता :)
परिणामांचे परीक्षण केल्यावर, तथापि, तुम्हाला एक क्षुल्लक कमतरता लक्षात येऊ शकते - जर स्त्रोत स्ट्रिंगमध्ये संख्या नसेल, तर वरील स्क्रीनशॉटमधील पंक्ती 6 प्रमाणे सूत्र शून्य दर्शवेल. याचे निराकरण करण्यासाठी, तुम्ही सूत्र IF स्टेटमेंटमध्ये गुंडाळू शकता, ज्याची तार्किक चाचणी स्त्रोत स्ट्रिंगमध्ये कोणतीही संख्या आहे का ते तपासते. तसे झाल्यास, सूत्र संख्या काढतो, अन्यथा रिकामी स्ट्रिंग देतो:
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
खालील स्क्रीनशॉटमध्ये दर्शविल्याप्रमाणे, सुधारित फॉर्म्युला सुंदरपणे कार्य करतो (अॅलेक्स, आमचे एक्सेल गुरू, धन्यवाद, या सुधारणेसाठी):
मागील सर्व उदाहरणांच्या विपरीत, या सूत्राचा परिणाम संख्या आहे. याची खात्री करण्यासाठी, फक्त B स्तंभातील उजव्या संरेखित मूल्यांकडे लक्ष द्या आणि अग्रगण्य शून्य कापून टाका.
टीप. Excel 365 मध्ये -Excel 2019, TEXTJOIN फंक्शनच्या मदतीने एक सोपा उपाय आहे. कृपया मजकूर कसा काढायचा आणि नंबर कसे ठेवायचे ते पहा.
अल्टीमेट सूटसह मजकूर स्ट्रिंगमधून नंबर काढा
तुम्ही आत्ताच पाहिल्याप्रमाणे, मजकूर स्ट्रिंगमधून नंबर काढण्यासाठी कोणतेही क्षुल्लक एक्सेल सूत्र नाही. तुम्हाला तुमच्या डेटा सेट्ससाठी सूत्रे समजण्यात किंवा त्यात बदल करण्यात अडचणी येत असल्यास, तुम्हाला एक्सेलमधील स्ट्रिंगमधून नंबर मिळवण्याचा हा सोपा मार्ग आवडू शकतो.
तुमच्या एक्सेल रिबनमध्ये आमचा अल्टिमेट सूट जोडल्यामुळे, तुम्ही अशा प्रकारे कोणत्याही अल्फान्यूमेरिक स्ट्रिंगमधून पटकन क्रमांक पुनर्प्राप्त करू शकतो:
- Ablebits डेटा टॅबवर जा > मजकूर गट, आणि एक्सट्रॅक्ट क्लिक करा :
- स्रोत स्ट्रिंगसह सर्व सेल निवडा.
- एक्सट्रैक्ट टूलच्या उपखंडावर, क्रमांक काढा रेडिओ बटण निवडा.
- तुम्हाला परिणाम सूत्रे किंवा मूल्ये हवी आहेत यावर अवलंबून, सूत्र म्हणून घाला बॉक्स निवडा किंवा तो न निवडलेला (डीफॉल्ट) सोडा.
स्रोत स्ट्रिंगमध्ये कोणतेही बदल केल्यावर काढलेले नंबर आपोआप अपडेट व्हावेत असे वाटत असल्यास हा बॉक्स निवडावा असा माझा सल्ला आहे. तुम्हाला मूळ स्ट्रिंग्सवर परिणाम स्वतंत्र हवे असल्यास (उदा. तुम्ही नंतर स्रोत डेटा काढून टाकण्याची योजना करत असल्यास), तर हा बॉक्स निवडू नका.
- परिणाम घाला बटणावर क्लिक करा. पूर्ण झाले!
मागील उदाहरणाप्रमाणे, चे परिणामएक्सट्रॅक्शन म्हणजे संख्या , म्हणजे तुम्ही मोजण्यासाठी, बेरीज, सरासरी किंवा त्यांच्यासोबत इतर कोणतीही गणना करण्यास मोकळे आहात.
या उदाहरणात, आम्ही परिणाम <9 म्हणून समाविष्ट करणे निवडले आहे>मूल्ये , आणि अॅड-इनने जे विचारले होते तेच केले:
जर सूत्र म्हणून घाला चेकबॉक्स निवडला असेल, तर तुम्ही d सूत्र बारमध्ये सूत्र पहा. कोणते हे जाणून घेण्याची उत्सुकता आहे? फक्त अल्टीमेट सूटची चाचणी डाउनलोड करा आणि स्वतःसाठी पहा :)
उपलब्ध डाउनलोड
एक्सेल एक्स्ट्रॅक्ट क्रमांक - नमुना कार्यपुस्तिका (.xlsx फाइल)
अंतिम सूट - चाचणी आवृत्ती (.exe फाइल)