Array formula on INDEX function not working

V

vsoler

........A.........B
1.....1..........2
2.....3..........4
3.....7
4.....12
5.....13

To my surprise, {=SUM(INDEX(A1:A5;B1:B2))} returns 3, and not 15
(entered with Ctrl-Shift-Enter)

Can anybody explain and give correct formula?

Thank you
 
B

Bob Phillips

Because B1:B2 just returns the first value in that array, 2.

Try this

=SUM(INDEX(IF(ISNUMBER(MATCH(ROW(A1:A5),B1:B2,0)),A1:A5),0))

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
S

ShaneDevenshire

Hi,

The answer depends on the version, if you are using 2003 or less then

change the entries in column B to read 1,3 rather than 2,4.

=SUM(SUM(OFFSET(A1,B1:B2,)))

Enter this formula as an array.
 
R

Roger Govier

Hi

You could use the non-array entered formula
=SUM(INDEX(A1:A5,B1),INDEX(A1:A5,B2))
 
V

vsoler

Or use:
=SUM(SUM(OFFSET(A1,B1:B2-1,)))
(still array entered)









--

Dave Peterson- Ocultar texto de la cita -

- Mostrar texto de la cita -

Thank you all.

Bob's and Dave's formulas are perfect for me. Shane's, except for the
-1 was perfect as well.
Rogers' also works, but sometimes I can have more than 2 values to
add, and his formula would not adjust automatically.

I try to avoid the OFFSET function, whenever possible, because it is a
volatile function. But it works perfectly.

However, I am still wondering why the INDEX function does not work
when used with Ctrl-Shift-Enter keys.

Thank you again
 
R

Roger Govier

Hi
I agree, my non-array entered solution would have to add each term
require to the formula.
I also agree with avoiding volatile functions.

But Bob's solution works, and does not require any volatile functions.
 
D

Dave Peterson

When I use tools|evaluate formula, excel changes that row argument to a
number--not an array.
 
B

Bob Phillips

Indeed, it was written to specifically avoid volatile functions, and to be
extendible.

Boy I'm good! <vbseg>

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
Top