2012-08-29 9 views
6

मुझे एक सेल के भीतर संख्याओं और अक्षरों को अलग-अलग गिनने का एक तरीका चाहिए।एक्सेल - एक सेल में अलग-अलग अक्षरों और संख्याओं की गणना

उदाहरण के लिए, यदि एक सेल 1234567ABC शामिल मैं

  • "7 नंबर" और
  • "3 पत्र" के रूप में उत्पादन इस के लिए सक्षम होने की जरूरत है।

मैं एक तरह से len() समारोह है कि काम करेगा का उपयोग करने के बारे में सोच नहीं सकते हैं, और countif केवल कोशिकाओं स्वयं गिना जाता है।

किसी भी मदद की सराहना की जाएगी।

+0

हे, एक्सेल। क्या आपने मैक्रो का उपयोग करने की कोशिश की है? –

+0

क्या मुझे अभी भी व्यक्तिगत संख्याओं और अक्षरों की गणना करने के लिए कोड जानने की आवश्यकता नहीं है? – CvR

उत्तर

5

यदि प्रत्येक सेल केवल संख्याओं और अक्षरों के साथ भर जाता है, तो इसे पूरा करने के लिए एक त्वरित गैर-वीबीए तरीका 10 संख्यात्मक वर्णों को हटाने के लिए 10 बार एक विकल्प फ़ंक्शन घोंसला करना है। जो आपने छोड़ा है वह केवल अल्फा है। फिर आप संख्यात्मक लंबाई प्राप्त करने के लिए len() अल्फा टेक्स्ट/मूल लंबाई से उस संख्या को घटा सकते हैं।

मान लिया जाये कि "1234567ABC" सेल A1 में है:

यह सूत्र पत्रों की संख्या देता है। (3)

=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,"")) 

यह सूत्र कुल संख्या देता है: (7)

=LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,"")) 

आप अन्य तरीकों से डेटा को संभालने प्रारंभ करना चाहते हैं/गहराई में किसी भी अधिक, एक VBA समाधान की संभावना होगी की आवश्यकता है।

नोट

अपने मूल पोस्ट में आवश्यकताओं को पूरा करने के लिए, ऊपर सूत्रों के अंत तक इस प्रत्यय जोड़ें:

=x & " Numbers/Letters" 

कहाँ एक्स = ऊपर दो सूत्र। यह गणना संख्या के बाद पाठ जोड़ देगा।

अतिरिक्त पठन:

नीचे दिए गए लिंक का विवरण एक VBA यूडीएफ कि कुछ ऐसा ही: http://www.mrexcel.com/forum/excel-questions/16364-how-remove-numbers.html

अतिरिक्त अद्यतन (धन्यवाद lori_m)

यह फार्मूला एक बहुत आसान है पढ़ें/अपडेट करें:

=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},""))) 
+0

उत्कृष्ट, यह एक आकर्षण की तरह काम करता है! धन्यवाद! – CvR

+4

यह एक्सेल 2007 के बाद में काम करता है लेकिन इससे पूर्व संस्करणों में आठ नेस्टेड फ़ंक्शन प्रतिबंध समाप्त हो जाएगा। कुल संख्याओं का एक विकल्प है: '= एसयूएम (एलईएन (ए 1) -एलएन (सबस्टिट्यूट (ए 1, {1,2,3,4,5,6,7,8,9,0}," "))) ' –

+0

आह !!! मैंने विकल्प के साथ {} की कोशिश की और यह काम नहीं किया, मैं इसे समेटना भूल गया! (मैं काम पर आज बहुत व्यस्त हूं) मैं इसे एक अद्यतन के रूप में जोड़ दूंगा। धन्यवाद लोरी। – danielpiestrak

2

Analyse format of alpha-numeric string में मेरा उत्तर से:

एक अधिक विस्तृत जवाब इस स्ट्रिंग 1234567ABC456 सूचित किया जाएगा 7N3L3N

के रूप में इस तरह एक regexp

  • प्रेस एक साथ काम करेगा के लिए वीबीई
  • मॉड्यूल डालें
  • कॉपी और बी 1 में एक्सेल, यानी भीतर एक्सेल में वापस जाने के लिए

तो आप समारोह का उपयोग कर सकते नीचे

  • प्रेस एक साथ कोड पेस्ट (जो भी अवैध तार का पता लगाता है)
    =AlphaNumeric(A1)

    enter image description here

    Function AlphaNumeric(strIn As String) As String 
        Dim objRegex As Object 
        Dim objRegMC As Object 
        Dim objRegM As Object 
        Dim strOut As String 
        Set objRegex = CreateObject("vbscript.regexp") 
        With objRegex 
         .Global = True 
         .ignorecase = True 
         .Pattern = "[^\w]" 
         If .test(strIn) Then 
          AlphaNumeric = "One or more characters is invalid" 
         Else 
          .Pattern = "(\d+|[a-z]+)" 
          Set objRegMC = .Execute(strIn) 
          For Each objRegM In objRegMC 
           strOut = strOut & (objRegM.Length & IIf(IsNumeric(objRegM), "N", "L")) 
          Next 
          AlphaNumeric = strOut 
         End If 
        End With 
    End Function 
    
  • संबंधित मुद्दे