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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Luis Garcia
18/04/2005 - 16:07 | Informe spam
Gracias por responder tan rapido.
Ya 'pensaba' que el problema era por ahi, pero en la ayuda de Excel dice:

"Devuelve el número de fila de una referencia."
"Ejemplos:
FILA(A3) es igual a 3
Cuando se introduce como una fórmula matricial en tres celdas verticales:
FILA(A3:B5) es igual a {3\4\5}"

La proxima vez, no me fiaré tanto de la ayuda :-)

Saludos


"Fernando Arroyo" escribió en...

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

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida