I'll just give the 2 options.
This produces an average over the previous month for CPU and memory for each VM
$vms=Get-VM
$metric="cpu.usage.average","mem.usage.average"
$now=Get-Date-Hour0-Minute0-Second0
$finish=$now.AddDays(-$now.Day)$start=$finish.AddMonths(-1).AddDays(1)$finish=$finish.AddDays(1).AddMinutes(-1)$stats=Get-Stat-Entity$vms-Stat$metric-Start$start-Finish$finish
$stats | Group-Object-Property {$_.Entity.Name} |Select @{N="VM";E={$_.Values[0]}}, @{N="Start";E={$start}}, @{N="CPU";E={[math]::Round(($_.Group | where {$_.MetricId -eq"cpu.usage.average"} | Measure-Object-PropertyValue-Average).Average,2)}}, @{N="Memory";E={[math]::Round(($_.Group | where {$_.MetricId -eq"mem.usage.average"} | Measure-Object-PropertyValue-Average).Average,2)}}
And this gives you the average CPU and memory per time interval for the previous month.
$vms=Get-VM
$metric="cpu.usage.average","mem.usage.average"
$now=Get-Date-Hour0-Minute0-Second0
$finish=$now.AddDays(-$now.Day)$start=$finish.AddMonths(-1).AddDays(1)$finish=$finish.AddDays(1).AddMinutes(-1)$stats=Get-Stat-Entity$vms-Stat$metric-Start$start-Finish$finish$stats | Group-Object-Property {$_.Entity.Name},{$_.Timestamp} |Select @{N="VM";E={$_.Values[0]}}, @{N="Time";E={$_.Values[1]}}, @{N="CPU";E={($_.Group | where {$_.MetricId -eq"cpu.usage.average"}).Value}}, @{N="Memory";E={($_.Group | where {$_.MetricId -eq"mem.usage.average"}).Value}}