@
ysherriff: there's many ways to code this up. Unfortunately I have Excel 2013 not 2003, so some of the ways I know won't work on your file, and so I'm flying a bit blind.
But try the attached file. I've screwed up your formatting, but this should give you the general idea of how a pivot very easily accomplishes what you're after. In excel 2010 and later, pivots have much nicer formatting. It is possible to format them like your report in 2003 but I haven't done so here.
Furthermore, in 2007 and later, Excel has something called Tables that you can connect pivots/charts/formulas to, which autoexpand to accommodate new data. In 2003 there was something called Excel Lists, and if you were to connect a pivot to an Excel List then all you need to do after you make any changes to the list is to refresh the pivot, and the new data would appear in the pivot without the need to click the 'Change Data Source' button for the pivot.
In the attached file, hopefully I've constructed a 2003-compatable Excel List out of your source data. I have a sheet change event that fires whenever you select the Pivot sheet, which refreshes the pivot.
That should be enough to get you started, if you want to progress down this route further. I personally will always use a Pivot in preference to SUMPRODUCTS etc if I can.
If the macro doesn't work for you, post back and I'm sure we can find someone with Excel 2003 installed to help you out.