Doppelte Einträge
Moderator: Moderatoren
Doppelte Einträge
Hallo,
ich habe eine CSV-Datei, die ich in eine Datenbank imporitern möchte. Sie sieht in etwa so aus (Spalte B):
Consumer electronics!Lautsprecher!Lautsprecher Zubehör
Consumer electronics!Digital Imaging!Digitalkameras < = 10 Megapixel
PC / Server!POS System!POS System
Telekommunikation!Mobile Telekommunikation!Mobiltelefon
Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / Mikrofone Zubehör
Speicherloesungen / Streamer!optische Storageloesung!optische Storageloesung
Was störrt, ist wenn Kategrien länger sind als 30 Zeichen:
Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / Mikrofone Zubehör
Hier also die folgenden Kategorien:
>>Consumer electronics
>>Headsets / Kopfhörer / Mikrofone Zubehör
>>Headsets / Kopfhörer / Mikrofone Zubehör
ich möchte das so umwandeln:
>>Consumer electronics
>>Headsets / Kopfhörer / M.
>>Headsets / Kopfhörer /M.
in der Spalte dann so:
Ich muß also die Spalte B nach doppelten Einträgen, nach dem ersen Ausrufezeichen, duchsuchen und den zweiten Eintrag dann am ende mit einem _ versehen. Die Hauptkategorie ist nie doppelt, daß muß nicht berücksichtigt werden. Wie kann ich das anstellen?Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / M.
Es kann auch vorkommen das in der 2. Unterkategorie zu lange Namen verwendet werden. Auch die müßten umgewandelt werden.
Gruß Nixdorf
ich habe eine CSV-Datei, die ich in eine Datenbank imporitern möchte. Sie sieht in etwa so aus (Spalte B):
Consumer electronics!Lautsprecher!Lautsprecher Zubehör
Consumer electronics!Digital Imaging!Digitalkameras < = 10 Megapixel
PC / Server!POS System!POS System
Telekommunikation!Mobile Telekommunikation!Mobiltelefon
Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / Mikrofone Zubehör
Speicherloesungen / Streamer!optische Storageloesung!optische Storageloesung
Was störrt, ist wenn Kategrien länger sind als 30 Zeichen:
Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / Mikrofone Zubehör
Hier also die folgenden Kategorien:
>>Consumer electronics
>>Headsets / Kopfhörer / Mikrofone Zubehör
>>Headsets / Kopfhörer / Mikrofone Zubehör
ich möchte das so umwandeln:
>>Consumer electronics
>>Headsets / Kopfhörer / M.
>>Headsets / Kopfhörer /M.
in der Spalte dann so:
Ich muß also die Spalte B nach doppelten Einträgen, nach dem ersen Ausrufezeichen, duchsuchen und den zweiten Eintrag dann am ende mit einem _ versehen. Die Hauptkategorie ist nie doppelt, daß muß nicht berücksichtigt werden. Wie kann ich das anstellen?Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / M.
Es kann auch vorkommen das in der 2. Unterkategorie zu lange Namen verwendet werden. Auch die müßten umgewandelt werden.
Gruß Nixdorf
Re: Doppelte Einträge
Hallo nixdorf,
ich hab mir jetzt mal die Muse genommen und mich durch Deine Angaben gewurschtelt
also, ich hab mal angenommen, daß immer ein "!" eine neue Kategorie beginnen läßt und eine Zeile immer zusammen gehört. Stimmt das so?
Darauf aufbauend hab ich dann den Umwandelspaß in der angehängten Datei gebaut. Schauen wir uns es mal an:
Als erstes hab ich mit der Text2Columns-Erweiterung http://ooomacros.sourceforge.net/user.php#104183 (für mich im Grunde ein Muß!) den Spaltentext nach "!" durchsucht und mir einzelne Spalten machen lassen. Dann schau ich in Spalte G, ob es in der Spalte C (wo meiner Meinung nach die ersten Unterkategorien stehen sollten) ein "/" gibt. Wenn nein, ist es mir egal, wenn ja, vergleich ich die nächsten 15 Stellen nach eben diesem "/" mit genau der Stelle in Spalte D. Ist dies identisch, laß ich mir eine 1 wiedergeben, um diese Zeile zu markieren.
Spalte E und F bilden darauf aufbauen die neuen Unterkategorie-Überschriften. In Spalte E nehm ich einfach die ersten 25 Stellen von Links, in Spalte F laß ich die Formel schauen, ob in Spalte G eine 1 Steht (also der Vergleich der beiden Kategorien erfolgreich war). Wenn dem nicht so war, nehm ich wieder einfach die ersten 25 Stellen, wenn beide Kategorien gleich waren, häng ich an die ersten 25 Stellen mit Verketten() noch ein "_" dran.
Du hast also in Spalte E und F die neuen Kategorieüberschriften, die Du nun kopieren kannst und mit Strg+Shift+V und Haken bei Zeichenketten (und vor allem kein Haken bei Formel!!!) in Deine Tabelle kopieren kannst, die dann importiert werden soll.
Da ich Deine CSV-Datei nicht kenne, wie die Daten letztlich ausschauen müssen, ist das hier meiner Meinung nach mal einen Weg, wie Du die Überschriften umbasteln kannst und den Du jetzt dann entsprechend Deinen Bedürfnissen anpassen solltest.
Bei Fragen helf ich gerne weiter, wenn ich kann!
Viele Grüße
AhQ
ich hab mir jetzt mal die Muse genommen und mich durch Deine Angaben gewurschtelt

