Spaltenbereinigung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

OZK
Beiträge: 3
Registriert: Fr, 12.01.2018 11:14

Spaltenbereinigung

Beitrag von OZK »

Hallo zusammen,

meine .csv Datei hat drei Spalten: Title, PropertyName und PropertyValue. Werte können mehrmals in der Spalte "Title" vorkommen. Die Spalte "PropertyName" beinhaltet Zellen mit mehrere verschiedene Werte (die mit einem "," voneinander innerhalb der Zelle getrennt sind und von Reihe zu Reihe oft in unterschiedliche Reihenfolgen stehen) die aber in der Reihenfolge immer mit den Werten die in der nächsten Spalte "PropertyValue" korrespondieren.

zB
Title;PropertyName;PropertyValue

Reihe1:

12345;Farbe,Größe,Gewicht;Blau,M,120

Reihe2:

12346;Größe,Farbe,Material,Gewicht;XS,Blau,Stoff,135

Reihe3:

12345;Colour,Size,Weight;Blue,M,120

etc.

Ich möchte die verschiedene PropertyName Werte in Spaltentitel umwandeln und die dazugehörige Werte aus PropertyValue in der richtigen Spalte einordnen.

Sodass aus obiges Beispiel folgendes Ergebnis geliefert wird:

Spaltenbeschriftung:

Title;Farbe;Größe;Gewicht;Material;Colour;Size;Weight

Reihen:

12345;Blau;M;120;0;Blue;M;120
12346;Blau;XS;135;Stoff;0;0;0

Wäre eine solche "Bereinigung" der csv Datei möglich?

Ein Screenshot von einer Beispieldatei habe ich hier angehängt. Die tatsächliche Datei die ich überarbeiten möchte (aber leider nicht im vollen hier hochladen kann) hat mehrere hundert unterschiedliche Werte in der Spalte PropertyName und mehrere tausend Werte in der Spalte PropertyValue.

Ich bin für jede Hilfestellung Dankbar!

Viele Grüße,

OZK
Dateianhänge
Bildschirmfoto 2018-01-12 um 11.42.21.png
Bildschirmfoto 2018-01-12 um 11.42.21.png (274.52 KiB) 1954 mal betrachtet
OZK
Beiträge: 3
Registriert: Fr, 12.01.2018 11:14

Re: Spaltenbereinigung

Beitrag von OZK »

Hallo Peter,

hier ist die Beispieldatei: https://ufile.io/mbyo6

Die CSV Datei ist TAB-separiert.

Viele Grüße,

OZK
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Spaltenbereinigung

Beitrag von Toxitom »

hey OZK,

kannst Du meiner Ansicht nach nur mit Hilfe eines Makros lösen.

Und selbst dann sehe ich Probleme in dem von Dir gewünschten Ergebnis:

Jede Zeile bekommt ja einen Zeilenkopf (Title - eben die Nummer) , dann aber sehe ich in Deiner Datei unterschiedliche Werte für PropertyName. Das heisst, alle noch nicht genutzten Werte müssen ja eine eigene Spalte bekommen - und die Zuordnung der Werte muss dann exakt in diese Spalte passen - das ist ziemlich aufwendig.

Wären die Spaltenbeschriftungen deiner PropertyName Spalte immer gleich, so wäre die sicher einfacher. Aber so.....

Was willst Du eigentlich letzendlich mit der Tabelle erreichen? Die aktuelle Version Title, PropertyName und PropertyValue ist doch für Skriptsprachen recht einfach auswertbar (z.B. Python - kann mit solchen Listen sehr gut umgehen). Kannst Du Dein Ziel nicht gleich skript-orientiert erreichen?

Alternativ prüfe, ob die Liste der möglichen PropertyNames endlich und überschaubar ist (über alle Datensätze hinweg) - dann könntest Du die Werte einfach in eine Datenbank schreiben und musst Dir dabei keine großen Gedanken über die Spaltenzuordnung mehr machen - das macht dann das Datenbank-Managementsystem. Wäre mit einem kleinen Skript mit etwa 2 Schleifen schnell erledigt.

Eine solche Datenbank-Tabelle könntest Du dann zur Not auch nach Calc exportieren ... aber wie gesagt - ich kenne Dein Ziel nicht.

Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
OZK
Beiträge: 3
Registriert: Fr, 12.01.2018 11:14

Re: Spaltenbereinigung

Beitrag von OZK »

Hi Tom,

vielen Dank für Deine Antwort.

Im Grunde genommen, habe ich diese Daten (PropertyName und PropertyValue) zu bereits existierende Titel bekommen und ich will die Titel mit diesen Properties ergänzen.

Also das System was ich verwende benötigt für einen Import die Daten in CSV Format, die Daten müssten dann so konfiguriert sein, dass ich die direkt importieren kann. Also jede PropertyName benötigt eine eigene Spaltenbeschriftung und die dazugehörige PropertyValue für den Titel in der jeweiligen Spalte.

Leider kenne ich mich mit Skripte nicht gut aus und mit Python kenne ich mich leider auch nicht gut aus. Am liebsten würde ich das ganze in Calc machen wenn das geht.

Hast Du eine Idee wie ich das eventuell in kleinere Schritte aufbrechen könnte? Also, zB pro Titel erstmal nur ein PropertyName und den dazugehörigen PropertyValue filtern könnte? Am liebsten würde ich gerne wissen ob es eine Funktion gibt wie ich die Anordnung von Zelleninhalte von zwei Spalten zeitgleich und in Abhängigkeit von einander sortieren kann.

Die Arbeitweise derzeit ist folgender:

Ich Sortiere mir alphabetisch die PropertyName Spalte, kopiere mir den ganzen Inhalt von den Zeilen wo die erste PropertyName gleich ist, also in der Beispieldatei "Age Group", in eine neue csv Datei und speichere ab. Öffne die Datei wieder und selektiere Tab und Komma als Spaltentrennoption. Dann lösche ich alle überflüssige Spalten sodass ich nur die Titel habe und die PropertyName Age Group und die verschiedene PropertyValue Werte.

Dann habe ich eine Importdatei was nur für eine PropertyName dient, dort habe ich nur zwei Spalten: Titel und PropertyValue. Diese Datei kann ich dann so importieren, aber die Dateien zu füllen ist echt langwierig.

Kannst Du mir mit dem Skript auch weiterhelfen oder eventuell hast Du einen anderen Rat für mich?

Vielen Dank,

OZK
Antworten