I produced an Archive list (also this is my archive.php codes) on my small blog and i wish to show posts by years.

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.

Thanks.

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().