With INDIRECT there's no need, remember you're essentially creating literal text strings, the INDIRECT then evaluates the string as a range - ie every reference is literal and thus absolute, ie
B1: =INDIRECT("$A1")
copied down to B2, B3 etc will all reference A1.. that's because the string is literal and the string being created is always the same... if you didn't encase within INDIRECT XL would not know "$A1" was meant to be a cell reference it would just assume it was a text string, like "apple" as such the text string does not "evolve" as it's copied ("apple" wouldn't become "banana" so why should "$A1" become anything other than "$A1" ?)
I'm not sure if this is making sense or not ?
why include an ampersand before ROWS?
Because we're creating a text string between the outer parentheses... going back to the A1 example, if we want B2 to reference A2 we need to alter the string from "A1" to "A2" (the string is not a range remember as far as XL is concerned, it's treated like writing "apple") ... so to do that we can use:
B1: ="A"&ROWS(B$1:B1)
this creates a text string of "A" and appends to that the result of the ROWS calculation, making one text string
[why no quotation marks ? this is a matter of coercion... the use of & automatically coerces all elements to text - ie 1 becomes "1"]
B1: ="A"&1 --> "A1"
copied to B2
B2: ="A"&ROWS(B$1:B2) --> "A2"
the encasing of the above within an INDIRECT tells XL to now translate the string into a Range reference, so =INDIRECT("A2") becomes =A2
Not much more I can add in truth... INIDRECT can take a little while to sink in... as mentioned before be wary of overuse as Volatile functions are in general not a good thing to use en masse
Bookmarks