First you'll want to convert your table with a cross table to make the data usable with Qlikview.
=aggr(if(rank(avg(scorefor user))<=3,category,code),category) Will get you the average of the top 3 per category and code. Once you use the cross table wizard and convert the application you'll have a column for period and a score for user column.
I mean taking the cross table out of cross table format. Your application won't work the way you intend without having it in the correct format. The cross table wizard in Qlikview primary use is to take your table out of cross table format.