Untested, and untidy
Code:
awk -F, 'NR==1 { printf "%15s", $3
for ( i = 4 ; i <= NF; i++ ) {
printf "%8s", $i
}
printf "\n"
next
}
{ ind[$3] = NF
for ( i = 4 ; i <= NF; i++ ) {
result[$3,i] += $i
}
}
END {
for ( j in ind ) {
printf "%15s",j
for ( i = 4 ; i <= ind[j]; i++) {
printf "%8d", result[j,i]
}
print line}
}' datafile