Frage von Irgendjemand94, 67

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

Hallo und Danke schon mal im Voraus für die kommenden Antworten! Wie kann ich denn einen Teil einer bestehenden Zelle quasi in eine neue Zelle hinein kopieren, welche aus einer Formel besteht?

Beispiel: Zelle A1: Anzahl an Patienten: 5 Personen

Dann soll in der Zelle A2 die Formel stehen, welche automatisch die "5" aus A1 einbindet: =Wert*5

Ich will also nur die Zahl aus dem Text einer bestimmten Zelle heraus nehmen und direkt in eine Formel einbinden. Leider konnte ich im Internet nichts finden, außer dem umgekehrten Fall (Wert aus einer Zelle wird in einen Text eingebunden).

Ich hoffe ich habe die Frage verständlich formuliert.

Dankeschön!

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 38

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,}")
Kommentar von Suboptimierer ,

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;"")
Antwort
von mrDoctor, 46

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.

Kommentar von Suboptimierer ,

DH! Bester Weg!

Expertenantwort
von Ninombre, Community-Experte für Excel, 34

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.

Kommentar von Suboptimierer ,
=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.

Keine passende Antwort gefunden?

Fragen Sie die Community