Getallen uit tekenreeks halen

Hoe haal je het numerieke gedeelte op uit een alfanumerieke tekenreeks?
Bijvoorbeeld: als cel A3 de tekenreeks esd K+ WS4600 bevat, moet de waarde 4600 worden geretourneerd in cel B3 of in cel C3. Hiervoor hebben we 2 functies: strCountNumbers (in B3) en GetNumbers (in C3)

1. Kopieer de onderstaande code
2. Open een nieuwe werkmap
3. Druk op de toetscombinatie ALT + F11 om de Visual Basic Editor te openen
4. Druk op de toetscombinatie ALT + N om het menu Invoegen te openen
5. Druk op M om een standaard module in te voegen
6. Daar waar de cursor knippert voeg je de code in middels Ctrl + V
7. Druk op de toetscombinatie ALT + Q om de Editor af te sluiten en terug te keren naar Excel
8. Formule invoegen in juiste cel.

Bijvoorbeeld in B3=strCountNumbers(A3) of =GetNumbers(A3)

Function strCountNumbers(strText As String) As String
Dim intLengte As Integer, strChar As String, X As Integer, strNumber As String
    intLengte = Len(strText)
    For X = 1 To intLengte
        strChar = Mid(strText, X, 1)
        If strChar Like "[0-9]" Then
            strNumber = strNumber & strChar
        End If
    Next
    strCountNumbers = strNumber
End Function
Function GetNumbers(ByVal strText As String) As String
  Dim X As Long
  For X = 1 To Len(strText)
    If Mid(strText, X, 1) Like "[!0-9]" Then Mid(strText, X) = " "
  Next
  GetNumbers = Replace(strText, " ", "")
End Function

Getallen uit het BEGIN van een tekenreeks halen.

In [B3] =LEFT(A3; match(TRUE; MID
(A3 & "x"; {1\2\3\4\5\6\7\8\9\10\11\12}; 1) > "9"; 0) - 1)

Nog een bruikbare formule:
Formule in B3 invoeren

In [B3] =LEFT(A3;MATCH(TRUE;ISERROR(1*LEFT(SUBSTITUTE(IF(ISNUMBER
(-MID(A3;FIND(".";A3&".")+1;1));A3;SUBSTITUTE(A3;".";"X"))
;" ";"X")&"X";ROW(INDEX(A:A;1):INDEX(A:A;99))));0)-1)

Leave a Reply

Your email address will not be published. Required fields are marked *