Hallo Martin,
m. E. hast Du alle notwendigen Informationen verstaendlich gegeben :-)
Sogar die, dass Deine Strings einander enthalten koennen. Dann
funktioniert leider der Ansatz "Suchstring*" nicht.
Die Formel
=SVERWEIS("MB",NumStat(A1:AF1);2;FALSCH)
liefert Dir die 2 und
=SVERWEIS("M",NumStat(A1:AF1);2;FALSCH)
ergibt 3.
Und wenn Du die gesamte Matrix auf einmal erhalten moechtest:
Selektiere einen freien Bereich von 32 Zeilen und 2 Spalten und gib als
Matrixformel
=NumStat(A1:AF1)
ein (STRG + SHIFT + ENTER)
Die UDF NumStat (siehe unten) musst Du in ein Makro einfuegen:
ALT + F11 druecken, dann Einfuegen/Modul
HTH,
Bernd
----------- Hier Schnipp ------------------
Function NumStat(r As Range) As Variant
Dim i As Long, j As Long, d As Double, c As String, f As Double
Dim rc As Range, s As String, sr As String
ReDim v(1 To r.Cells.Count, 1 To 2) As Variant
j = 0
For Each rc In r
i = 0: d = 0#: f = 1#: sr = "": j = j + 1
If Not IsEmpty(rc) Then s = rc.Text Else GoTo StateEnd
StateStart:
i = i + 1
If i > Len(s) Then GoTo StateEnd
c = Mid(s, i, 1)
Select Case c
Case "0" To "9", "."
d = CDbl(c)
GoTo StatePreComma
Case Else
sr = sr & c
GoTo StateStart
End Select
StatePreComma:
i = i + 1
If i > Len(s) Then GoTo StateEnd
c = Mid(s, i, 1)
Select Case c
Case "0" To "9"
d = 10# * d + CDbl(c)
GoTo StatePreComma
Case "."
GoTo StatePostComma
Case Else
GoTo StateEnd
End Select
StatePostComma:
i = i + 1
If i > Len(s) Then GoTo StateEnd
c = Mid(s, i, 1)
Select Case c
Case "0" To "9"
f = f / 10#
d = d + CDbl(c) * f
GoTo StatePostComma
Case Else
GoTo StateEnd
End Select
StateEnd:
v(j, 1) = sr
v(j, 2) = d
Next rc
NumStat = v
End Function
------------ Wieder Schnipp --------------------