If you're ready to go a bit more advanced, then we can try a few new tricks.
One thing that a lot of people don't realise is that index actually returns a range rather than value, and you then see the value from that range as the result of the formula, so =INDEX(A:A,123) is the same as =A123
With this in mind, one trick you can use to find a range within a range is =INDEX(A:A,20):INDEX(D:D,50) which would be the same as using =A20:D50 a range that you could use as part of another formula.
Going back to your task, I noticed in the sample that column A had Q1 at the top and Q1 Total at the bottom of the Q1 range, using the method above, you could use this to your advantage and match "Q1" in the first INDEX with an exact match, and "Q1 Z" in the second INDEX with an approximate match (notice that in an alphanumeric sequence, "Q1 Z" would be greater than "Q1" and "Q1 T?????", but less than "Q2", so would find the correct end point.
The ranges produced by this could then be used in VLOOKUP, in the form of =VLOOKUP(attribute#, INDEX(B:B,MATCH("Q1",A:A,FALSE)):INDEX(C:C,MATCH("Q1 Z",A:A)),2,FALSE)
Hopefully that makes enough sense for you to start playing with things, but if you need help, don't be afraid to ask.
One last tip, as it will only be 4 variables, (Q1, Q2, Q3 and Q4), you could enter the =INDEX():INDEX() part of each into the Refers to: box of a named range and create 4 named ranges, 1 for each quarter, which would make the formula easier to manage.
Hope this is of use.
Jason.
Bookmarks