Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Finden mehrerer Zeichen in einer Zellel

Finden mehrerer Zeichen in einer Zellel
21.07.2021 16:22:15
Lange
Ich grüße die Freunde intelligenter Tabellen mit vielen Funktionen, die die restliche Welt in Erstaunen versetzen!
Meine aktuelle Excel Herausforderung hat jetzt den Punkt erreicht, wo ich passen muss... Wie kann ich mehrere gesuchte Zeichengruppen in einer Zelle finden und ausgeben? Um die Fragestellung zu verdeutlichen, hier ein vereinfachtes Beispiel:
A1: 01.01.2020 ML/ Das Auto ist grün 05.02.2020 BA /Der Himmel ist blau 07.03.2020 ASL/Die Straße ist schwarz
Das gewünschte Ergebnis soll jetzt lauten: A2: ML, A3: BA, A4: ASL
Natürlich geht die Liste dann bei A2 mit dem nächsten Eintrag weiter und dann immer noch weiter.
Es geht also immer um die zwei Zeichen (oder drei, wenn es ein Freizeichen gibt, oder sogar vier bei drei Buchstaben und einem Freizeichen) links vom "/". Blöderweise halten sich manche Mitarbeiter nicht an übliche Formatierungen.
Erschwerend kommt hinzu, dass die Anzahl der Personen, die sich mit einem Auftrag beschäftigen, variabel ist. Es gibt also Aufträge, um die hat sich nur ein Mitarbeiter gekümmert (das aber vielleicht dann drei Mal) und andere, mit denen fünf Personen beschäftigt worden sind.
Auch ist Anzahl der möglichen Mitarbeiter, die sich um einen Auftrag kümmern können, recht hoch und durch Personalfluktuation dazu auch noch ständig in Veränderung. Ich habe den Versuch aufgegeben, eine Liste zu führen, die alle möglichen Buchstabenkombinationen enthält.
Warum das Ganze? Ich finde es immer schön zu wissen, für was etwas ist. In diesem Fall wird aus einem Ticketprogramm eine Exportdatei für Excel gezogen. Der gesamte Text eines Auftrages wird bei diesem Export in eine einzige Zelle gebracht und eine Datei umfasst normalerweise einen Zeitraum, in dem ca. 2000 Aufträge erzeugt worden sind. Für eine statistische Auswertung werden nun von jedem einzelnen Auftrag die Initialen aller Mitarbeiter, eben die zwei oder drei Buchstaben vor dem "/", gesucht. Am Ende soll dann ermittelt sein, wie oft ein Mitarbeiter in der Auftragsliste etwas tun musste, bzw. etwas getan hat. So sollen Schwachpunkte in unserer Auftragsabwicklung gefunden werden.
Ob man die Lösung nun mit Formeln oder per VBA erreicht, ist egal... ich für mein Teil bin wirklich ratlos und glaube nicht mehr so recht daran, das man mit Excel hier weiterkommt. Alleine schon das finden von mehr als einer Zeichenfolge in einer einzigen Zelle scheint unlösbar zu sein. Doch vielleicht hat hier einer der geneigten Leser ja DIE Idee.
Auf jeden Fall bedanke ich mich schon einmal für die bis hierher geleistete Aufmerksamkeit und verbleibe in aufgeregter Hoffnung
Martin Lange

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Finden mehrerer Zeichen in einer Zellel
21.07.2021 16:32:30
Daniel
HI
in A2 und dann nach unten ziehen:

