You are correct, it is the same, and using OFFSET does solve the compatibility problem for cells only looking at an adjacent cell. But there's still something funky going on.
This is showing with the same "SPILL" compatibility issue:
v1=INDEX(INDIRECT(CONCATENATE(SUBSTITUTE(ADDRESS(1,COLUMN($C$35)),"$1",""),ROW($C$35),":",SUBSTITUTE(ADDRESS(1,COLUMN($N$35)),"$1",""),ROW($N$35)+1000)),MATCH($J39,INDIRECT(CONCATENATE(SUBSTITUTE(ADDRESS(1,COLUMN($C$35)),"$1",""),ROW($C$35),":",SUBSTITUTE(ADDRESS(1,COLUMN($C$35)),"$1",""),ROW($C$35)+1000)),0),COLUMNS($C$35:$E$35))
Simplified, it's also flagged with the compatibility issue:
v2=INDEX($C$35:$N$1035,MATCH($J39,$C$35:$C$1035,0),COLUMNS($C$35:$E$35))
Simplified more it's still flagged with the compatibility issue:
v3=INDEX($C$35:$N$1035,3,COLUMNS($C$35:$E$35))
This version is not flagged as a compatibility issue:
v4=INDEX($C$35:$N$1035,MATCH($J39,$C$35:$C$1035,0),3)
The most simple version is also not an issue:
v5=INDEX($C$35:$N$1035,3,3)
But the question is, if each of these are in effect the same formula, why are the first 3 a problem and the last two not? It seems INDIRECT isn't the cause of the issue so I'll edit the header if I can. But it also doesn't seem to be an issue when an array
is entered since versions 4 & 5 above have arrays but are not issues. I realize if I make the bottom half of the index array low enough I don't really need the complicated formula like in v1. But I do need to keep the COLUMNS portion to maintain the formula
if columns are inserted. Oddly enough, if I use
=VLOOKUP($J39,$C$35:$E$1035,COLUMNS($C$35:$E$35),FALSE)
that does not show as a compatibility issue. So I dunno what it is that's causing the hit or miss problem with compatibility. Seems like it may be an issue with how Excel is checking for the new SPILL errors.