View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Harlan Grove Harlan Grove is offline
external usenet poster
 
Posts: 733
Default Problems with R1C1 referencing in buildling indirect references

IainMac wrote...
....
I want to minimise maintenance. As it stands, if someone else works

with
the sheet, they have to know to copy and paste a column, then change

the
column references to match the new column.

I decided to try R1C1 referencing, to avoid explicitly reference the

column:

=COUNTIF(INDIRECT(R[31]C),"<N/A")

with INDIRECT referring to:

=CONCATENATE("R",FIRST_TEST_ROW,"C",":R",LAST_TES T_ROW,"C")

MAYHEM:
When I do this (whether I switch R1C1 referencing on or off), I get

#REF as
a result for the formula. The CONCATENATION still looks ok

:"R12C:R144C"

What is going wrong?


Simple. You failed to read the manual. Online help for the INDIRECT
function it states:

"INDIRECT(ref_text,a1)
[...]
A1 is a logical value that specifies what type of reference is
contained in the cell ref_text.

· If a1 is TRUE or omitted, ref_text is interpreted as an A1-style
reference.
· If a1 is FALSE, ref_text is interpreted as an R1C1-style reference."

Where does it say the a1 argument is optional when using R1C1-style
references?

How do I get my low maintenance solution if not this way (which should

be
really elegant)?


If you want elegance, don't use CONCATENATE. Use the & operator.

=COUNTIF(INDIRECT("R"&FIRST_TEST_ROW&"C:R"&LAST_TE ST_ROW&"C",0),"<N/A")

And if you want to avoid volatile functions and this function would be
in column I, consider

=COUNTIF(INDEX(I:I,FIRST_TEST_ROW):INDEX(I:I,LAST_ TEST_ROW),"<N/A")