also, ich hab mal angenommen, daß immer ein "!" eine neue Kategorie beginnen läßt und eine Zeile immer zusammen gehört. Stimmt das so?
Darauf aufbauend hab ich dann den Umwandelspaß in der angehängten Datei gebaut. Schauen wir uns es mal an:
Als erstes hab ich mit der Text2Columns-Erweiterung http://ooomacros.sourceforge.net/user.php#104183 (für mich im Grunde ein Muß!) den Spaltentext nach "!" durchsucht und mir einzelne Spalten machen lassen. Dann schau ich in Spalte G, ob es in der Spalte C (wo meiner Meinung nach die ersten Unterkategorien stehen sollten) ein "/" gibt. Wenn nein, ist es mir egal, wenn ja, vergleich ich die nächsten 15 Stellen nach eben diesem "/" mit genau der Stelle in Spalte D. Ist dies identisch, laß ich mir eine 1 wiedergeben, um diese Zeile zu markieren.
Spalte E und F bilden darauf aufbauen die neuen Unterkategorie-Überschriften. In Spalte E nehm ich einfach die ersten 25 Stellen von Links, in Spalte F laß ich die Formel schauen, ob in Spalte G eine 1 Steht (also der Vergleich der beiden Kategorien erfolgreich war). Wenn dem nicht so war, nehm ich wieder einfach die ersten 25 Stellen, wenn beide Kategorien gleich waren, häng ich an die ersten 25 Stellen mit Verketten() noch ein "_" dran.
Du hast also in Spalte E und F die neuen Kategorieüberschriften, die Du nun kopieren kannst und mit Strg+Shift+V und Haken bei Zeichenketten (und vor allem kein Haken bei Formel!!!) in Deine Tabelle kopieren kannst, die dann importiert werden soll.
Da ich Deine CSV-Datei nicht kenne, wie die Daten letztlich ausschauen müssen, ist das hier meiner Meinung nach mal einen Weg, wie Du die Überschriften umbasteln kannst und den Du jetzt dann entsprechend Deinen Bedürfnissen anpassen solltest.
Bei Fragen helf ich gerne weiter, wenn ich kann!
Viele Grüße
AhQ
- Dateianhänge
-
- doppelteEinträge.zip
- in ods umbenennen
- (8 KiB) 33-mal heruntergeladen
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Doppelte Einträge
Hallo Nixdorf & AhQ,
dieses Thema der "OOo-Hilfe" sollte weiterhelfen :
mfg
Gert
dieses Thema der "OOo-Hilfe" sollte weiterhelfen :
Code: Alles auswählen
csv-Dateien;importieren und exportieren
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Doppelte Einträge
Hallo Gert,
Viele Grüße
AhQ
Steht die Lösung für diese Frage wirklich bei CSV Importieren und Exportieren in der OOo-Hilfe?nixdorf hat geschrieben:
Ich muß also die Spalte B nach doppelten Einträgen, nach dem ersen Ausrufezeichen, duchsuchen und den zweiten Eintrag dann am ende mit einem _ versehen. Die Hauptkategorie ist nie doppelt, daß muß nicht berücksichtigt werden. Wie kann ich das anstellen?Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / M.
Viele Grüße
AhQ
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Doppelte Einträge
Hallo AhQ,
hab ich wohl falsch interpretiert. Mir ging es um das Trennzeichen "/", das ja entsprechend eingestellt werden kann.
Wird beim import der Tabelle "/" als Trennzeichen eingetragen, erhält jede Spalte einen "Titel".
Spalte_A =Consumer electronics; Spalte_B = Headsets; Spalte_C = "Kopfhörer" usw.
Oder sehe ich das falsch ?
mfg
Gert
hab ich wohl falsch interpretiert. Mir ging es um das Trennzeichen "/", das ja entsprechend eingestellt werden kann.
Wird beim import der Tabelle "/" als Trennzeichen eingetragen, erhält jede Spalte einen "Titel".
Spalte_A =Consumer electronics; Spalte_B = Headsets; Spalte_C = "Kopfhörer" usw.
Oder sehe ich das falsch ?
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Doppelte Einträge
Hallo Nxdorf
Nach der Installation erscheint TexttoColumns als Symbol in der Symbolleiste das etwa so aussieht: '=|='
Gruß Karo
http://ooomacros.sourceforge.net/user.php#104183 runterladen, und zum einbinden Doppelklick auf die Datei.Gast hat geschrieben: ja, es muß nicht nach den "/" als Tennzeichen gesucht werden. Es sind die "!". So das sich aus:
Spalte A: Consumer electronics!Headsets / Kopfhörer / Mikrofone!Headsets / Kopfhörer / Mikrofone Zubehör
folgende neue Spalten ergeben sollten:(wie mache ich das? benötige ich eine Extension? wie binde ich diese ein?)
geht ebenfalls mit TexttoColumns.Gast hat geschrieben: Spalte B: Consumer electronics! Spalte C: Kopfhörer / Mikrofone Spalte D: Headsets / Kopfhörer / Mikrofone Zubehör
Dann müsten die Spaltenbreien auf eine maximale Anzahl von Buchstaben (30) gekürzt werden.(wie kürze ich die Spalten auf max 30 Buchstaben?
Nach der Installation erscheint TexttoColumns als Symbol in der Symbolleiste das etwa so aussieht: '=|='
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Doppelte Einträge
Hallo Nixdorf,
in einer Zusatzspalte mit Links(VerweisAufDieZelle;30) schneidest Du den Zellentext auf 30 Zeichen ab. Findest Du auch in meinem Beispiel für Dich.
Viele Grüße
AhQ
in einer Zusatzspalte mit Links(VerweisAufDieZelle;30) schneidest Du den Zellentext auf 30 Zeichen ab. Findest Du auch in meinem Beispiel für Dich.
Viele Grüße
AhQ
Re: Doppelte Einträge
Hallo
Ich misch mich grad mal hier ein,- du möchtest doch vmtl. eine ganze Spalte auf 30 Zeichen einkürzen ?-
Wenn ja, dann markier diese Spalte, ruf nochmal TexttoColums auf, und nimm die Option [x]feste Spaltenbreite
(links oben im Dialog)
Danach wählst du die Spaltenbreite mit einem Klick ins Vorschau-fenster.
Hinterher löscht du dann die enstandene Spalte mit den restlichen Zeichen.
Gruß Karo
Ich misch mich grad mal hier ein,- du möchtest doch vmtl. eine ganze Spalte auf 30 Zeichen einkürzen ?-
Wenn ja, dann markier diese Spalte, ruf nochmal TexttoColums auf, und nimm die Option [x]feste Spaltenbreite
(links oben im Dialog)
Danach wählst du die Spaltenbreite mit einem Klick ins Vorschau-fenster.
Hinterher löscht du dann die enstandene Spalte mit den restlichen Zeichen.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Doppelte Einträge
Hallo Nixdorf,
also, nehmen wir mal an, Du hast jetzt die Spalten A, B und C, in Zeile 1 stehen jeweils die Überschriften. Du willst jetzt den Inhalt der Spalte B bei 30 Zeichen abschneiden. Dann schreibst Du in Zelle D2 =Links(b2;30) und ziehst das über die gesamte Länge Deiner Tabelle nach unten. Jetzt hast Du in Spalte D den Inhalt der Spalte B, nur nach 30 Zeichen ist Schluß. Spalte D markierst Du jetzt und kopierst sie. Damit hast Du jetzt im Zwischensoeicher die Überschriftennamen auf 30 Zeichen gekürzt. Wenn Du die irgendwo hinkopieren willst, drückst Du (im OpenOffice zumindest) auf Strg+Shift+V und wählst nur den Haken bei Zeichenketten. Dann sollte es passen.
Oder Du machst es so, wie Karolus gerade schreibt. Einfach und durchaus effektiv...
Viele Grüße
AhQ
@Karolus
Danke fürs Einmischen, Dein Weg ist wahrlich der Einfachere... Hab ich mal wieder ztu kompliziert gedacht
also, nehmen wir mal an, Du hast jetzt die Spalten A, B und C, in Zeile 1 stehen jeweils die Überschriften. Du willst jetzt den Inhalt der Spalte B bei 30 Zeichen abschneiden. Dann schreibst Du in Zelle D2 =Links(b2;30) und ziehst das über die gesamte Länge Deiner Tabelle nach unten. Jetzt hast Du in Spalte D den Inhalt der Spalte B, nur nach 30 Zeichen ist Schluß. Spalte D markierst Du jetzt und kopierst sie. Damit hast Du jetzt im Zwischensoeicher die Überschriftennamen auf 30 Zeichen gekürzt. Wenn Du die irgendwo hinkopieren willst, drückst Du (im OpenOffice zumindest) auf Strg+Shift+V und wählst nur den Haken bei Zeichenketten. Dann sollte es passen.
Oder Du machst es so, wie Karolus gerade schreibt. Einfach und durchaus effektiv...

Viele Grüße
AhQ
@Karolus
Danke fürs Einmischen, Dein Weg ist wahrlich der Einfachere... Hab ich mal wieder ztu kompliziert gedacht

Re: Doppelte Einträge
Hallo AhQ
Kompliziert ist die Formellösung ja auch nicht, ich hab die Möglichkeit, mit TexttoColumns feste Spaltenbreiten zu setzen, auch nur deshalb nochmal erwähnt, weil Nixdorf meinen vorherigen Beitrag offenbar nicht vollständig gelesen hat
Gruß Karo
Kompliziert ist die Formellösung ja auch nicht, ich hab die Möglichkeit, mit TexttoColumns feste Spaltenbreiten zu setzen, auch nur deshalb nochmal erwähnt, weil Nixdorf meinen vorherigen Beitrag offenbar nicht vollständig gelesen hat

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Doppelte Einträge
Hallo Nixdorf,
was meinst Du mit "wie so eine Formel aussieht"? Meinst Du wirklich, wie eine Formel im OOo aussieht?
Magst Du uns mal eine solche Datei hier hochladen? Dann schauen wir uns das Kind mal an... Man kann hier aber nur zips hochladen, also benenn die Datei am Besten einfach in .zip um.
Viele Grüße
AhQ
was meinst Du mit "wie so eine Formel aussieht"? Meinst Du wirklich, wie eine Formel im OOo aussieht?
Magst Du uns mal eine solche Datei hier hochladen? Dann schauen wir uns das Kind mal an... Man kann hier aber nur zips hochladen, also benenn die Datei am Besten einfach in .zip um.
Viele Grüße
AhQ
Re: Doppelte Einträge
Hallo Nixdorf,
also, Du kannst nicht in eine Zelle einen Wert fest reinschreiben und den in der gleichen Zelle mit einer Formel verändern. Das geht nicht. Was geht, das wäre, daß Du in einer Hilfsspalte eine Formel schreibst (was soviel wie der von Dir gewünschte Befehl wäre), die die gewünschte Veränderung vornimmt und du entweder mit dieser Spalte weiter arbeitest oder dann die Ergebnisse der Spalte in die Ursprungstabelle zurück kopierst. Wie das geht haben wir Dir hier schon erklärt Die Formel ist immer noch =Links(FeldMitDemText;30).
Aber wo liegt jetzt eigentlich das Problem? Hast Du denn schon mal das, was Karolus oder ich Dir vorgeschlagen haben, ausprobiert? ich muß zugeben, allmählich bin ich mit meinem Latein hier am Ende und weiß nicht genau, ob wir aneinander vorbei reden.
Viele Grüße
Ahq
also, Du kannst nicht in eine Zelle einen Wert fest reinschreiben und den in der gleichen Zelle mit einer Formel verändern. Das geht nicht. Was geht, das wäre, daß Du in einer Hilfsspalte eine Formel schreibst (was soviel wie der von Dir gewünschte Befehl wäre), die die gewünschte Veränderung vornimmt und du entweder mit dieser Spalte weiter arbeitest oder dann die Ergebnisse der Spalte in die Ursprungstabelle zurück kopierst. Wie das geht haben wir Dir hier schon erklärt Die Formel ist immer noch =Links(FeldMitDemText;30).
Aber wo liegt jetzt eigentlich das Problem? Hast Du denn schon mal das, was Karolus oder ich Dir vorgeschlagen haben, ausprobiert? ich muß zugeben, allmählich bin ich mit meinem Latein hier am Ende und weiß nicht genau, ob wir aneinander vorbei reden.
Viele Grüße
Ahq