getglad
getglad

Reputation: 2562

Use result of IF formula in single cell Excel array formula

I have a column J with the below array formula:

=IF(ISNUMBER($H$5:$H$263), $H$5:$H$263, $I$5:$I$263)

And a cell on a summary line that references the contents of that column:

=SUMIF($J$5:$J$267,"<"&(TODAY()+365), $L$5:$L$263)

The above gives me the result I want, but I am wanting to consolidate this down into a single formula.

I have tried the below:

=SUMIF(IF(ISNUMBER($H$5:$H$263), $H$5:$H$263, $I$5:$I$263),"<"&(TODAY()+365), $L$5:$L$263)

But it ends up only summing the contents of the left side of the IF

So the below can get me what I want:

=SUMIF(IF(ISNUMBER($H$5:$H$263), $I$5:$I$263, $H$5:$H$263),"<"&(TODAY()+365), $L$5:$L$263) + SUMIF(IF(ISNUMBER($H$5:$H$263), $H$5:$H$263, $I$5:$I$263),"<"&(TODAY()+365), $L$5:$L$263)

But I'm not sure what I am doing wrong with the first shorter formula.

Upvotes: 0

Views: 75

Answers (1)

Scott Craner
Scott Craner

Reputation: 152465

Use this array formula:

=SUM(IF(IF(ISNUMBER($H$5:$H$263),$H$5:$H$263,$I$5:$I$263)<TODAY()+365,$L$5:$L$263))

Being an array formula it needs to be confirmed with Ctrl-Shift-Enter instead of Enter when exiting edit mode. If done correctly then Excel will put {} around the formula.

You can use SUMPRODUCT without the need for CSE:

=SUMPRODUCT(((ISNUMBER($H$5:$H$263)*($H$5:$H$263)+(NOT(ISNUMBER($H$5:$H$263)) * ($I$5:$I$263)))<TODAY()+365)*$L$5:$L$263)

I would also recommend the use of EDATE(TODAY(),12) in place of TODAY()+365 to deal with leap year.

Upvotes: 1

Related Questions