Forums Últimos mensajes - Powered by IBM
 

Alguien me puede explicar esto??? (Funcion FILA())

18/04/2005 - 13:41 por Luis Garcia | Informe spam
Me he vuelto loco hasta que he 'localizado' el error/problema/bug:

EXCEL2000 SP3
Para reproducir el ejemplo: 2 tablas en A1:D4 y F1:I4

A B C D F G H I
1 2 3 4 1 0 1 1
1 3 4 5 0 1 1 0
1 2 3 5 1 0 1 1
2 3 4 5 0 0 0 1

En la columna K quiero poner la suma de los elementos
de la primera tabla cuando en la segunda están el valor
correspondiente a 1 =>

K1:K4 =SUMAPRODUCTO($A1:$D1;$F1:$I1)

Ahora bien, el rango A1:D4 tiene un nombre: 'rDatos' con
lo que la formula deberia de quedar así (porque en mi caso real
yo no sé donde están los datos)

L1:L4 =SUMAPRODUCTO(DESREF(rDatos;FILA()-1;0;1;4);$F1:$I1)
ó
L1:L4 =SUMAPRODUCTO(DESREF(rDatos;FILA(A1)-1;0;1;4);$F1:$I1)

Pero me devuelve: #!VALOR! (¿?)

Ahora bien, como la formula (yo creo que) es correcta, la desgloso por
partes y lo reformulo en dos columnas:

M1:M4 =FILA()
N1:N4 =SUMAPRODUCTO(DESREF(rDatos;$M1-1;0;1;4);$F1:$I1)

y entonces me devuelve el valor correcto!!!.

Es decir, la funcion FILA() es la que me está dando problemas dentro
de mi formula!!!

Si alguien lo pudiera corroborar, mirar como NO necesitar tener una
columna 'extra', y de paso, porque me hace esto, pues me haria un
gran favor, gracias :-)

NOTA: Si sabeis de alguna forma diferente de conseguir lo mismo,
tambien me sirve, por supuesto.

Saludos
 

Leer las respuestas

#1 Fernando Arroyo
18/04/2005 - 15:15 | Informe spam
El problema es que la función FILA devuelve una matriz (aunque sea de un sólo valor, como en éste caso). Si en tu fórmula utilizas alguna función que "extraiga" el valor de la matriz devuelta por FILA, la fórmula funcionará. Por ejemplo:

=SUMAPRODUCTO(DESREF(rDatos;MIN(FILA())-1;0;1;4);$F1:$I1)

o también podrías usar la función INDICE para efectuar la extracción, aunque la fórmula resulta un poco más larga:

=SUMAPRODUCTO(DESREF(rDatos;INDICE(FILA();1)-1;0;1;4);$F1:$I1)

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Luis Garcia" escribió en el mensaje news:
Me he vuelto loco hasta que he 'localizado' el error/problema/bug:

EXCEL2000 SP3
Para reproducir el ejemplo: 2 tablas en A1:D4 y F1:I4

A B C D F G H I
1 2 3 4 1 0 1 1
1 3 4 5 0 1 1 0
1 2 3 5 1 0 1 1
2 3 4 5 0 0 0 1

En la columna K quiero poner la suma de los elementos
de la primera tabla cuando en la segunda están el valor
correspondiente a 1 =>

K1:K4 =SUMAPRODUCTO($A1:$D1;$F1:$I1)

Ahora bien, el rango A1:D4 tiene un nombre: 'rDatos' con
lo que la formula deberia de quedar así (porque en mi caso real
yo no sé donde están los datos)

L1:L4 =SUMAPRODUCTO(DESREF(rDatos;FILA()-1;0;1;4);$F1:$I1)
ó
L1:L4 =SUMAPRODUCTO(DESREF(rDatos;FILA(A1)-1;0;1;4);$F1:$I1)

Pero me devuelve: #!VALOR! (¿?)

Ahora bien, como la formula (yo creo que) es correcta, la desgloso por
partes y lo reformulo en dos columnas:

M1:M4 =FILA()
N1:N4 =SUMAPRODUCTO(DESREF(rDatos;$M1-1;0;1;4);$F1:$I1)

y entonces me devuelve el valor correcto!!!.

Es decir, la funcion FILA() es la que me está dando problemas dentro
de mi formula!!!

Si alguien lo pudiera corroborar, mirar como NO necesitar tener una
columna 'extra', y de paso, porque me hace esto, pues me haria un
gran favor, gracias :-)

NOTA: Si sabeis de alguna forma diferente de conseguir lo mismo,
tambien me sirve, por supuesto.

Saludos



Preguntas similares