carolinen
Goto Top

Mithilfe Powershell Excel bzw. csv Datei umschreiben

Hallo zusammen.

Kann mir jemand bitte mir Powershell Skript helfen?

Ist Zustand: siehe Bild 1

Soll Zustand: Siehe Bild 2


Das Powershell Skript muss in der Spalte A nach gleichem Name suchen und wenn ja, dann auch nach Status in der Spalte B gucken und wenn es passt dann soll er gucken ob die letzten 2 Zahlen in der Spalte D2 1 mal höher als in D1 und dann in D3 höher als in D2 u.s.w und wenn es nicht mehr der Fall ist soll er den Wert aus D4 in D2 einsetzen.

Sollte mit CSV gearbeitet werden.

Ist so was möglich?

Danke

Caro
1
2

Content-Key: 3529044758

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

Printed on: May 19, 2024 at 21:05 o'clock

Member: Carolinen
Carolinen May 08, 2024 at 13:43:26 (UTC)
Goto Top
Soll Zustand:
2
Member: hempel
hempel May 08, 2024, updated at May 13, 2024 at 09:41:01 (UTC)
Goto Top
$csv = Import-CSV -Path .\test.csv -Delimiter "`t"  
$csvneu = foreach($group in $csv | group-object PERSONALNR,BEZEICHNUNGKRANKMELDUNGSART){
    $bis = $group.Group.DatumBis | %{[datetime]::ParseExact($_,'yyyyMMdd',$null)}  
    $index = 0..($bis.length-1) | ?{$bis[$_+1] -ne $bis[$_].AddDays(1)}
    [pscustomobject][ordered]@{
         PERSONALNR = $group.Group[0].PERSONALNR
         BEZEICHNUNGKRANKMELDUNGSART = $group.Group[0].BEZEICHNUNGKRANKMELDUNGSART
         Von = $group.Group[0].DatumVon
         Bis = $group.Group[$index[0]].DatumBis
    }
 }
$csvneu | export-csv -Path .\test_out.csv -Delimiter ";" -NoTypeInformation -Encoding UTF8  

H.
Member: Carolinen
Carolinen May 08, 2024 at 13:58:58 (UTC)
Goto Top
ich bedanke mich. ich teste es später und melde mich
Member: Carolinen
Carolinen May 13, 2024 at 08:57:19 (UTC)
Goto Top
Hey, wenn statt 'Muster' eine Zahl steht '00061' dann kommt der folgende Fehler: Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.

Wie löst man dies hier?

Danke
Member: hempel
hempel May 13, 2024 updated at 09:28:28 (UTC)
Goto Top
Zitat von @Carolinen:

Hey, wenn statt 'Muster' eine Zahl steht '00061' dann kommt der folgende Fehler: Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.

Nein kann ich nicht bestätigen, das macht nichts ob da eine Zahl oder ein Name steht, die Spalte wird übernommen so wie sie ist.
Poste die Daten deiner CSV in Code-Tags.

tio.run Demo
Member: Carolinen
Carolinen May 13, 2024 at 11:03:06 (UTC)
Goto Top
PERSONALNR	BEZEICHNUNGKRANKMELDUNGSART	DATUMVON	DATUMBIS
00000275	Urlaub	20230519	20230519
00000275	Urlaub	20230612	20230612
00000275	Urlaub	20230614	20230614
00000275	Urlaub	20230615	20230615
00000275	Urlaub	20230616	20230616
00000275	Urlaub	20230918	20230918
00000275	Urlaub	20230919	20230919
Member: hempel
hempel May 13, 2024 updated at 11:19:37 (UTC)
Goto Top
Ähhhm, das Ding hat ja vollkommen andere Spaltenüberschriften als deine ganz oben gezeigte Tabelle und außerdem einen anderen Delimiter, des weiteren stimmen die von bis nicht mit deinen gezeigten Daten überein so das klar würde das es Datumswerte sind!!! Klar das dann nicht läuft, musst du den Delimiter und die Spaltennamen an deine Tabelle anpassen !

Bidde, hier die Anpassung:
https://tio.run/##fVJdb9owFH0mv8JCmQCNZAkdXek0jdBkFLWkiK@HRRELyS1kSuwocT ...

👋
Member: Carolinen
Carolinen May 14, 2024 at 07:17:29 (UTC)
Goto Top
Hi, siehe bitte Bild 1 2 und 3.

1: ist Zustand
2: Das Skript
3: Am Ende kommt nur die leere Datei.
2
3
1
Member: Carolinen
Carolinen May 14, 2024 at 07:36:58 (UTC)
Goto Top
wäre sowas möglich?:

Anstatt die Daten nach PERSONALNR und KRANKMELDUNGSART zu gruppieren, verarbeiten Sie jede Zeile einzeln.
Member: hempel
hempel May 14, 2024 updated at 09:43:59 (UTC)
Goto Top
Siehe Link in letztem Kommentar und ganz oben angepasst da steht es fix und fertig und funktionsfähig für deine gepostete CSV!