Assuming you are using Excel 2007 as per your profile...
First create a Dynamic Named Range for your Data sheet.
While in Data sheet, go to Formulas, Define Name... enter name like: MyList and in the refers to field enter formula:
=Data!$A$2:INDEX(Data!$O:$O,MATCH(REPT("z",255),Data!$E:$E))
Then in Summary A4 enter formula:
=IFERROR(INDEX(INDEX(MyData,0,4),MATCH(LARGE(IF(ISNA(MATCH(INDEX(MyData,0,4),A$3:A3,0)),INDEX(MyData,0,4)),ROW($A2)-ROW($A$1)),INDEX(MyData,0,4),0),1),"")
This formula must be confirmed with CTRL+SHIFT+ENTER not just ENTER and copied down.
Then in B4:
=IF(A4="","",VLOOKUP(A4,Data!$D:$E,2,0))
copied down
In C4:
=IF($A4="","",SUMPRODUCT((INDEX(MyData,0,4)=$A4)*(INDEX(MyData,0,6)=C$3)*(Data!$A$1:$O$1=$A$1)*(INDEX(MyData,0,11)=$A$2),MyData))
copied down and across the columns.
Bookmarks