Ich lese in eine String Variable den Wert der aktuellen Zelle ein. Nun möchte ich gerne den String nach der ersten Zahl durchsuchen. Z.B.
String = abc1234 erste Zahl_pos = 1
string = aaaaa5552354 erste Zahl_pos = 6
Grüße,
Bastl
Um die erste Zahl in einem String zu ermitteln, kannst Du die folgende Methode in VBA verwenden. Diese Anleitung ist für Excel-Nutzer geeignet, die mit VBA (Visual Basic for Applications) vertraut sind.
ALT + F11, um den VBA-Editor zu öffnen.Einfügen > Modul klickst.Function ErsteZahlInString(ByVal inputString As String) As Long
Dim i As Long
For i = 1 To Len(inputString)
If IsNumeric(Mid(inputString, i, 1)) Then
ErsteZahlInString = i
Exit Function
End If
Next i
ErsteZahlInString = 0 ' Falls keine Zahl gefunden wird
End Function
=ErsteZahlInString(A1).Fehler: #NAME?
Fehler: Unerwartetes Ergebnis
0 zurück.Falls Du keine VBA-Funktion nutzen möchtest, kannst Du auch eine Formel verwenden, um die erste Zahl in einem String zu finden. Eine Möglichkeit besteht darin, eine Kombination aus FINDEN und ISTZAHL zu verwenden.
Beispiel:
=MIN(WENN(ISTZAHL(WERT(TEIL(A1;ZEILE(1:100);1)));ZEILE(1:100)))
Diese Formel setzt voraus, dass der String in Zelle A1 steht und sucht nach der ersten Zahl innerhalb der ersten 100 Zeichen.
Beispiel 1: Für den String abc1234 gibt die Funktion ErsteZahlInString den Wert 4 zurück, da die erste Zahl an der vierten Position steht.
Beispiel 2: Für den String aaaaa5552354 gibt die Funktion den Wert 6 zurück, da die erste Zahl an der sechsten Position zu finden ist.
1. Wie kann ich die Funktion in einer Formel verwenden?
Du kannst die Funktion einfach in einer Zelle verwenden, indem Du =ErsteZahlInString(A1) eingibst, wobei A1 die Zelle ist, die den String enthält.
2. Funktioniert das auch in Excel 365? Ja, die VBA-Funktion ist in allen Versionen von Excel, die VBA unterstützen, anwendbar, einschließlich Excel 365.