Invoke-Sum.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
function Invoke-Sum { param( $data, $dimension, $measure ) if(!$measure) {$measure = $dimension} $h=@{} foreach ($item in $data){ $key=$item.$dimension if(!$key) {$key="[missing]"} $value = $item.$measure if($value -is [string] -or $value -is [System.Enum]) { $value = 1 } $h.$key+=$value } foreach ($entry in $h.GetEnumerator()){ [PSCustomObject]@{ Name=$entry.key $measure=$entry.value } } } |