Try following:
$Logs = Get-WmiObject -class Win32_NTLogEvent -filter "(logfile='Application')"
Write-Host $logs
of course, filter you can change. If you prefer other "format" of result you can for example to something like:
$Logs | Format-Table EventCode, EventType, Message -auto
UPDATE: I just read your question again :) To do grouping just invoke:
$logs | Group-Object Type,LogFile,EventCode