dop3 0 Geschrieben 30. Mai 2018 Melden Teilen Geschrieben 30. Mai 2018 (bearbeitet) Servus.. Ich habe ein Problem mit einer CSV Datei dessen Werte ich gerne Sortieren und Filtern möchte. zur Info.. Die CSV Datei exportiere ich aus einem Essen Bestellprogramm einer gößeren Firma (hab die CSV mal als TXT angehangen). Ich möchte gerne herausfinden wie viel mal jedes Essen bestellt wurde und von welcher "Gruppe/Benutzer". Die Spalten Wertstellung, Benutzer und Buchungstext sind quasi die die ich benötige. Zum Schluss sollte es ungefähr so aussehen: Datum Benutzer Essen Menge ----- -------- ----- ----- 04.06.2018 Metall 1 Currywurst 10 04.06.2018 Montage 2 Currywurst 5 05.06.2018 Metall 3 Kesselgulasch 9 Ich habe jetzt schon einige Sachen probiert, aber bekomme es einfach nicht korrekt Sortiert. Ich bin jetzt auch nicht so der Powershell Pro aber ich würde mich über ein paar Lösungsvorschläge freuen (falls es überhaupt Möglich ist ) Grüße, Stefan essen.txt bearbeitet 30. Mai 2018 von dop3 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 30. Mai 2018 Melden Teilen Geschrieben 30. Mai 2018 Die Daten sind bescheiden. In der Spalte Buchungstext sind mehrere Informationen, die gesplittet werden müssen. Du musst nach mehreren Properties gruppieren, was es nativ mit Powershell nicht so einfach ist: https://stackoverflow.com/questions/30769809/powershell-group-by-multiple-properties Ich würde dir Empfehlen das in Excel auszuwerten. Mit Powershell wird das sehr aufwändig (ist aber sicher Möglich). Zitieren Link zu diesem Kommentar
BeatYa 0 Geschrieben 4. Juni 2018 Melden Teilen Geschrieben 4. Juni 2018 (bearbeitet) Am 30.5.2018 um 23:23 schrieb Dukel: Die Daten sind bescheiden. In der Spalte Buchungstext sind mehrere Informationen, die gesplittet werden müssen. Du musst nach mehreren Properties gruppieren, was es nativ mit Powershell nicht so einfach ist: https://stackoverflow.com/questions/30769809/powershell-group-by-multiple-properties Ich würde dir Empfehlen das in Excel auszuwerten. Mit Powershell wird das sehr aufwändig (ist aber sicher Möglich). Warum soll das mit der Shell aufwändig sein? Solange die CSV Textqualifizierer bzw Spaltentrenner hat ist das doch ein leichtes. $CSV-Datei = Import-CSV -Path <Pfad> -Delimiter <Textqualifizierer> $CSV-Datei.Spaltenname usw Sehe gerade, dass es ja ohne Ende Gerichte gibt und dass die CSV gar nicht mal so durchsichtig ist. All zu kompliziert sollte es nun nicht sein, aber zeitaufwändig. Viel Erfolg^^ bearbeitet 4. Juni 2018 von BeatYa Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 4. Juni 2018 Melden Teilen Geschrieben 4. Juni 2018 Hast du dir die Daten schon angeschaut? Das einlesen als CSV ist das einfachste, aber alles weitere wird sehr kompliziert. Zitieren Link zu diesem Kommentar
BeatYa 0 Geschrieben 4. Juni 2018 Melden Teilen Geschrieben 4. Juni 2018 (bearbeitet) vor 1 Stunde schrieb Dukel: Hast du dir die Daten schon angeschaut? Das einlesen als CSV ist das einfachste, aber alles weitere wird sehr kompliziert. Jup, habe ich. Könnte man mit verschiedenen Herangehensweisen lösen und es muss einiges gefiltert werden. Ein paar Vorabinfos wären hilfreich, wie zB welche Gerichte es genau gibt, ob die Gerichte immer gleich bleiben usw.. Großartig schwierig ist es nun halt nicht, nur aufwändig. bearbeitet 4. Juni 2018 von BeatYa Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 4. Juni 2018 Melden Teilen Geschrieben 4. Juni 2018 Naja, der Benutzer ist immer das 3. Wort (-split( " " )[2]) und das Essen steht zwischen "Essensbestellung:" und "(" (-match "^.*Essensbestellung: (.*) \(.*$"). Damit dann durchloopen und ein neues Array mit den benötigten Eigenschaften und Werten erzeugen. Das dann in Sort und Group pipen... Aber grundsätzlich haben die Vorredner Recht - die Daten sind nicht wirklich prickelnd Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 6. Juni 2018 Melden Teilen Geschrieben 6. Juni 2018 (bearbeitet) Am 30.5.2018 um 22:51 schrieb dop3: Zum Schluss sollte es ungefähr so aussehen: Prinzipiell kein Problem. Definiere ein Objekt und die Values sind jeweils String Arrays [string[]]. Dann sollte deine Ausgabe so passen. Ich muss jetzt weg, noch den Rest Sonne genießen. Später schaue ich es mir nochmal an. bearbeitet 6. Juni 2018 von MurdocX Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 6. Juni 2018 Melden Teilen Geschrieben 6. Juni 2018 Wenn du die Befehlsfolge verwendest, dann werden Dir schon mal nur die Besagten Benutzer,Buchungstext,Wertstellung angezeigt. Get-Content -Path "C:\Users\...\Downloads\essen.txt" -Encoding utf8 | ConvertFrom-Csv -Delimiter ';' | Select-Object -Property Benutzer,Buchungstext,Wertstellung | Format-Table -Wrap -Property Benutzer,Wertstellung,Buchungstext Es gibt nun über die Funktion "Substring" die Möglichkeit gewisse Informationen herauszuziehen und über "Custom Header" in Format-Tabel die Überschriften anzupassen. Damit solltest du schon weiterkommen. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.