Hi, can someone explain why this array formula works fine...

=IFERROR(INDEX(INDIRECT("Surveys!L6586:L7345"),SMALL(IF(INDIRECT("Surveys!L6586:L7345")<>"",ROW($E$4:$E$203)-ROW($E$4)+1,""),ROW($E$4:$E$203)-ROW($E$4)+1)),"")

But when I change the INDEX range to "Surveys!P6586:P7345" it doesn't.

=IFERROR(INDEX(INDIRECT("Surveys!P6586:P7345"),SMALL(IF(INDIRECT("Surveys!P6586:P7345")<>"",ROW($E$4:$E$203)-ROW($E$4)+1,""),ROW($E$4:$E$203)-ROW($E$4)+1)),"")

It is meant to return the non-blank cells from the INDIRECT range in cells D3:D203. Both columns L & P have the same content, just in a different order so I'm at a loss at to why it'll work for one and not the other.

Any help greatly appreciated.

Jason