Daten in CSV kumulieren
Guten Tag liebe Gemeinde,
ich brauche mal wieder euer Schwarmwissen bei Batch. Ich habe eine Ausgangsdatei:
Aus dieser Datei sollen Spalten C, D, E kumuliert werden. wenn der Wert in Spalte B gleich ist;
Hat jemand von Euch ein Code-Schnippsel in der Tasche, den er teilen kann?
ich brauche mal wieder euer Schwarmwissen bei Batch. Ich habe eine Ausgangsdatei:
10000000;ARTIKELA;1;3,9;4,64;INFOTEXT;
10000000;ARTIKELB;3;6,45;7,68;INFOTEXT;
10000000;ARTIKELA;1;0;0;INFOTEXT;
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT;
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT;
10000000;ARTIKELD;2;3,62;4,31;INFOTEXT;
10000000;ARTIKELA;1;3,28;3,9;INFOTEXT;
Aus dieser Datei sollen Spalten C, D, E kumuliert werden. wenn der Wert in Spalte B gleich ist;
10000000;ARTIKELA;3;7,18;8,54;INFOTEXT;
10000000;ARTIKELB;3;6,45;7,68;INFOTEXT;
10000000;ARTIKELC;4;20,12;23,94;INFOTEXT;
10000000;ARTIKELD;2;3,62;4,31;INFOTEXT;
Hat jemand von Euch ein Code-Schnippsel in der Tasche, den er teilen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4903648420
Url: https://administrator.de/contentid/4903648420
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
machs mit der Powershell
Powershell: Gruppieren von Objekten mit mehreren Parametern
Vorher die CSV laden:
Ab dann wie in meinem Post grundsätzlich weitermachen
machs mit der Powershell
Powershell: Gruppieren von Objekten mit mehreren Parametern
Vorher die CSV laden:
$myObject = Import-CSV -Path 'C:\test\content.csv' -Delimiter ';' -Encodeing UTF8 -
@freshman2017 frage: warum wolltest du es in batch und nicht in powershell lösen (ich persönlich habe bestimmt schon 10 jahre nichts mehr mit batch gemacht). powershell ist doch viel mächtiger und nach meinem empfinden nicht so kryptisch (bin fro das ich mit batch nichts mehr machen muss, wir machen die meisten sachen mit powershell wenn es um Windows geht)?
(@'
Adressnummer;Artikelnummer;Menge;PreisNetto;PreisBrutto;Info
10000000;ARTIKELA;1;3,9;4,64;INFOTEXT
10000000;ARTIKELB;3;6,45;7,68;INFOTEXT
10000000;ARTIKELA;1;0;0;INFOTEXT
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT
10000000;ARTIKELD;2;3,62;4,31;INFOTEXT
10000000;ARTIKELA;1;3,28;3,9;INFOTEXT
'@ | ConvertFrom-CSV -Delimiter ";" | group Adressnummer,Artikelnummer |
select `
@{n='Adressnummer';e={$_.Group.Adressnummer}},
@{n='Artikelnummer';e={$_.Group.Artikelnummer}},
@{n='Menge';e={($_.Group.Menge | measure -Sum).Sum}},
@{n='PreisNetto';e={($_.Group.PreisNetto -replace ',','.' | measure -Sum).Sum}},
@{n='PreisBrutto';e={($_.Group.PreisBrutto -replace ',','.' | measure -Sum).Sum}},
@{n='Info';e={$_.Group.Info}} |
ConvertTo-CSV -Delimiter ";" -NoTypeInformation | select -Skip 1) -replace '"'
Wie würde ich hier die CSV Datei einbinden?
Au möhr siehst du doch oben schon ... Freitag mal wiederCSV Datei Ausgangsformat wie du gepostet hast ohne Header
10000000;ARTIKELA;1;3,9;4,64;INFOTEXT;
10000000;ARTIKELB;3;6,45;7,68;INFOTEXT;
10000000;ARTIKELA;1;0;0;INFOTEXT;
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT;
10000000;ARTIKELC;2;10,06;11,97;INFOTEXT;
10000000;ARTIKELD;2;3,62;4,31;INFOTEXT;
10000000;ARTIKELA;1;3,28;3,9;INFOTEXT;
$csv = 'C:\Users\Administrator\Desktop\test.csv'
$csv_neu = 'C:\Users\Administrator\Desktop\test_neu.csv'
((Import-CSV -Path $csv -Delimiter ';' -Encoding UTF8 -Header 'Adressnummer','Artikelnummer','Menge','PreisNetto','PreisBrutto','Info','Dummy') | group Adressnummer,Artikelnummer |
select `
@{n='Adressnummer';e={$_.Group.Adressnummer}},
@{n='Artikelnummer';e={$_.Group.Artikelnummer}},
@{n='Menge';e={($_.Group.Menge | measure -Sum).Sum}},
@{n='PreisNetto';e={($_.Group.PreisNetto -replace ',','.' | measure -Sum).Sum}},
@{n='PreisBrutto';e={($_.Group.PreisBrutto -replace ',','.' | measure -Sum).Sum}},
@{n='Info';e={$_.Group.Info}},
Dummy |
ConvertTo-CSV -Delimiter ";" -NoTypeInformation | select -Skip 1) -replace '"' | set-content $csv_neu
10000000;ARTIKELA;3;7,18;8,54;INFOTEXT;
10000000;ARTIKELB;3;6,45;7,68;INFOTEXT;
10000000;ARTIKELC;4;20,12;23,94;INFOTEXT;
10000000;ARTIKELD;2;3,62;4,31;INFOTEXT;
Tschö.
Zitat von @freshman2017:
Powershell ist eine gute Alternative. Müsste nur den passenden Code haben...
Powershell ist eine gute Alternative. Müsste nur den passenden Code haben...
das ist keine Antwort auf meine frage