Getting and calculating averge value of custom fields of the same tag

If its a regular custom field you can add this to your archive.php:

//before the loop
$rating_count = 0;
$total_rating = 0;

//in the loop 
$total_rating = $total_rating + get_post_meta($post->ID,'your_custom_field_name',true);
$rating_count = $rating_count + 1;

//after the loop:
$average = $total_rating / $rating_count;
echo 'the average rating for this tag is: ' . $average;

Update

Now that you’ve mentioned that there is pagination evolved and you are not getting all of the posts (for example 10/14), you can create a new WP_Query object and use it to get all of the posts (14/14) and check the average. add this code before your loop:

global $wp_query;
$real_query = $wp_query->query; //save reall query
//create new query for all posts of the tag/category/whatever
$args = array_merge( $wp_query->query, array( 'posts_per_page' => '-1' ) );
$average_q = new WP_Query($args);
$rating_count = 0;
$total_rating = 0;
while ($average_q->have_posts()){
    $average_q->the_post();
    $total_rating = $total_rating + get_post_meta($post->ID,'your_custom_field_name',true);
    $rating_count = $rating_count + 1;
}
wp_reset_query();
$average = $total_rating / $rating_count;
echo 'the average rating for this tag is: ' . $average;
query_posts($real_query);