Anzeige
Archiv - Navigation
1664to1668
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

Matrix, verschiedene Zeichen suchen, Text lesen

Matrix, verschiedene Zeichen suchen, Text lesen
04.01.2019 22:28:35
dhue
Hallo Forum-Mitglieder,
ich habe ein Problem wofür ich bisher keine Lösungen gefunden habe. Es soll eine Fomel- bzw. Matrix-Lösung (bitte kein VBA oder Makro) erstellt werden. Ich bekomme einen Datenstamm aus einem ERP System in Excel exportiert. Diese Datensätze sollen für die weitere Benutzung aufgelöst und nach verschiedenen Zeichen gesucht werden. Der Datenaufbau ist exemplarisch wie folgt:
Spalte A
A1 Schraube M4-12AB
A2 Schraube-M6 AC23
A3 M8_Bolzen 1234
A4 XX#Mutter-M10_AE
A5 M10_Mutter-AE#89
Leider gibt es keinen einheitlichen Schlüssel und er kann bei einem gleichen Artikel von Zeit zu Zeit auch noch variieren. Gerne hätte ich die Daten in Excel wie folgt sortiert:
Spalte B Spalte C Spalte D
Schraube M4 12AB
Schraube M6 AC23
Bolzen M8 1234
Mutter M10 AE XX
Mutter M10 AE 89
Mein Ansatz ist es, nach dem ersten und zweiten Wunsch-Zeichen zu suchen und den Text dazwischen auslesen. Da die Suchzeichen aber immer unterschiedlich sind, hatte ich an eine Suchmatrix für verschiedene Zeichen gedacht, wobei ich diese Zeichen frei variieren kann. Also:
Suchmatrix A / Finde Zeichen 1 im Text:
B1 „ „ (Zeichen(32))
B2 _
B3 -
B4 #
Suchmatrix B / Finde Zeichen 2 im Text:
C1 „ „ (Zeichen(32))
C2 _
C3 -
C4 #
Lese dann dazwischen den Text aus. Das Ganze analog für die weiteren Zeichen bzw. Spalten. Experimentiert habe ich mit:
={WENN(SUMME(--ISTZAHL(FINDEN(B$1:B$5;$A1;1)))>0;"Treffer";"nichts gefunden")}
~f~
Die Formel/Matrix findet zwar die Zeichen im Text, aber nicht die jeweilige Stelle
.
~f~
={WENNFEHLER(TEIL($A1;(WENNFEHLER(FINDENB(B$1:B$4;$A1;SUCHENB(B$1:B$4;$A1;Länge?));"Err"));“Err“); "") }
Die Formel/Matrix findet immer nur das erste Zeichen der Matrix, nicht aber die anderen möglichen Suchzeichen, und bei der Textlänge komme ichauch nicht weiter.
Ich bin für Ideen oder Lösungsvorschläge, gerne auch mit anderen Funktionen dankbar. Im äußersten Fall aber auch als VBA, da nur Grundkenntnisse vorhanden sind. PS., das Thema Leerzeichen (32), geschützte Leerstellen (160) und Glätten() habe ich mir in dem Zusammenhang auch schon angeschaut.
Danke vorab
dhue

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrix, verschiedene Zeichen suchen, Text lesen
04.01.2019 23:19:21
onur
Formeln sind wie ein Schweizer Offiziersmesser, man kann mit ihnen Kleinigkeiten schnell erledigen, aber keiner würde nur mit ihm ein Haus bauen oder einen total kaputten Motor reparieren.
Irgendwie würde es früher oder später vielleicht klappen, aber die Formel wäre ellenlang, total unübersichtlich und nicht gegen alle Eventualitäten sicher.
Mit VBA wäre es ein Klax - warum also nicht mit VBA?
AW: Matrix, verschiedene Zeichen suchen, Text lesen
04.01.2019 23:58:07
dhue
Hallo onur,
Okay, wenn es mit VBA eine einfach Lösung gibt, dann muss ich meine Vorbehalte sicherlich revidieren.
Sofern du hierfür eine Routine hast, schau ich diese mir auch gerne an. Selber fehlen mir leider die Kenntnisse um eine solche Routine von Grund auf zu erstellen. Die Anpassung einer Vorlage traue ich mir aber durchaus zu.
Gruss
dhue
Anzeige
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 00:00:27
onur
Dann poste doch mal eine Musterdatei, wo man auch für die verschiedenen Fälle sehen kann, wie das Ergebnis aussehen soll.
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 11:03:21
dhue
Anbei ist die Datei mit einem Auszug aus dem Datenstamm, Hinweise sowie der Wunschauswertung.
Hast du nicht etwas vergessen, dhue...? ;-] owT
05.01.2019 12:27:08
Luc:-?
:-?
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 13:07:43
onur
WO denn?
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 17:24:41
dhue
Sorry, die Datei hatte ich heute morgen hochgeladen, mir aber den Hinweis nicht notiert bzw. gemerkt.
Habe die Datei jetzt nochmals hochgeladen.
Die Datei Datenstamm auswertung v01.xlsx wurde erfolgreich zum Server hochgeladen und in 126509.xlsx umbenannt.
https://www.herber.de/bbs/user/126509.xlsx
Anzeige
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 18:03:34
dhue
Ich bin übrigens mit Funktionen indirekt auch etwas weiter gekommen. Brauche dafür aber eine Vielzahl an Hilfsspalten und habe völlig unübersichtliche Formeln. Da muss nur mal eine Zeile/Spalte zufällig geändert werden und das Konstrukt bricht zusammen. Macht also kaum einen Sinn, wenn es variable bleiben soll. Somit bleibt dann sicherlich nur VBA übrig.
Ersetze erst alle möglichen Zeichnen (- X _ # ( / "space") usw.gegen ein Leerzeichen(32). Nutze dafür jeweils eine eigene Zelle.
=GLÄTTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN($B23;$F$8;$F$17); $F$9;$F$17);$F$10;$F$17);$F$11;$F$17);$F$12;$F$17);$F$13;$F$17);$F$14;$F$17);$F$15;$F$17)
~f~
Suchen dann das erste und das zweite Leerzeichen usw., jeweils in eigenen Spalten:
~f~
=WENNFEHLER(WENN(ODER(WENNFEHLER((X23)>=LÄNGE($F23);0);X23="Error";X23="");""; ((WENN(WENNFEHLER(FINDENB(Y$8;$F23;SUCHENB(Y$8;$F23;X23+1));0)>0;FINDENB(Y$8;$F23;SUCHENB(Y$8; $F23;X23+1));LÄNGE($F23)+1))));"Error")
Und lese dann dazwischen den Text aus:
=WENNFEHLER(TEIL($F23;1;W23);"")
Anzeige
AW: Matrix, verschiedene Zeichen suchen, Text lesen
05.01.2019 18:23:02
onur
DAS kann ich dir anbieten, aber alles andere ist schwierig, da die Rohdaten sich an keinerlei Regeln halten (Woran erkennt man Artikelbez. Verpackung usw).
https://www.herber.de/bbs/user/126511.xlsm
AW: Matrix, verschiedene Zeichen suchen, Text lesen
07.01.2019 22:56:08
dhue
Guten Abend,
vorneweg, vielen Dank für die VBA-Routine.
Diese kurze Schleife erstellt auf einfache Weise genau die Aufteilung, die ich als Basis benötige. Ich denke, das Thema VBA muss ich mir doch näher anschauen. Ist doch deutlich einfacher, als mit Funktionen und Hilfsspalten zu arbeiten, wenn man eben VBA Befehle kennt.
Wie ich auch schon vermutet hatte, erst alle möglichen Suchzeichen durch ein einheitliches Suchzeichen ersetzen. Dann den Text mittels For-Schleife aufspalten und im Tabellenblatt die Routine mit dem gewünschten Textteil ausgeben lassen. Damit hast du mir weitergeholfen. Gibt’s noch eine Möglichkeit, die Suchzeichen direkt aus einer Zelle einzulesen? So kann die Routine unverändert bleiben und ich kann im Tabellenblatt direkt Änderungen eingeben.
Bezogen auf deine Rückfrage:
Zu jedem dieser aufgeteilten Positionen gibt es wiederum eine numerische oder alphanumerische Tabelle mit der Bedeutung der jeweiligen Textteile. Diese Angaben sind leider nicht digital, sondern nur auf verschiedenen Zeichnungen/Dokumenten verfügbar. D.h., ich werde mir jetzt erstmal einige Matrixtabellen erstellen und dann je nach Serienbezeichnung die passenden Merkmaltabellen durchsuchen. In Abhängigkeit der Serienbezeichnungen haben die Merkmalpositionen allerdings unterschiedliche Bedeutungen.
Z.B.
Zeile Merkmal 3 Bedeutung
A15 605 Blau
A16 960 Grün
A17 450 Rot
A18 960 Gelb
aber
A23 CUZN Messing
Falls du hierzu noch einen Tipp hast, gerne. Ansonsten erstmal danke für die Unterstützung.
dhue
Anzeige
AW: Matrix, verschiedene Zeichen suchen, Text lesen
08.01.2019 23:00:04
dhue
Guten Abend,
vorneweg, vielen Dank für die VBA-Routine.
Diese kurze Schleife erstellt auf einfache Weise genau die Aufteilung, die ich als Basis benötige. Ich denke, das Thema VBA muss ich mir doch näher anschauen. Ist doch deutlich einfacher, als mit Funktionen und Hilfsspalten zu arbeiten, wenn man eben VBA Befehle kennt.
Wie ich auch schon vermutet hatte, erst alle möglichen Suchzeichen durch ein einheitliches Suchzeichen ersetzen. Dann den Text mittels For-Schleife aufspalten und im Tabellenblatt die Routine mit dem gewünschten Textteil ausgeben lassen. Damit hast du mir weitergeholfen. Gibt’s noch eine Möglichkeit, die Suchzeichen direkt aus einer Zelle einzulesen? So kann die Routine unverändert bleiben und ich kann im Tabellenblatt direkt Änderungen eingeben.
Bezogen auf deine Rückfrage:
Zu jedem dieser aufgeteilten Positionen gibt es wiederum eine numerische oder alphanumerische Tabelle mit der Bedeutung der jeweiligen Textteile. Diese Angaben sind leider nicht digital, sondern nur auf verschiedenen Zeichnungen/Dokumenten verfügbar. D.h., ich werde mir jetzt erstmal einige Matrixtabellen erstellen und dann je nach Serienbezeichnung die passenden Merkmaltabellen durchsuchen. In Abhängigkeit der Serienbezeichnungen haben die Merkmalpositionen allerdings unterschiedliche Bedeutungen.
Z.B.
Zeile Merkmal 3 Bedeutung
A15 605 Blau
A16 960 Grün
A17 450 Rot
A18 960 Gelb
aber
A23 CUZN Messing
Falls du hierzu noch einen Tipp hast, gerne. Ansonsten erstmal danke für die Unterstützung.
dhue
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige