experiment626
Goto Top

Auswerten von CSV-Daten, gruppieren und zählen

Hallo zusammen,

ich habe mich versucht, aber es funktioniert nicht.
Ich habe eine CSV-Liste (delimter ;), die schon einen Umfang von 30000 Sätzen haben kann und wie folgend sortiert ist.

Datum; Monat; Jahr; Quart; Leiter; JobNr; SubNr; Kennung
20191224 12 2019 4 OA 46631/19 VI p63
20191224 12 2019 4 OA 46631/19 VII p63
20191224 12 2019 4 OA 46631/19 VIII p63
20191224 12 2019 4 OA 46631/19 X p63
20191224 12 2019 4 OA 46632/19 I p63
20191224 12 2019 4 OA 46632/19 II p63
20191224 12 2019 4 OA 46632/19 III p63
20191224 12 2019 4 OA 46632/19 IV p63
20191224 12 2019 4 OA 46632/19 IX p63
20191224 12 2019 4 OA 46632/19 V p63
20191224 12 2019 4 OA 46632/19 VI p63
20191224 12 2019 4 OA 46632/19 VII p63
20191224 12 2019 4 OA 46632/19 VIII p63
20191224 12 2019 4 OA 46632/19 X p63
20191224 12 2019 4 OA 46655/19 I CD3
20191224 12 2019 4 OA 46656/19 I p63
20191224 12 2019 4 OA 46656/19 II p63
20191224 12 2019 4 OA 46656/19 III p63
20191224 12 2019 4 OA 46656/19 IV p63
20191224 12 2019 4 OA 46656/19 IX p63
20191224 12 2019 4 OA 46656/19 V p63
20191224 12 2019 4 OA 46656/19 VI p63
20191224 12 2019 4 OA 46656/19 VII p63
20191224 12 2019 4 OA 46656/19 VIII p63
20191224 12 2019 4 OA 46656/19 X p63
20191224 12 2019 4 OA 46656/19 XI p63
20191224 12 2019 4 OA 46657/19 I CD3
20191224 12 2019 4 OA 46658/19 I CD3
20191224 12 2019 4 OA 46659/19 I CD3
20191224 12 2019 4 OA 46696/19 I CD3
20191230 12 2019 4 Ma 46619/19 - CK7
20191230 12 2019 4 Ma 46619/19 - Gata3
20191230 12 2019 4 Ma 46619/19 - PSA
20191230 12 2019 4 Ma 46626/19 I CK56
20191230 12 2019 4 Ma 46626/19 I CK7
20191230 12 2019 4 Ma 46626/19 I Gata3
20191230 12 2019 4 Ma 46626/19 I p16
20191230 12 2019 4 Ma 46626/19 I P401
20191230 12 2019 4 Ma 46639/19 - CDX2
20191230 12 2019 4 Ma 46639/19 - CK20
20191230 12 2019 4 Ma 46639/19 - ZK
20191230 12 2019 4 Ma 46682/19 - Mib1
20191230 12 2019 4 Ma 46685/19 - Mib1
20191230 12 2019 4 Ma 46686/19 - Mib1
20191230 12 2019 4 Ma 46687/19 - Mib1
20191230 12 2019 4 Ma 46753/19 I CD3
20191230 12 2019 4 Ma 46770/19 I CDX2
20191230 12 2019 4 Ma 46770/19 I Chro
20191230 12 2019 4 Ma 46770/19 I CK20
20191230 12 2019 4 Ma 46770/19 I CK7
20191230 12 2019 4 Ma 46770/19 I Mib1
20191230 12 2019 4 Ma 46770/19 I Syn
20191230 12 2019 4 Ma 46775/19 I CD3
20191230 12 2019 4 MY 46462/19 I CK56
20191230 12 2019 4 MY 46462/19 I P504S
20191230 12 2019 4 MY 46462/19 II CK56
20191230 12 2019 4 MY 46462/19 II P504S
20191230 12 2019 4 MY 46466/19 III CDX2
20191230 12 2019 4 MY 46466/19 III Chrom
20191230 12 2019 4 MY 46466/19 III CK20
20191230 12 2019 4 MY 46466/19 III p53
20191230 12 2019 4 MY 46466/19 III Syn
20191230 12 2019 4 MY 46562/19 - Mib1


Ich möchte gerne eine neue zusammengefasste Liste erhalten, die alle Angaben der Felder 1-6 genauso wieder gibt.
Die verschiedenen SubNr sollen innerhalb der JobNr als einmalige SubNr (z.B. 4x III aufeinanderfolgend = nur 1x III) gezählt werden.
Der Bindestrich (-) zeigt nur an, dass keine römische Zahl vergeben wurde, wäre als nur eine Unternummer zu zählen, auch wenn sie mehrmals innerhalb der gleichen JobNr folgt. Schön wäre, wenn die Verschiedenheit der Kennungen gezählt werden können.

Bsp:
20191230 12 2019 4 MY 46462/19 I CK56
20191230 12 2019 4 MY 46462/19 I P504S
20191230 12 2019 4 MY 46462/19 II CK56
20191230 12 2019 4 MY 46462/19 II P504S

Hier sollte zusammengefasst erscheinen:
20191230 12 2019 4 MY 46462/19 2 4 2 (FallNr, 2 SubNrn, 4 Kennungen, 2 versch. Kennungen)


Bsp:
20191224 12 2019 4 OA 46631/19 VI p63
20191224 12 2019 4 OA 46631/19 VII p63
20191224 12 2019 4 OA 46631/19 VIII p63
20191224 12 2019 4 OA 46631/19 X p63

20191224 12 2019 4 OA 46631/19 4 1 1 (FallNr, 4 SubNrn, 4 Kennungen, 1 versch. Kennungen)


... wenn das als CMD-Batch funktionieren würde, wäre das genial.

Content-Key: 626312

Url: https://administrator.de/contentid/626312

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: TK1987
TK1987 27.11.2020 aktualisiert um 10:28:28 Uhr
Goto Top
Moin,

mit Powershell:
$Source = "C:\Test\in.csv"  
$Target = "C:\Test\out.csv"  

# Quelle als CSV-Datei Importieren
$CSV = Import-CSV -Delimiter ';' $Source  

# Job-Nummern gruppieren
$Jobs = $CSV | Group-Object -Property 'JobNr'  

# Für jeden Job neue Liste erstellen
$Output = Foreach ($Job in $Jobs) {

  # Anzahl verschiedene Sub-Nummern
  $SubNrn = ($Job.Group | Group-Object -Property 'SubNr').Name.count  

  # Anzahl verschiedene Kennungen
  $vKennungen = ($Job.Group | Group-Object -Property 'Kennung').Name.Count  

  # Neue Liste ausgeben
  $Job.Group | Select-Object Datum,Monat,Jahr,Quart,Leiter,JobNr,@{n='SubNrn';e={$Subnrn}},@{n='Kennungen';e={$Job.Count}},@{n='versch. Kennungen';e={$vKennungen}}  

  }

# Csv-Datei ausgeben
$Output | Export-Csv -Delimiter ';' -NoTypeInformation $Target   

Gruß Thomas
Mitglied: Experiment626
Experiment626 27.11.2020 um 10:47:09 Uhr
Goto Top
Hallo Thomas,

erst mal vielen Dank.
Ich hatte vergessen, dass ich es als CMD-Batch wollte. Powershell kenne ich mich nicht aus,
und könnte dort auch nicht sofort dahinterkommen, wie es genau geht.
Deshalb wäre mir eine normale Batch-Lösung lieber.
Mitglied: TK1987
TK1987 27.11.2020 aktualisiert um 11:20:08 Uhr
Goto Top
Zitat von @Experiment626:
Ich habe eine CSV-Liste (delimter ;), die schon einen Umfang von 30000 Sätzen haben kann
du willst aber schon, dass wenn du das Skript heute startest, es dieses Jahr noch fertig mit der Berechnung wird, oder?!

Gut gemeinter Rat: Vergiss das mit der Batch gleich mal wieder!