2012-08-29 2 views
6

Ich brauche eine Möglichkeit, Zahlen und Buchstaben getrennt in einer Zelle zu zählen.Excel - Buchstaben und Zahlen getrennt in einer Zelle zählen

Zum Beispiel, wenn eine Zelle 1234567ABC enthält muß ich Ausgang dieses als

  • "7 Numbers" und
  • "3 Buchstaben" in der Lage sein.

Ich kann nicht einen Weg finden, die len() Funktion zu verwenden, die funktionieren würde, und countif zählt nur die sich Zellen.

Jede Hilfe wäre willkommen.

+0

Heh, Excel. Haben Sie versucht, ein Makro zu verwenden? –

+0

Würde mich das nicht noch erfordern, den Code zu kennen, um die einzelnen Zahlen und Buchstaben zu zählen? – CvR

Antwort

5

Wenn jede Zelle nur mit Zahlen und Buchstaben gefüllt ist, besteht eine schnelle Nicht-VBA-Methode darin, eine Ersatzfunktion zehnmal zu verschachteln, um die zehn numerischen Zeichen zu entfernen. Was Sie übrig haben, ist nur Alpha. Dann können Sie len() den Alpha-Text/subtrahieren Sie diese Zahl von der ursprünglichen Länge, um die numerische Länge zu erhalten.

Unter der Annahme, "1234567ABC" ist in Zelle A1:

Diese Formel gibt die Anzahl der Buchstaben. (3)

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

Diese Formel gibt die Gesamtzahlen: (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,"")) 

Wenn Sie die Datenverarbeitung auf andere Weise gestartet werden soll/mehr in die Tiefe, wird eine VBA Lösung wahrscheinlich erforderlich.

=x & " Numbers/Letters" 

Wo x = die obigen beiden Formeln: bis zum Ende der obigen Formeln

Hinweis

Um Anforderungen in Ihrer ursprünglichen Post gerecht zu werden, um dieses Suffix hinzuzufügen. Dies fügt den Text nach der berechneten Zahl hinzu.

Weiterführende Literatur:

Der folgende Link ein VBA-UDF Details, die etwas ähnliches tut: http://www.mrexcel.com/forum/excel-questions/16364-how-remove-numbers.html

zusätzliche Update (dank lori_m)

Diese Formel ist viel einfacher lesen/aktualisieren:

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

Ausgezeichnet, das funktioniert wie ein Charme! Vielen Dank! – CvR

+4

Es funktioniert in Excel 2007, aber das würde die acht geschachtelte Funktion Einschränkung in früheren Versionen überschreiten. Eine Alternative für die Gesamtanzahl ist: '= SUMME (LEN (A1) -LEN (ERSATZ (A1, {1,2,3,4,5,6,7,8,9,0}," "))) ' –

+0

Ah !!! Ich habe versucht, die {} mit Ersatz und es hat nicht funktioniert, ich habe vergessen, es zu summieren! (Ich war heute viel zu beschäftigt bei der Arbeit) Ich füge das als Update hinzu. Danke Lori. – danielpiestrak

2

Aus meiner Antwort in Analyse format of alpha-numeric string:

Für eine detailliertere Antwort auf diese Zeichenfolge 1234567ABC456 berichtet werden würde als 7N3L3N

A regexp wie dies

  • Presse zusammen, um die Arbeit zu tun auf die VBE gehen
  • Einfügemodul
  • Kopieren Sie den Code unten
  • drücken zusammen zu Excel zurück

dann können Sie die Funktion in Excel, dh in B1
=AlphaNumeric(A1)

(die auch ungültige Strings erkennt)

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