![見出し画像](https://assets.st-note.com/production/uploads/images/60903827/rectangle_large_type_2_470082c89983e9ab308c1f227d0f4d18.png?width=1200)
#としじの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 "集計結果"
この辺がスラスラ書けるようになればPSでCSVの集計はもうマスターしたと言えるでしょう
流れとしては、曜日がないのでそれを追加、そしてそれを元にグループ化して、それぞれの項目について集計・・・
こういう書き方なんだとまずは受け入れて、最初は暗記するくらいがちょうどいいと思います、僕はそうやって身に着けてきましたw
追記
ちょっと { } の中が長いので一旦変数に入れて処理を分けました、こちらも参考にしてみてください
この記事が気に入ったらサポートをしてみませんか?