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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 4903648420
Url: https://administrator.de/contentid/4903648420
Printed on: April 27, 2024 at 14:04 o'clock
11 Comments
Latest comment
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