Wie kann ich bei Excel nur ein Teil einer Zelle in einer andere Zelle in eine neuen Formel einbinden?

3 Antworten

Du könntest dir in deiner Personal.xlsb eine Funktion für Reguläre Ausdrücke bereitstellen und mit dieser die Ziffern filtern:

Function RegMatch(sZuDurchsuchen As String, sPattern As String, Optional bIgnoreCase As Boolean = True) As Variant
  ' Findet reguläre Ausdrücke (samt Submatches) in einem Text 2015-08-11 TH
  ' Evtl. Verweis hinzufügen notwendig: Microsoft VBScript Regular Expressions 5.5

Dim oMatch Dim oMatches Dim oRegExp Dim oSubmatch Dim saRegMatch() As Variant Dim i: i = 0
Set oRegExp = New RegExp oRegExp.Pattern = sPattern oRegExp.IgnoreCase = bIgnoreCase
Set oMatches = oRegExp.Execute(sZuDurchsuchen)
For Each oMatch In oMatches ReDim Preserve saRegMatch(0, i): saRegMatch(0, i) = oMatch: i = i + 1 For Each oSubmatch In oMatch.SubMatches ReDim Preserve saRegMatch(0, i): saRegMatch(0, i) = oSubmatch: i = i + 1 Next Next

If i = 0 Then RegMatch = "" Else If i = 1 Then RegMatch = saRegMatch(0, 0) Else RegMatch = saRegMatch End If End If
Set oMatch = Nothing Set oMatches = Nothing Set oRegExp = Nothing Set oSubmatch = Nothing End Function

Aufruf:

=PERSONAL.XLSB!RegMatch(A1;"\d{1,}")
Suboptimierer  01.03.2016, 10:51

Was auch geht ist, das über die iterative Berechnung zu lösen: 

Datei → Optionen → Formeln → Iterative Berechnung aktivieren

Dann nimmst du eine Zelle als Zähler her und gibst ihr den Namen Zähler mit der Formel

=WENN(Zähler=LÄNGE(A1)+1;LÄNGE(A1)+1;Zähler+1)

In die Filterzelle schreibst du die Formel:

=D4&WENNFEHLER(TEIL(A1;Zähler;1)*1;"")
0

Ist in der Zelle A1 immer eine Zahl gefolgt von "Personen"? Wenn ja, kannst du die Zelle so formatieren, dass wenn du eine Zahl schreibst, automatisch "Personen" hinzugefügt wird. Somit bleibt der eigentliche Inhalt der Zelle die Zahl und deine Rechnung wird zum Kinderspiel.

mit Links oder Teil

Ist die Anzahl der Stellen der Zahl immer gleich oder muss man das auch ermitteln? Wenn es fest ist =links(A1;1)

=TEIL(A1;1;FINDEN(" ";A1)-1) - klappt aber nur wenn es ein Leerzeichen zwischen Zahl und Text gibt.

Suboptimierer  01.03.2016, 10:00
=links(A1;1)

In Zelle A1 soll als Beispiel stehen: "Anzahl an Patienten: 5 Personen". Man müsste also mit TEIL, nicht mit LINKS arbeiten. Das Prinzip bleibt aber gleich.

0