rango sumaproducto

14/02/2005 - 22:15 por fredy | Informe spam
hola grupo!

tengo la siguiente formul
=SUMAPRODUCTO((SERVICIOS!$D$2:$D$5000>=$B2)*(SERVICIOS!$D$2:$D$5000<=$C2)*(SERVICIOS!$C$2:$C$5000=D$1)*(SERVICIOS!$B$2:$B$5000="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$5000))
me calcula la cantidad de fotocopias de cada empresa por semanas

la base esta en la hoja servicios y en la hoja semanal que es donde tengo
esta formula tengo algo como esto:

SEM FECHA INICIO FECHA FIN AGUAZUL
0 01/01/2004 02/01/2005 0
1 03/01/2005 07/01/2005 116
2 10/01/2005 14/01/2005 24

la formula esta bien y calcula efectivamente el numero de copias ( para este
caso aguazul)

quisiera saber como hago para no tener que cambiar el rango ($D$2:$D$5000) y
todos los que terminan en 5000 sino que el cuente la cantidad de filas
diligenciadas en la hoja servicios y tome el rango ( para no tener que
cambiar el rango cada vez que se generan mas registros)

trate de hacerlo con indirecto pero no supe utilizar esta funcion dentro de
la formula ... podrian ayudarme ;D

muchas gracias

Preguntas similare

Leer las respuestas

#1 KL
14/02/2005 - 22:29 | Informe spam
Hola Fredy,

?Has probado sustituir 5000 por 65536? Si tu libro no tiene muchas formulas
como esta, no deberia relentizar el sistema.

=SUMAPRODUCTO((SERVICIOS!$D$2:$D$65536>=$B2)*(SERVICIOS!$D$2:$D$65536<=$C2)*(SERVICIOS!$C$2:$C$65536=D$1)*(SERVICIOS!$B$2:$B$65536="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$65536))

Saludos,
KL

"fredy" wrote in message
news:
hola grupo!

tengo la siguiente formula
=SUMAPRODUCTO((SERVICIOS!$D$2:$D$5000>=$B2)*(SERVICIOS!$D$2:$D$5000<=$C2)*(SERVICIOS!$C$2:$C$5000=D$1)*(SERVICIOS!$B$2:$B$5000="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$5000))
me calcula la cantidad de fotocopias de cada empresa por semanas

la base esta en la hoja servicios y en la hoja semanal que es donde tengo
esta formula tengo algo como esto:

SEM FECHA INICIO FECHA FIN AGUAZUL
0 01/01/2004 02/01/2005 0
1 03/01/2005 07/01/2005 116
2 10/01/2005 14/01/2005 24

la formula esta bien y calcula efectivamente el numero de copias ( para
este
caso aguazul)

quisiera saber como hago para no tener que cambiar el rango ($D$2:$D$5000)
y
todos los que terminan en 5000 sino que el cuente la cantidad de filas
diligenciadas en la hoja servicios y tome el rango ( para no tener que
cambiar el rango cada vez que se generan mas registros)

trate de hacerlo con indirecto pero no supe utilizar esta funcion dentro
de
la formula ... podrian ayudarme ;D

muchas gracias
Respuesta Responder a este mensaje
#2 fredy
14/02/2005 - 23:59 | Informe spam
lo que pasa es que si tengo muchas formulas como esa... entonces tomar un
rango tan grande creo que si podria afectar el desempeño.. :(

"KL" wrote:

Hola Fredy,

?Has probado sustituir 5000 por 65536? Si tu libro no tiene muchas formulas
como esta, no deberia relentizar el sistema.

=SUMAPRODUCTO((SERVICIOS!$D$2:$D$65536>=$B2)*(SERVICIOS!$D$2:$D$65536<=$C2)*(SERVICIOS!$C$2:$C$65536=D$1)*(SERVICIOS!$B$2:$B$65536="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$65536))

Saludos,
KL

"fredy" wrote in message
news:
> hola grupo!
>
> tengo la siguiente formula
> =SUMAPRODUCTO((SERVICIOS!$D$2:$D$5000>=$B2)*(SERVICIOS!$D$2:$D$5000<=$C2)*(SERVICIOS!$C$2:$C$5000=D$1)*(SERVICIOS!$B$2:$B$5000="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$5000))
> me calcula la cantidad de fotocopias de cada empresa por semanas
>
> la base esta en la hoja servicios y en la hoja semanal que es donde tengo
> esta formula tengo algo como esto:
>
> SEM FECHA INICIO FECHA FIN AGUAZUL
> 0 01/01/2004 02/01/2005 0
> 1 03/01/2005 07/01/2005 116
> 2 10/01/2005 14/01/2005 24
>
> la formula esta bien y calcula efectivamente el numero de copias ( para
> este
> caso aguazul)
>
> quisiera saber como hago para no tener que cambiar el rango ($D$2:$D$5000)
> y
> todos los que terminan en 5000 sino que el cuente la cantidad de filas
> diligenciadas en la hoja servicios y tome el rango ( para no tener que
> cambiar el rango cada vez que se generan mas registros)
>
> trate de hacerlo con indirecto pero no supe utilizar esta funcion dentro
> de
> la formula ... podrian ayudarme ;D
>
> muchas gracias



Respuesta Responder a este mensaje
#3 Fernando Arroyo
15/02/2005 - 09:56 | Informe spam
"fredy" escribió en el mensaje news:
lo que pasa es que si tengo muchas formulas como esa... entonces tomar un
rango tan grande creo que si podria afectar el desempeño.. :(




Partiendo de la fórmula que puso KL, y suponiendo que en la hoja "Servicios" no hay nada "debajo" del rango de datos:

=SUMAPRODUCTO((INDIRECTO("Servicios!$D$2:$D$"&CONTARA(Servicios!B:B)+1)>=$B2)*(INDIRECTO("Servicios!$D$2:$D$"&CONTARA(Servicios!B:B)+1)<=$C2)*(INDIRECTO("Servicios!$C$2:$C$"&CONTARA(Servicios!B:B)+1)=D$1)*(INDIRECTO("Servicios!$B$2:$B$"&CONTARA(Servicios!B:B)+1)="FOTOCOPIAS")*(INDIRECTO("Servicios!$F$2:$F$"&CONTARA(Servicios!B:B)+1)))

Un saludo.


Fernando Arroyo
MS MVP - Excel


"KL" wrote:

> Hola Fredy,
>
> ?Has probado sustituir 5000 por 65536? Si tu libro no tiene muchas formulas
> como esta, no deberia relentizar el sistema.
>
> =SUMAPRODUCTO((SERVICIOS!$D$2:$D$65536>=$B2)*(SERVICIOS!$D$2:$D$65536<=$C2)*(SERVICIOS!$C$2:$C$65536=D$1)*(SERVICIOS!$B$2:$B$65536="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$65536))
>
> Saludos,
> KL
>
> "fredy" wrote in message
> news:
> > hola grupo!
> >
> > tengo la siguiente formula
> > =SUMAPRODUCTO((SERVICIOS!$D$2:$D$5000>=$B2)*(SERVICIOS!$D$2:$D$5000<=$C2)*(SERVICIOS!$C$2:$C$5000=D$1)*(SERVICIOS!$B$2:$B$5000="FOTOCOPIAS")*(SERVICIOS!$F$2:$F$5000))
> > me calcula la cantidad de fotocopias de cada empresa por semanas
> >
> > la base esta en la hoja servicios y en la hoja semanal que es donde tengo
> > esta formula tengo algo como esto:
> >
> > SEM FECHA INICIO FECHA FIN AGUAZUL
> > 0 01/01/2004 02/01/2005 0
> > 1 03/01/2005 07/01/2005 116
> > 2 10/01/2005 14/01/2005 24
> >
> > la formula esta bien y calcula efectivamente el numero de copias ( para
> > este
> > caso aguazul)
> >
> > quisiera saber como hago para no tener que cambiar el rango ($D$2:$D$5000)
> > y
> > todos los que terminan en 5000 sino que el cuente la cantidad de filas
> > diligenciadas en la hoja servicios y tome el rango ( para no tener que
> > cambiar el rango cada vez que se generan mas registros)
> >
> > trate de hacerlo con indirecto pero no supe utilizar esta funcion dentro
> > de
> > la formula ... podrian ayudarme ;D
> >
> > muchas gracias
>
>
>
Respuesta Responder a este mensaje
#4 KL
15/02/2005 - 10:26 | Informe spam
Hola chicos,

"Fernando Arroyo" wrote in message:
Partiendo de la formula que puso KL, y suponiendo que en la hoja
"Servicios" no hay nada "debajo" del rango de datos...



Solo anadir q creo q ademas de lo expuesto mas arriba la formula propuesta
por Fernando supone q no hay celdas vacias intercaladas en la columna [B:B]
y q la tabla empieza a partir de la primera linea, porque si no, el
resultado de CONTARA() no equivaldra al numero de la ultima fila.

Dicho lo anterior, creo q el uso de la funcion CONTARA() proporciona cierto
ahorro de recursos (ya que CONTARA es relativamente mas rapida q
SUMAPRODUCTO en este caso), pero por otro lado: seguimos usando el rango
entero de B1 a B65536, hemos anadido 5 ocurrencias de las funciones
INDIRECTO y CONTARA (total 10) y hemos alargado la formula bastante. Todo
esto hace q la ventaja de velocidad sea casi marginal.

Una posible opcion q se me ocurre para aumentar la velocidad de calculo es
sacar CONTARA(B:B) a una celda aparte y usar referencia a dicha celda desde
la formula principal. De todas maneras habria q ver hasta q punto ambas
formulas propuestas anteriormente afectan el desempeno.

Saludos,
KL
Respuesta Responder a este mensaje
#5 fredy
15/02/2005 - 23:09 | Informe spam
muchas gracias!!! :D eso era lo que queria... lo trate de hacer pero no pude
cuadrar la funcion indirecto...
finalmente deje esta formula,

=SUMAPRODUCTO((INDIRECTO("Servicios!$D$2:$D$"&$A$1)>=$B2)*(INDIRECTO("Servicios!$D$2:$D$"&$A$1)<=$C2)*(INDIRECTO("Servicios!$C$2:$C$"&$A$1)=D$1)*(INDIRECTO("Servicios!$B$2:$B$"&$A$1)="FOTOCOPIAS")*(INDIRECTO("Servicios!$F$2:$F$"&$A$1)))

teniendo en a1 =CONTARA(SERVICIOS!B:B)+1

"KL" wrote:

Hola chicos,

"Fernando Arroyo" wrote in message:
>Partiendo de la formula que puso KL, y suponiendo que en la hoja
>"Servicios" no hay nada "debajo" del rango de datos...

Solo anadir q creo q ademas de lo expuesto mas arriba la formula propuesta
por Fernando supone q no hay celdas vacias intercaladas en la columna [B:B]
y q la tabla empieza a partir de la primera linea, porque si no, el
resultado de CONTARA() no equivaldra al numero de la ultima fila.

Dicho lo anterior, creo q el uso de la funcion CONTARA() proporciona cierto
ahorro de recursos (ya que CONTARA es relativamente mas rapida q
SUMAPRODUCTO en este caso), pero por otro lado: seguimos usando el rango
entero de B1 a B65536, hemos anadido 5 ocurrencias de las funciones
INDIRECTO y CONTARA (total 10) y hemos alargado la formula bastante. Todo
esto hace q la ventaja de velocidad sea casi marginal.

Una posible opcion q se me ocurre para aumentar la velocidad de calculo es
sacar CONTARA(B:B) a una celda aparte y usar referencia a dicha celda desde
la formula principal. De todas maneras habria q ver hasta q punto ambas
formulas propuestas anteriormente afectan el desempeno.

Saludos,
KL




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