Excel: suche nach Zahl in Textzelle
paula
- programmiertechnik
Hallo,
vielleicht kann mir jemand weiterhelfen. Ich finde keine Lösung.
Ich habe eine Excel-Spalte im Textformat mit allen R-(Risiko)-Sätzen für Gefahrstoffe,wie folgt angegeben:
R51/53: R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment.
Ich möchte nun in einer anderen Spalte lediglich die Zahl ausgeben, dh am Beispiel oben. 51/53.
Hat jemand eine Idee?
Vielen Dank!
Mahlzeit paula,
R51/53: R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment.
Unsauber. Eine Spalte mit dem Inhalt "R51/53" und eine Spalte daneben mit dem Inhalt "R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment." geht nicht?
Ich möchte nun in einer anderen Spalte lediglich die Zahl ausgeben, dh am Beispiel oben. 51/53.
Wenn ALLE Zellen IMMER mit Text mit dem Muster "R??/??: " beginnen, kannst Du das recht einfach entweder mit einem regulären Ausdrücken oder einigen Stringoperationen herausbasteln.
MfG,
EKKi
Hallo Ekki,
habe eine Liste mit bestimmten Chemikalien, denen in der angrenzenden Spalte (im Textformat) jene R-Sätze zugeordnet sind. Leider gibt es auch oftmals MEHRERE R-Sätze pro Chemikalie. Das sieht dann in der angrenzenden Zelle zum Beispiel so aus.
R36/38: R36/38 Irritating to eyes and skin.;R51/53: R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment.
Diese Angaben stehen so in EINER Zelle.
Ich kann also nicht pauschal zB mittels ERSETZEN-Funktion die ersten Stellen herausfiltern und den Rest löschen. Da es knapp 60 R-Sätze gibt, kann ich auch keine (einfache) WENN-Funktion verwenden...
"Zu Fuß" möchte ich den Textanhang nicht löschen, da ich diese Liste in regelmäßigen Abständen aus einer Datenbank regenerieren muss.
?
Schöne Grüße erstmal
Mahlzeit paula,
R51/53: R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment.
Unsauber. Eine Spalte mit dem Inhalt "R51/53" und eine Spalte daneben mit dem Inhalt "R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment." geht nicht?
Ich möchte nun in einer anderen Spalte lediglich die Zahl ausgeben, dh am Beispiel oben. 51/53.
Wenn ALLE Zellen IMMER mit Text mit dem Muster "R??/??: " beginnen, kannst Du das recht einfach entweder mit einem regulären Ausdrücken oder einigen Stringoperationen herausbasteln.
MfG,
EKKi
Hallo paula,
R36/38: R36/38 Irritating to eyes and skin.;R51/53: R51/53 Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment.
Diese Angaben stehen so in EINER Zelle.
hier ist eine von vielen Möglichkeiten per VBA:
Sub Aufteilen()
Dim lngZ As Long, lngLZ As Long
Dim intS As Integer
Dim strText As String, strTemp As String
Dim arrTemp
'Letzte ausgefüllte Zelle in Spalte 1 suchen:
lngLZ = Cells(Rows.Count, 1).End(xlUp).Row
'Von Zeile 2 bis zur letzten ausgefüllten Zelle in Spalte A durchlaufen:
For lngZ = 2 To lngLZ
strText = Cells(lngZ, 1)
'Wenn ein Doppelpunkt enthalten ist:
If InStr(1, strText, ": ") > 0 Then
If InStr(1, strText, ".;") = 0 Then
'Wenn nur ein Satz enthalten ist:
Cells(lngZ, 2) = R_Extract(strText)
Else
'Bei mehreren Sätzen:
arrTemp = Split(strText, ".;")
strTemp = ""
For intS = 0 To UBound(arrTemp)
If intS = 0 Then
strTemp = R_Extract(arrTemp(intS))
Else
strTemp = strTemp & ";" & R_Extract(arrTemp(intS))
End If
Next
Cells(lngZ, 2) = strTemp
End If
End If
Next
End Sub
Function R_Extract(ByVal strText As String)
Dim arrTemp
R_Extract = ""
If strText = "" Then Exit Function
If InStr(1, strText, ":") = 0 Then Exit Function
arrTemp = Split(strText, ": ")
R_Extract = arrTemp(0)
End Function
Viele Grüße
Jörg
Hallo Jörg,
DANKE DANKE DANKE DANKE!! Dein Makro funktioniert super! Es ist eine große Hilfe. Ich habe es bereits abgewandelt für eine ähnliche Fragestellung im Einsatz.
Schöne Grüße
Hallo paula,
DANKE DANKE DANKE DANKE!! Dein Makro funktioniert super! Es ist eine große Hilfe. Ich habe es bereits abgewandelt für eine ähnliche Fragestellung im Einsatz.
schön, das freut mich.
Nur noch ein kleiner Tipp: Bitte beim nächsten Mal die Excel-Version angeben, denn das läuft erst ab 2000. Darunter müsste eine Fehlermeldung kommen.
Schönes Wochenende
Jörg