Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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

Text Trennen und einzelne Wörter zuordnen

Text Trennen und einzelne Wörter zuordnen
12.02.2019 08:51:25
Philipp
Hallo zusammen,
ich habe ein kleines Problem und finde keinen guten Ansatz es zu lösen.
Es geht darum, dass ich in Spalte A einen String habe der durch " " (Leerzeichen) getrennt ist. In Spalte B befindet sich ein weiterer String der durch _ (Underscore) getrennt ist.
Nun möchte ich das erste Wort in Spalte A dem ersten Wort in Spalte B zuordnen und in einem neuen Tabellenblatt in Zeile 1 schreiben. Das 2. Wort Spalte A zum 2. Wort Spalte B in Zeile 2, etc....
Das Ergebnis in Spalte B sollte dann noch innerhalb von #Ergebnis# stehen.
Ich habe es zwar hinbekommen über vba die Zellen zu teilen, das bringt jedoch nichts, da ich nachher nicht mehr automatisch die Zuordnung hinbekomme. Eigentlich muss dies in einem Schritt erfolgen.
Ich habe euch mal eine Beispieldatei angehängt und hoffe es kann mir jemand helfen. In Spalte A findet ihr die Daten, in Spalte B das erwartete Ergebnis.
https://www.herber.de/bbs/user/127592.xlsx
Grüße Philipp

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text Trennen und einzelne Wörter zuordnen
12.02.2019 09:03:32
PeterK
Hallo
Da du dich ja schon in VBA versucht hast, verwende die SPLIT Funktion, damit geht es ganz einfach
AW: VBA
12.02.2019 09:08:15
Fennek
Hallo,
versuche

REM  *****  BASIC  *****
option vbasupport 1
Sub Main
for i = 1 to cells(rows.count,1).end(xlup).row
Wo = split(cells(i,1)
Co = split(cells(i,2), "_")
lr = cells(rows.count,5).end(xlup).row + 1
cells(lr, 5).resize(ubound(Wo)+1) = application.transpose(Wo)
cells(lr, 6).resize(ubound(Wo)+1) = application.transpose(Co)
next i
End Sub
mfg
AW: ohne die ersten beiden Zeilen (owT)
12.02.2019 09:09:31
Fennek
AW: ohne die ersten beiden Zeilen (owT)
13.02.2019 06:41:00
Philipp
Hallo,
ich habe den Code in Visual Basic direkt in das Tabellenblatt kopiert und mehrere Fehler bekommen. Einige konnte ich beheben. Leider komme ich an einer Stelle nicht weiter. Beim ersten ubound kommt immer:
Fehler beim kompilieren. erwartet datenfeld
anbei der angepasste Code
Sub Main()
Dim i As Integer
Dim wo As Integer
Dim co As Integer
Dim lr As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
wo = Split(Cells(i, 1), " ")
co = Split(Cells(i, 2), "_")
lr = Cells(Rows.Count, 5).End(xlUp).Row + 1
Cells(lr, 5).Resize(UBound(wo) + 1) = Application.Transpose(wo)
Cells(lr, 6).Resize(UBound(wo) + 1) = Application.Transpose(co)
Next i
End Sub

Anzeige
AW: ohne die ersten beiden Zeilen (owT)
13.02.2019 06:42:08
Philipp
Hat du den Code an der Vorlage ausprobiert?
AW: KEIN Dim
13.02.2019 08:25:48
Fennek
Hallo,
an "Sub main" sieht man, dass es mit Libre Office getestet wurde.
Der Fehler liegt in den bei ZUGEFÜGTEN Dim für "wo" un "co": löschen die beiden "dim" und es sollte gehen.
mfg
AW: KEIN Dim
13.02.2019 11:09:28
Philipp
Hallo,
das VBA Script gibt zwar einen Fehler aus aber es funktioniert. Danke!
Jetzt habe ich nur ein Problemchen ;-(.
Ich habe festgestellt, dass es Werte gibt wo eine 1 zu n zuordnung gibt. d.h. Baum = A_B_C
Kann man da noch einen Counter oder sowas einfügen, der ausgibt wenn anzahl der wörter in Spalte 1 nicht mit der Anzahl in Spalte 2 übereinstimmt? Diese nicht anfasst oder besser sogar in ein separates Tabellenblatt schiebt?
Das Dokument hat 20000 Zeilen, da kann ich nicht händisch drüber fliegen...
Anzeige
AW: Ubound
13.02.2019 11:17:50
Fennek
prüfe, ob Ubound(wo) = Ubound(co) ist
AW: KEIN Dim
13.02.2019 11:20:50
Daniel
Hi
wenn du diese unpassenden Zeilen ausfiltern willst, dann schreibe in die Spalte C folgende formel
=(Länge(A1)-Länge(Wechseln(A1;" ";"")))=(Länge(B1)-Länge(Wechseln(B1;"_";"")))
dann bekommst du ein WAHR in allen Zeilen, in denen die Anzahl der Worte gleich der Anzahl der Buchstaben ist und ein FALSCH wo nicht
dann sortierst du die Tabelle nach dieser Spalte und kannst die Zeilen mit FALSCH als Block in ein anderes Tabellenblatt verschieben. und lässt danach erst das Makro laufen.
Gruß Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige