27.09.2021, 22:21
Hallo,
ganz nebenbei ... die oben genannte Formel muss für alle normalen Menschen ... also die, die weder 365, noch Office 2021 haben, mit Strg+Shift+Enter abgeschlossen werden. Es handelt sich nämlich dabei um eine Matrixformel.
Außerdem würde ich das über eine UDF lösen ... natürlich wahlweise mit Ausgabe der Stelle der ersten Zahl im Text ... oder der Ziffernfolge selbst.
Inklusive Leerstellen zwischen den Ziffern ... soll bei Telefonnummern schon mal vorkommen.
SuchString A1 lautet "abc1 23"
Formel: =FINDEZAHL(A1) ergibt "1 23"
Formel: =FINDEZAHL(A1;0) ergibt 4
Sabina
ganz nebenbei ... die oben genannte Formel muss für alle normalen Menschen ... also die, die weder 365, noch Office 2021 haben, mit Strg+Shift+Enter abgeschlossen werden. Es handelt sich nämlich dabei um eine Matrixformel.
Außerdem würde ich das über eine UDF lösen ... natürlich wahlweise mit Ausgabe der Stelle der ersten Zahl im Text ... oder der Ziffernfolge selbst.
Inklusive Leerstellen zwischen den Ziffern ... soll bei Telefonnummern schon mal vorkommen.
Code:
Function FINDEZAHL(rng As Range, Optional fText As Boolean = True) As String
Dim Lng As Long
Dim erg As Variant
Dim str As String
Dim i As Long, j As Long
str = rng.Text
For Lng = 1 To Len(str)
If IsNumeric(Mid(str, Lng, 1)) Then
If Mid(str, Lng - 1, 1) = " " Then
erg = erg & " " & Mid(str, Lng, 1)
i = i + 2
Else
erg = LTrim(erg & Mid(str, Lng, 1))
i = i + 1
End If
Else
If i = 0 Then j = j + 1
End If
Next
If fText Then
FINDEZAHL = erg
Else
FINDEZAHL = j + 1
End If
End Function
Formel: =FINDEZAHL(A1) ergibt "1 23"
Formel: =FINDEZAHL(A1;0) ergibt 4
Sabina