=WENNFEHLER(GLÄTTEN(TEIL($A$1;FINDEN("|";WECHSELN($A$1;"/";"|";ZEILE(A1)))-3;3));"")
aber deine nachfolgdenen Bescheibung wäre es sinnvoller, die Formel in B1 zu schreiben und nach rechts zu ziehen.
dann musst du "Zeile(A1)" durch "Spalte(A1)" ersetzen.
der Trick ist hier, dass man das mehrfach vorkommende Zeichen "/" an der aktuell gesuchten Stelle durch ein anderes Zeichen ersetzt, welches so im Text nicht vorkommt. Dieses Zeichen ist dann eindeutig, so dass danach gesucht werden kann.
Beim ersetzen mit WECHSELN kann man angeben, dass man nur das 1, 2, 3. usw Vorkommen eines Zeichens austauschen will und nicht alle.
Gruß Daniel
Anzeige
AW: Finden mehrerer Zeichen in einer Zellel
22.07.2021 14:31:20
Martin
Zunächst einmal muss ich mich bei Daniel und Fennek herzlich bedanken - so schnell eine kompetente und auf den Punkt gebrachte Antwort, ich war, bin sehr beeindruckt. Natürlich bin ich auch deprimiert, dass ein von mir als "unmöglich" deklariertes Problem von der Gemeinschaft hier in Minuten faktisch gelöst worden ist - aber mein Ego wird das überleben.
Ich beschäftige mich jetzt erst einmal mit der Formel und melde alsbald, wie es läuft.
AW: Finden mehrerer Zeichen in einer Zellel
27.07.2021 15:08:30
Martin
Hallo noch einmal. Ich hatte jetzt endlich die Zeit, mit der Formel von Daniel zu arbeiten und zu verstehen. Funktioniert sehr gut. Es gibt zwar auch ein paar falsche Treffer (weil gewisse Mitarbeiter sich einfach nicht an Regeln halten können) - aber die kann man wegfiltern. Da aber die Lösung für mein "unlösbares" Problem so unfassbar schnell da war, war wohl die Herausforderung zu niedrig.... ich werde diesen Gedanken für die Zukunft im Hinterkopf behalten.
Fürs erste aber noch eine Frage zu dieser Formel hier - quasi als Zuckerguss für die fertige Torte.
Es werden jetzt alle Initialen gefunden, die in der Zelle A1 stehen und in B1, C1, D1, etc. ausgegeben (nach rechts ziehen war übrigens auch deutlich besser als runter - auch dafür Danke, Daniel). Hier gibt es aber verschiedene Möglichkeiten:
1. Zwei Buchstaben ohne Freizeichen direkt an dem "/"
2. Zwei Buchstaben mit Freizeichen zu dem "/"
3. Drei Buchstaben ohne Freizeichen direkt an dem "/"
4. Drei Buchstaben mit Freizeichen zu dem "/".
Dieser letzte Fall, der macht ein wenig Ärger.
Als Lösung habe ich aus dem "-3;3" einfach "-4,3" gemacht. Das hat auch funktioniert - aber leider nur für für den Fall 4 selbst . Die Fälle 1 bis 3 sind jetzt unschön, da schon ein Zeichen rechts von Initialen mit dabei ist.
Könnte man die ursprüngliche Formel von Daniel noch irgendwie modifizieren?
Ich habe mal eine Beispielsdatei hochgeladen (https://www.herber.de/bbs/user/147332.xlsx)
In A sind Beispieldatensätze mit dem Text aus dem Export aus unserem Ticketprogramm. Die gelb markierten Felder sind diejenigen, die auf "Fall 4" zutreffen
Anzeige
AW: Finden mehrerer Zeichen in einer Zellel
27.07.2021 16:14:09
Daniel
Lösche doch einfach das Leerzeichen vor dem "/", wenn denn vorkommt.
Erweitere hierzu die Formel um ein zusätzliches Wechseln,
also statt $A$1 dann Wechseln($A$1;" /";"/").
Wenn auch Kollegen gibt, die da mehrere Leerzeichen einbauen, nimm ein zusätzliches Glätten:
also statt $A$1 dann Wechseln(Glätten($A$1);" /";"/")
Und das überall, wo das $A$1in der Formel vorkommt (natürlich nicht bei Spalte(A1))
Gruß Daniel
Regex?
27.07.2021 16:37:20
Yal
Hallo zusammen,
es scheint die typische RegEx-Aufgabe zu sein. Davor steht ein Datum in DD.MM.YYYY dahinter einen "/"
RegEx ist "[0123][0-9]\.[01][0-9]\.2\d{3}\s*([a-zA-Z]{1,3})\s?\/" (auf regex101.com getestet: https://regex101.com/r/r1CcR1/1 )
Also als UDF (User Defined Function) in einem Modul abzulegen (nicht in Worksheet-Codepane!):

Public Function Mitarbeiter(Target, Optional Index As Long = 1) As String
Dim objRegEx As Object
Dim objMatch As Object
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.Global = True
.IgnoreCase = True
.Pattern = "[0123][0-9]\.[01][0-9]\.2\d{3}\s*([a-zA-Z]{1,3})\s?\/"
Set objMatch = .Execute(Target.Value)
End With
On Error Resume Next
Mitarbeiter = objMatch.Item(Index - 1).submatches(0)
Set objRegEx = Nothing
Set objMatch = Nothing
End Function
Aufgerufen kann in
A2 mit = Mitarbeiter (A$1;1)
A3 mit = Mitarbeiter (A$1;2)
A4 mit = Mitarbeiter (A$1;3)
usw.
VG
Yal
Anzeige
AW: Finden mehrerer Zeichen in einer Zellel
21.07.2021 16:33:39
Fennek
Hallo,
mit dem String in A1 geht:

Sub NZ()
Dim Tx, Ty
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Tx = Split(Cells(i, 1), "/")
For b = 0 To UBound(Tx) - 1
Ty = Split(Trim(Tx(b)))
Cells(i, 3 + b) = Ty(UBound(Ty))
Next b
Next i
End Sub
mfg

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige