However when i personally use
query_posts() function for excluding some groups and limit posts then it is showing all posts not by year.
For instance this page is showing all posts not just posts in '09 years.
Therefore if i summarize this problem i wish to show archive list by year (after i enter /2009/ permalink)+exclude some groups and limit posts.
maybe if you use global variable, $query_string, it can help.
which means you must utilize it such as this
global $query_string; query_posts($query_string . '&cat=-13,-4,-14,-171&posts_per_page=5&paged='. $paged);
as codex mention, here : query post,
Place a phone call to question_posts() in your Template files prior to the Loop starts. The wordpress_query object will produce a new SQL query making use of your parameters. If you do this, WordPress ignores another parameters it receives through the URL (for example page number or category). If you wish to preserve that information, you should use the $query_string global variable within the call to questionarticles().