Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a named range (NamedRange1) and I need to reference the first row and first column of that range within a formula. I came up with the following:

  • First row:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROWS(UnpivotSource) +ROW(UnpivotSource) -1 & "C" & COLUMN(UnpivotSource),0)

  • First column:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROW(UnpivotSource) & "C" & COLUMNS(UnpivotSource) + COLUMN(UnpivotSource) -1,0)

This seems cumbersome, especially since the Excel object model exposes Rows and Columns in VBA. Is there a more concise way of expressing this?

share|improve this question
up vote 10 down vote accepted





Note that this will only work for contiguous named-ranges, there's an index function for areas of a range, but it could get tricky if you wanted something other than the first row or column.

share|improve this answer
Beautiful, works great and way shorter. Thanks! – technomalogical Jun 25 '10 at 12:48
Under the hood of xl do you think if I use this technique, for say Max, it will be more efficient e.g. Max("A:A") compared to Max(index(myNmdRang,0,1)) ? – whytheq Mar 24 at 9:30
@whytheq, My guess would be that for large columns Max("A:A") would be the most efficient. You could time and test, see here:…. – Lance Roberts Mar 25 at 3:11
@LanceRoberts I added a more detailed question on S.O here:… You might like to answer as the current answer is not good enough. – whytheq Mar 25 at 9:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.