Duda sobre rapidez y recursos

21/03/2006 - 16:51 por Findeo | Informe spam
Tengo una duda sobre cómo es mejor y más rápido realizar ciertas operaciones
que estoy realizando en una hoja de cálculo bastante extensa y con bastantes
macros.
El caso es que tengo algunas funciones, bastante sencillas, desarrolladas
como funciones de usuario en macros. Sin embargo, también lo puedo hacer
definiéndola dentro de la definición de nombres.
Esto no lo tengo del todo claro, pues no se si la utilización de nombre
consume más recursos o, por el contrario, el hacerlo a base de macros es más
lento y utiliza más recursos que de la otra forma.

¿Sabría alguien en este foro cual es el mejor sistema?

Un saludo,

FindeO
 

Leer las respuestas

#1 KL
21/03/2006 - 20:44 | Informe spam
Hola Findeo,

Como regla general las formulas que usan funciones de hoja de calculo son muuuuuucho mas rapidas que las que usan las definidas en VBA. Normalmente las funciones hechas en VBA se usan si :

1) no existe forma eficiente de realizar el calculo (eficiencia no significa necesariamente brevedad en una formula). Estas situaciones son mas bien escasas.
2) si se quiere evitar la volatilidad de algunas funciones que podrian desencadenar un recalculo general en hojas muy cargadas de formulas.

Los nombres definidos en hoja (menu Insertar>Nombre>Definir...) en general consumen los mismos recursos y son igual de rapidas que las formulas normales. Sin embargo, pueden jugar un papel vital en al menos los siguientes casos:

1) cuando por alguna razon (normalmente la estetica) se quiere ahorrar espacio en hoja - no se quiere usar formulas o constantes en celdas.
2) cuando se buscan formulas mas cortas (el limite es de 1024 caractreres en celda) y mas inteligibles (los nombres suelen ser mas explicativos que las referencias a rangos)
3) cuando el resultado de un calculo se usa en varias formulas o instancias dentro de una formula para evitar repeticiones y recalculos inecesarios (o sea como una variable). Puedes meter tablas enteras en forma de matrices fijas, formulas o rangos.
4) para usar rangos ahi donde de lo contrario no se podrian usar, p.ej. los rangos en otra hoja solo son admitidos por la Validadcion de datos en celda atraves de un nombre, etc.
5) algunos otros

Cada una de las formas tiene sus ventajas/desventajas y para darte una respuesta concreta habria que ver la situacion concreta y mejor en detalle: datos, formulas usadas, etc.

Tambien te recomiendo (muy insistentemente :-)) que revises la siguiente web prestando mucha atencion a todos los enlaces de la parte de arriba de la hoja:

http://www.decisionmodels.com/optspeed.htm

de hecho te recomiendo que estudies toda la web ya que regalan un monton de informacion que no la encuentras en ningun otro sitio:

http://www.decisionmodels.com/

Para mi esta web es lo mejor que hay sobre la optimizacion de calculos.

Ademas, si tu fichero es para uso en empresa te recomendaria que compres la herramienta FastExcel que vende dicha web:

http://www.decisionmodels.com/fxlfaq.htm

Saludos,
KL


"Findeo" wrote in message news:
Tengo una duda sobre cómo es mejor y más rápido realizar ciertas operaciones
que estoy realizando en una hoja de cálculo bastante extensa y con bastantes
macros.
El caso es que tengo algunas funciones, bastante sencillas, desarrolladas
como funciones de usuario en macros. Sin embargo, también lo puedo hacer
definiéndola dentro de la definición de nombres.
Esto no lo tengo del todo claro, pues no se si la utilización de nombre
consume más recursos o, por el contrario, el hacerlo a base de macros es más
lento y utiliza más recursos que de la otra forma.

¿Sabría alguien en este foro cual es el mejor sistema?

Un saludo,

FindeO

Preguntas similares