एक्सेल: टेक्स्ट स्ट्रिंग से संख्या निकालें

  • इसे साझा करें
Michael Brown

ट्यूटोरियल दिखाता है कि फॉर्मूले और एक्सट्रेक्ट टूल का उपयोग करके एक्सेल में विभिन्न टेक्स्ट स्ट्रिंग्स से संख्या कैसे निकाली जाती है।

जब किसी दी गई लंबाई के टेक्स्ट स्ट्रिंग का हिस्सा निकालने की बात आती है , एक्सेल कार्य को जल्दी से संभालने के लिए तीन सबस्ट्रिंग फ़ंक्शंस (बाएँ, दाएँ और मध्य) प्रदान करता है। जब अल्फ़ान्यूमेरिक स्ट्रिंग से संख्याएँ निकालने की बात आती है, तो Microsoft Excel प्रदान करता है ... कुछ भी नहीं।

एक्सेल में एक स्ट्रिंग से एक संख्या प्राप्त करने के लिए, इसमें थोड़ी सरलता, थोड़ा धैर्य और विभिन्न कार्यों का एक समूह होता है। एक दूसरे में बसा हुआ। या, आप एक्सट्रेक्ट टूल चला सकते हैं और माउस क्लिक से काम पूरा कर सकते हैं। नीचे आपको दोनों तरीकों का पूरा विवरण मिलेगा।

    टेक्स्ट स्ट्रिंग के अंत से नंबर कैसे निकालें

    जब आपके पास अल्फ़ान्यूमेरिक स्ट्रिंग्स का एक कॉलम हो जहां नंबर बाद में आता है पाठ, आप इसे प्राप्त करने के लिए निम्न सूत्र का उपयोग कर सकते हैं।>, ROW(INDIRECT("1:"&LEN( cell ))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN( cell<) 2>))), 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)))

    इस फॉर्मूले को अंत से ही नंबर मिलते हैं। यदि किसी स्ट्रिंग के आरंभ या मध्य में भी संख्याएँ हैं, तो वे हैंउपेक्षित:

    निष्कर्षण राइट फ़ंक्शन के साथ किया जाता है जो टेक्स्ट फ़ंक्शन की श्रेणी से संबंधित है। इस फ़ंक्शन का आउटपुट हमेशा टेक्स्ट होता है। हमारे मामले में, परिणाम एक संख्यात्मक सबस्ट्रिंग है, जो एक्सेल के संदर्भ में भी पाठ है, संख्या नहीं।

    यदि आप चाहते हैं कि परिणाम संख्या हो (जिसे आप आगे की गणना में उपयोग कर सकते हैं), फिर सूत्र को 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, और किसी भी चीज़ के लिए FALSE:

    {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

    बाकी आसान है। मैक्स फ़ंक्शन उपरोक्त सरणी में उच्चतम संख्या पाता है, जो स्ट्रिंग में अंतिम गैर-संख्यात्मक मान की स्थिति है (हमारे मामले में 6)। बस, उस स्थिति को LEN द्वारा लौटाई गई स्ट्रिंग की कुल लंबाई से घटाएं, और परिणाम को राइट में पास करें ताकि यह पता चल सके कि स्ट्रिंग के दाईं ओर से कितने वर्ण निकालने हैं:

    RIGHT(A2, LEN (A2) - 6)

    संपन्न!

    टेक्स्ट स्ट्रिंग की शुरुआत से संख्या कैसे निकालें

    यदि आप रिकॉर्ड के साथ काम कर रहे हैं जहां संख्या के बाद टेक्स्ट दिखाई देता है, तो आप कर सकते हैं इस सामान्य सूत्र का उपयोग करके एक स्ट्रिंग की शुरुआत से संख्या निकालें:

    LEFT( cell , MATCH(FALSE, ISNUMBER(MID( cell , ROW(INDIRECT("1:) "&LEN( cell )+1)), 1) *1), 0) -1)

    A2 में मूल स्ट्रिंग के साथ, संख्या प्राप्त करने के लिए निम्न सूत्र का उपयोग करें:

    =LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)

    मध्य या अंत में कितने भी अंक क्यों न हों, केवल आरंभिक संख्या ही निकाली जाती है:

    ध्यान दें। Excel 365 और Excel 2021 में, डायनेमिक सरणियों के समर्थन के कारण, एक नियमित सूत्र ठीक काम करता है। Excel 2019 और इससे पहले, आपको इसे स्पष्ट रूप से सरणी सूत्र बनाने के लिए Ctrl + Shift + Enter दबाना चाहिए।

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

    यहां, हम फिर से स्रोत स्ट्रिंग प्लस 1 में वर्णों के कुल के बराबर संख्याओं का अनुक्रम बनाने के लिए ROW, INDIRECT और LEN फ़ंक्शंस के संयोजन का उपयोग करते हैं (उसकी भूमिकाअतिरिक्त वर्ण थोड़ी देर बाद स्पष्ट हो जाएगा)।

    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 की सापेक्ष स्थिति की गणना करता है, जिससे हमें स्ट्रिंग में पहले गैर-संख्यात्मक वर्ण (3 में A2) की स्थिति मिलती है। पूर्ववर्ती संख्याओं को निकालने के लिए, हम पहले पाठ वर्ण की स्थिति से 1 घटाते हैं और अंतर को num_chars बाएं फ़ंक्शन के तर्क में प्रस्तुत करते हैं:

    LEFT(A2, 3-1)<3

    अब, ROW(INDIRECT()+1) द्वारा उत्पन्न अनुक्रम में एक "अतिरिक्त" वर्ण पर वापस जाएं। जैसा कि आप पहले से ही जानते हैं, यह क्रम MID फ़ंक्शन के लिए शुरुआती बिंदु प्रदान करता है। +1 के बिना, MID ठीक उतने ही वर्ण निकालेगा जितने कि मूल स्ट्रिंग में हैं। यदि स्ट्रिंग में केवल संख्याएँ हैं, तो ISNUMBER केवल TRUE लौटाएगा जबकि MATCH को कम से कम एक FALSE चाहिए। यह सुनिश्चित करने के लिए, हम स्ट्रिंग की कुल लंबाई में एक और वर्ण जोड़ते हैं, जिसे MID फ़ंक्शन एक खाली स्ट्रिंग में बदल देगा। उदाहरण के लिए, B7 में, MID इस सरणी को लौटाता है:

    {"1";"2";"3";"4";""

    Note. जैसा कि राइट फ़ंक्शन के साथ होता है, LEFT भी एक संख्यात्मक लौटाता हैसबस्ट्रिंग , जो तकनीकी रूप से पाठ है, संख्या नहीं। परिणाम को संख्यात्मक स्ट्रिंग के बजाय संख्या के रूप में प्राप्त करने के लिए, सूत्र को 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),"")

    जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है, बेहतर सूत्र खूबसूरती से काम करता है (हमारे एक्सेल गुरु, एलेक्स के लिए यश, इस सुधार के लिए):

    पिछले सभी उदाहरणों के विपरीत, इस सूत्र का परिणाम संख्या है। यह सुनिश्चित करने के लिए, बस कॉलम बी में दाएं-संरेखित मानों पर ध्यान दें और शुरुआती शून्य काट दें।

    युक्ति। एक्सेल 365 में -एक्सेल 2019, TEXTJOIN फ़ंक्शन की सहायता से बहुत सरल समाधान है। कृपया देखें कि टेक्स्ट को कैसे हटाएं और नंबर कैसे रखें।

    अल्टीमेट सूट के साथ टेक्स्ट स्ट्रिंग से नंबर निकालें

    जैसा कि आपने अभी देखा है, टेक्स्ट स्ट्रिंग से नंबर निकालने के लिए कोई तुच्छ एक्सेल फॉर्मूला नहीं है। यदि आपको सूत्रों को समझने या उन्हें अपने डेटा सेट के लिए ट्वीक करने में कठिनाई हो रही है, तो आप एक्सेल में स्ट्रिंग से नंबर प्राप्त करने का यह आसान तरीका पसंद कर सकते हैं। किसी भी अल्फ़ान्यूमेरिक स्ट्रिंग से जल्दी से नंबर प्राप्त कर सकते हैं:

    1. Ablebits Data टैब > टेक्स्ट समूह पर जाएं, और निकालें क्लिक करें :

    2. स्रोत स्ट्रिंग वाले सभी सेल चुनें।
    3. निकालें टूल के फलक पर, नंबर निकालें रेडियो बटन चुनें।
    4. इस पर निर्भर करते हुए कि आप परिणाम को सूत्र या मान चाहते हैं, सूत्र के रूप में सम्मिलित करें बॉक्स का चयन करें या इसे अचयनित (डिफ़ॉल्ट) छोड़ दें।

      मेरी सलाह है कि यदि आप चाहते हैं कि जैसे ही स्रोत स्ट्रिंग्स में कोई बदलाव किया जाए, तो निकाले गए नंबर अपने आप अपडेट हो जाएं, तो इस बॉक्स को चुनें। यदि आप चाहते हैं कि परिणाम मूल स्ट्रिंग्स पर स्वतंत्र हों (उदाहरण के लिए यदि आप बाद में स्रोत डेटा को हटाने की योजना बनाते हैं), तो इस बॉक्स का चयन न करें।

    5. परिणाम डालें बटन पर क्लिक करें। हो गया!

    पिछले उदाहरण की तरह, के परिणामनिष्कर्षण संख्याएं हैं, जिसका अर्थ है कि आप गणना, योग, औसत, या उनके साथ कोई अन्य गणना करने के लिए स्वतंत्र हैं।

    इस उदाहरण में, हमने <9 के रूप में परिणाम सम्मिलित करना चुना है>मान , और ऐड-इन ने ठीक वही किया जो इसके लिए कहा गया था:

    अगर सूत्र के रूप में डालें चेकबॉक्स चुना गया था, तो आप' d फॉर्मूला बार में फॉर्मूला देखें। कौन सा जानने के लिए उत्सुक हैं? बस अल्टीमेट सूट का ट्रायल डाउनलोड करें और खुद देखें :)

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

    एक्सेल एक्सट्रेक्ट नंबर - सैंपल वर्कबुक (.xlsx फाइल)

    अल्टीमेट सूट - ट्रायल वर्जन (.exe) फ़ाइल)

    माइकल ब्राउन सॉफ्टवेयर टूल्स का उपयोग करके जटिल प्रक्रियाओं को सरल बनाने के जुनून के साथ एक समर्पित प्रौद्योगिकी उत्साही है। टेक उद्योग में एक दशक से अधिक के अनुभव के साथ, उन्होंने माइक्रोसॉफ्ट एक्सेल और आउटलुक के साथ-साथ गूगल शीट्स और डॉक्स में अपने कौशल को निखारा है। माइकल का ब्लॉग अपने ज्ञान और विशेषज्ञता को दूसरों के साथ साझा करने के लिए समर्पित है, उत्पादकता और दक्षता में सुधार के लिए आसान-से-अनुसरण युक्तियाँ और ट्यूटोरियल प्रदान करता है। चाहे आप एक अनुभवी पेशेवर हों या नौसिखिए, माइकल का ब्लॉग इन आवश्यक सॉफ़्टवेयर उपकरणों से अधिकाधिक लाभ उठाने के लिए मूल्यवान अंतर्दृष्टि और व्यावहारिक सलाह प्रदान करता है।