Home » excel » EXCEL: drag-across of INDIRECT function does not change cell reference between " " marks

# EXCEL: drag-across of INDIRECT function does not change cell reference between " " marks

Posted by: admin May 14, 2020 Leave a comment

Questions:

I’m having an issue with dragging cell formulas across and having them update the column reference.

I have multiple formula referencing a single cell (cell A2) to get a numeric value to incorporate into a cell reference – so I can update this single cell and have all the formula calculate over increasing ranges as I add data to my spreadsheet each month. I have used the INDIRECT function over several formula in the same column, but when I drag across to the right, the column letter reference does not update because it is in ” ” marks.

I did find a similar solution on the forum, but am confused since my ” ” marks contain two column/letter references.

The formula I am trying to drag across are like this:

``````=ConsecUpDays(INDIRECT("D25:D" &\$A\$2))
=MaxPosSequence(INDIRECT("D25:D" &\$A\$2))
=AVERAGE(IF((INDIRECT("D25:D" &\$A\$2))>0,((INDIRECT("D25:D" &\$A\$2))),""))
=COUNTIF((INDIRECT("D25:D" &\$A\$2)),"<>0")
``````

Any help would be much appreciated!

How to&Answers:

Use the INDEX equivalent and discard INDIRECT.

``````'locked as string with INDIRECT
=ConsecUpDays(INDIRECT("D25:D" &\$A\$2))
'relative column D with INDEX
=ConsecUpDays(INDEX(D:D, 25):INDEX(D:D, \$A\$2))
``````

Additionally, INDEX is non-volatile so you should not get quite as much calculation lag.

### Answer：

Thank you for that solution – looks more straightforward than what I came up with!

## I’m posting what I did do in the end to solve this:

Very big Thank You _kev and John Topley.

I see what you meant now _kev. Thanks John, I was able to use that to amend my formula and make them draggable.

My formula now read:

`````` =ConsecUpDays(INDIRECT(ADDRESS(25,COLUMN(D:D))&":"&ADDRESS(\$A\$2,COLUMN(D:D))))
=MaxPosSequence(INDIRECT(ADDRESS(25,COLUMN(D:D))&":"&ADDRESS(\$A\$2,COLUMN(D:D))))
``````

=AVERAGEIF(INDIRECT(ADDRESS(25,COLUMN(D:D))&”:”&ADDRESS(\$A\$2,COLUMN(D:D))),”>0″,INDIRECT(ADDRESS(25,COLUMN(D:D))&”:”&ADDRESS(\$A\$2,COLUMN(D:D))))

``````=COUNTIF((INDIRECT(ADDRESS(25,COLUMN(D:D))&":"&ADDRESS(\$A\$2,COLUMN(D:D)))),"<>0")
``````

Much appreciated.