見出し画像

#としじのPS その20~練習問題12:日付関数の練習~

#としじのPS その20~練習問題12:日付関数の練習~ 

ちょっとタイトルとは違うかも・・・
CSVを集計する問題として扱いました

cls; cd C:\PowerShell

$csv = Import-Csv .\ps012.csv -Encoding Default
$csv | % {
   $wd = [datetime](@($_.年,$_.月,$_.日) -join "/")
   $wd = $wd.ToString("ddd")
   $_ | Add-Member -Name "曜日" -Value $wd -MemberType NoteProperty
}
$csv `
| group 曜日 `
| select `
   @{Name="曜日"   ; Expression={($_.name)}},`
   @{Name="売上合計"; Expression={($_.group | measure -Sum 売上).Sum.ToString("#,#")}},`
   @{Name="日数"   ; Expression={$_.group.Count}},`
   @{Name="平均売上"; Expression={
       [math]::Round(($_.group | measure -Average 売上).Average).tostring("#,#")
   }}`
| Out-GridView -Title "集計結果"

画像1

この辺がスラスラ書けるようになればPSでCSVの集計はもうマスターしたと言えるでしょう
流れとしては、曜日がないのでそれを追加、そしてそれを元にグループ化して、それぞれの項目について集計・・・
こういう書き方なんだとまずは受け入れて、最初は暗記するくらいがちょうどいいと思います、僕はそうやって身に着けてきましたw

追記

ちょっと { } の中が長いので一旦変数に入れて処理を分けました、こちらも参考にしてみてください

画像2


この記事が気に入ったらサポートをしてみませんか?