Hi Ich suche nach einer Lösung mit der ich folgenges hinbekomme: In einem CSV, mit Doppelpunkt getrennt, steht zumeist in der ersten Spalte ein Betrag inkl. "€" Zeichen. Aufgabe: Sollte davor ein anderer Text stehen, soll dieser, wieder mit Doppelpunkt getrennt, ans Ende der Zeile verschoben werden (oder Notfalls gelöscht werden). Ziel ist auf jeden Fall, dass in der ersten Spalte der Euro Betrag steht. Beispiel: abc 123€:Austria 34€ bcd:Auto Hund:dfg 66€:Klaus cf 4321€ qwe:Radio:PC das Ergebnis sollte danach sein (Zeile 3): abc 123€:Austria 34€ bcd:Auto dfg 66€:Klaus:Hund cf 4321€ qwe:Radio:PC hat jemand einen Vorschlag?
So gut wie jede Programmiersprache kann CSV einlesen und dir ein Array oder ähnliches bereitstellen. Dann prüfst du alle Einträge entsprechend und schreibst es ins CSV zurück. Verstanden? Fertigen Code gibts hier nicht.
Darf mehr als nur ein Text mit : getrennt davor stehen? Hund:Katze:Maus:dfg 66€:Klaus Gruß WIRO
das sollte mit einem Editor mit Macro 'programmierung' gehen wie gross ist die datei(en) und wie viele sind es? VlG Charly
:
Bearbeitet durch User
Servus Freddy, ich würds mit Excel machen, wobei ich die gesamte Aufgabenstellung nicht vollständig verstanden habe bzw. das gewünschte Endergebnis. Was sind die Spalten, wie lautet der Trenner der Spalte, Leerzeichen, Tab, Doppelpunkt? Auch unklar: Aus Hund:dfg 66€:Klaus soll dfg 66€:Klaus:Hund werden. Soll dann aus abc 123€:Austria auch 123€:Austria:abc werden? Oder ist hier der : nach dem Hund ausschlaggebend, dass der Text nach hintern verschoben werden soll? Davon gehe ich meinem Ansatz jetzt mal aus, da du auf Zeile 3 extra hinweist. Hier bewusst ohne VBA-Makros Lies das erstmal ein, das Spalte A in jeder Zeile immer der gesamte Ausdruck steht. Siehe Bild: Erstmal den : suchen. =FINDEN(":";A2) Das € suchen: =FINDEN("€";A2) Feststellen ob, : vor € =WENN(C2>B2;"Ja";"Nein") Text teilen =TEIL(A2;1;B2-1) Text teilen =TEIL(A2;B2+1;100) Wieder zusammenbauen =WENN(D2="Ja";VERKETTEN(F2;":";E2);"") Gruß Andi
:
Bearbeitet durch User
WIRO schrieb: > Darf mehr als nur ein Text mit : getrennt davor stehen? > Hund:Katze:Maus:dfg 66€:Klaus > > Gruß > WIRO ja, kann vorkommen. alles sollte dann entweder nach hinten verschoben oder gelöscht werden: dfg 66€:Klaus:Hund:Katze:Maus oder eben nur dfg 66€:Klaus Schlaumaier schrieb: > Das bekommst du sogar in Excel hin. ;) Sollte sogar ohne Makro gehen. nein, das csv hat etwa 5 Millionen Zeilen
A. H. schrieb: > ich würds mit Excel machen, wobei ich die gesamte Aufgabenstellung nicht > vollständig verstanden habe bzw. das gewünschte Endergebnis. Ich auch nicht, weil sein Beispiel nicht zum Fragetext passt: FranticFreddy schrieb: > Ziel ist auf jeden Fall, dass in der ersten Spalte der Euro Betrag steht. Ich bin nicht der TO und habe das Problem auch nicht, finde Deinen Kommentar aber interessant. Du nutzt scheinbar "Finden()", magst Du Dein Beispiel mal als .xls hier reinstellen?
> Schlaumaier schrieb: >> Das bekommst du sogar in Excel hin. ;) Sollte sogar ohne Makro gehen. > > nein, das csv hat etwa 5 Millionen Zeilen man sed
Sid Greybeard schrieb: > man sed Guter Vorschlag. Das Kommando
1 | sed 's/\(^[^€]*\):\(.*\)/\2:\1/' |
konvertiert die Eingabe
1 | abc 123€:Austria |
2 | 34€ bcd:Auto |
3 | Hund:dfg 66€:Klaus |
4 | cf 4321€ qwe:Radio:PC |
5 | Hund:Katze:Maus:dfg 66€:Klaus |
wie gewünscht in
1 | abc 123€:Austria |
2 | 34€ bcd:Auto |
3 | dfg 66€:Klaus:Hund |
4 | cf 4321€ qwe:Radio:PC |
5 | dfg 66€:Klaus:Hund:Katze:Maus |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.