Problema definición:ROW() función comporta de manera diferente dentro de SUM() y SUMPRODUCT()
introducir cualquier número en la celda A1
. Ahora prueba las siguientes fórmulas en cualquier lugar en la primera fila.
=SUM(INDIRECT("A"&ROW()))
y
=SUMPRODUCT(INDIRECT("A"&ROW()))
La primera fórmula evalúa, el segundo se da un error #. Esto se debe a que la función ROW()
se comporta de forma diferente dentro de SUMPRODUCT()
.
En la primera fórmula, ROW()
devuelve 1
. En la segunda fórmula, la fila devuelve {1}
(matriz de una longitud), aunque la fórmula no se haya ingresado como una fórmula CSE.
¿Por qué sucede esto?
Antecedentes
necesito para evaluar una fórmula del tipo
=SUMPRODUCT(INDIRECT(*range formed by concatenation and using ROW()*)>1)
esto está funcionando a un error. Como una solución a este problema, ahora calculo ROW()
en otra celda (en la misma fila, obviamente) y concateno dentro de mi INDIRECT()
. Alternativamente, también he intentado encapsularlo dentro de una función de suma, como SUM(ROW())
, y eso también funciona.
Me gustaría agradecer que alguien pudiera explicar (o señalarme un recurso que pueda explicar) por qué ROW()
devuelve una matriz dentro de SUMPRODUCT()
sin que se haya ingresado CSE.
+1 buena investigación! –
+1 Esto es exactamente lo que necesitaba. La capacidad de 'desreferencia' de las funciones 'N()' y 'T()' me sorprende. De hecho, en la fórmula '= SUMPRODUCT (N (INDIRECT (" A "& ROW())))', la función 'N()' en realidad resuelve un error #VALOR (como se ve en la fórmula Evaluar, Excel 2003). Esto es extremadamente bueno saber Además, la información sobre los tipos de argumentos R/U y P/Q parece ser una buena explicación. El manejo de los elementos 'xlTypeNil' para los tipos P/Q parece coincidir con el comportamiento de' SUMPRODUCT() '. Gracias por una respuesta brillante. Nunca hubiera sabido qué hacer con Google. Merece un +10 !! – playercharlie
Me alegro de que esto haya ayudado: Laurent Longre descubrió este comportamiento originalmente y mostró cómo puede usar la función LLAMAR con referencia a xlcall.h para las funciones de la hoja de trabajo: http://www.cpearson.com/excel/Call.htm. En VBA esto todavía se puede acceder a través de: 'ExecuteExcel4Macro'. –