If all the ranges were in one column, you could use =COUNTA($C$2:INDEX(C:C,MATCH(A3,C:C,0))) . This assumes that the values in your ranges are unique - a value in Area2 won't be duplicated in Area3.
If they're not unique, then
=COUNTA($C$2:OFFSET(INDIRECT("Area"&$A$1),MATCH($A$3,INDIRECT("Area"&$A$1),0)-1,0,1,1))
should work - although this assumes no headers for the areas, so would need adjustment if you did include them.
Not actually that much nicer than the original answer - it just felt like it should be!