Jump to content

CSV mit Powershell Sortieren und Filtern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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. :sauer2: 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 :cry3:  )

 

Grüße, Stefan

essen.txt

bearbeitet von dop3
Link zu diesem Kommentar

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).

Link zu diesem Kommentar
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 von BeatYa
Link zu diesem Kommentar
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 von BeatYa
Link zu diesem Kommentar

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 :shock2:

Link zu diesem Kommentar
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 von MurdocX
Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...