Tabla DINAMICA

16/12/2005 - 01:20 por Gabriel Raigosa | Informe spam
Saludos:

Tengo una tabla dinamica que resume varios campos (en columna), ingresos y
egresos de varios miembros, los miembros en el campo fila.

La ultima columna de la tabla dinamica, "total", saca el total por persona,
sumando los ingresos que se registran en la base de datos como positivos y
restando los egresos que se registran en la base de datos como negativos.

Cuando los ingresos superan los egresos el resultado es positivo al final,
si los egresos superan los ingresos el resultado final del cliente es
negativo (esto sucede por que los egresos generalmente son prestamos).

Suma de monto sección
responsable Movimiento2 Movimiento1 Total general
Juan Robles 10900 -3200 7700
Julia Torres -2890 13000 10110
Lucía Lighnam -3900 -3900
María Iriban -2720 -2720
Matías Alonso -22400 -22400
Total general 5290 -16500 -11210



¿Como puedo hacer para que la tabla dinamica me muestro solo los valores
positivos o solo los valores negativos?

Al final quiero un informe completo como el que se puede observar aquí

Y quiero tener la posibilidad de ver solo Positivos y Solo negativos.

TKS...
Gabriel Raigosa

GabrielRaigosa@hot.mail.com

Preguntas similare

Leer las respuestas

#6 KL
17/12/2005 - 20:55 | Informe spam
Hola Gabriel,

Ya puestos... aqui podrias encontrar mas informacion sobre la optimizacion de las formulas:

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

y una herramienta que permite identificar los enbotellamientos y otras oportunidades de optimizacion de aplicaciones hechas en
Excel:

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

Saludos,
KL


"Gabriel Raigosa" wrote in message news:Oh4t8$
Hola Hector:

Pienso que es muy satisfactorio cuando uno intenta ayudarle a alguien y al final saber si las cosas sirvieron o no sirvieron.

Le cuento lo que ha pasado.

Mi archivo tiene una hoja llamada "clientes", allí esta el documento de identidad de cada una de las personas, por lo tanto ya son
registros unicos, además de tener información adicional como nombre, apellido, etc...

Otra hoja llamada "Base de DATOS", donde se ingresa el documento al momento de adicionar un registro nuevo, cada registro que se
ingresa a la base de datos puede tener un concepto, "ahorro", "prestamo", etc...

Pase la función de la hoja "Base de DATOS" a la hoja de clientes (los 11.000 calculos cambiaron a 144), ya es claro que no importa
en que hoja esta la función pues el resultado sera el mismo, a cada registro en "clientes" le puse en un campo nuevo (el nuevo
campo "cumple") la función en cuestión.

=SI(SUMAR.SI('Base de DATOS'!C:C,'Base de DATOS'!C7,'Base de DATOS'!F:F)>=0,"NO debe","SI debe")

Ahora en "Base de DATOS" el campo cumple tiene una ahora una función de busqueda, buscar en clientes el resultado que da el campo
cumple

=BUSCARV(C7,Clientes!$A$8:$W$464,23,FALSO).

Eso significa 11.000 funciones de busqueda en "Base de DATOS".

El resultado final es un recalculo "MENOS LENTO", mejoro el proceso.

Conclusión: La primera función 11.000 veces es mucho mas lenta que la segunda función también 11.000 veces.

Interesante el resultado, pues cuando se tienen hojas de calculo pequeñas usamos las funciones sin darnos cuenta que requieren mas
o menos tiempo de proceso. Y por que preocuparse con hojas de calculo pequeñas, entre 1 decima de segundo y 2 decimas de segundo
no hay mucha diferencia, pero cuando la diferencia esta entre 6 segundos y 115 segundos, el asunto es muy diferente. tiempos
cronometrados en este caso particular.

En definitiva mejoro mucho el proceso general. Y seguro que se puede mejorar mas, mi archivo tiene unas pequeñas macros, pero es
para procesos muy simples, ordenar datos, copiar registros de un lado a otro, actualizar todas las tablas dinamicas luego de una
adición de registros en la "Base de DATOS", etc.. Tendre que gastarle tiempo y empezar a optimizarla, es una interesante
oportunidad tener un archivo tan exigente en un equipo con especificaciones modestas. Antes corria el archivo en un equipo mucho
mas poderoso y nunca le preste atención a este problema, desafortunadamente por cosas de la vida mi equipo quedo en manos de los
amigos de lo ajeno, pero este equipo esta bien.

Por eso digo ¡Mientas mas estudio Excel, mas cuenta me doy que menos se! o deberia decir ¡Mientas mas estudio Excel, mas cuenta me
doy que menos sabia!

Esta es mi aplicación favorita, he estado pensado ponerme a estudiar Acces, pero el Excel no me deja tiempo.

Suerte y gracias, seguimos en contacto.

Gabriel Raigosa
Medellín - Colombia

"Héctor Miguel" escribió en el mensaje news:
hola, Gabriel !

'partiendo' de que aceptas todo tipo de 'consejos' :D ...
1) el 'problema' del tiempo de re/calclos se debe a las 11,000+ FORMULAS con el 'si-condicional' de una de las 12 condiciones :-(
2) hice una 'replica' de los datos de tu ejemplo hasta acumular +/- 8,000 filas con datos [obviamente los mismos n_veces]
[efectivamente]... por muy 'rapida' que sea una pc... resulta mas que 'tedioso' el tiempo de espera por el re/calculo :)
3) la siguiente propuesta 'se toma' un tiempo de re/calculo en las +/- 8,000 formulas de... C-E-R-O N-A-D-A ;)
seguramente vayas a idear la forma de 'automatizar el proceso' con la ayuda de algun codigo... pero la idea es:
a) copia el encabezado/titulo de los nombres [responsable] en alguna celda +/- alejada de la 'base de datos'
b) utiliza [menu] datos > filtro > filtro avanzado...
-> con la opcion de 'copiar a otro lugar' Y -> 'solo registros unicos'
-> selecciona como rango de salida [copiar a:] -> la celda donde copiaste ESE UNICO 'encabezado'
c) ordena el extracto con los nombres unicos -> en ascendente
d) utiliza la misma formula [la que usas en las 11,000+ filas] -> SOLO para el rango de los nombres 'extraidos'
f) para 'llenar' el campo 'cumple' de tu 'base de datos original'... usas la funcion -> buscarv(...)

haz algunas pruebas y... comentas ?
saludos,
hector.

mensaje original [fraccion] ==>>> ... tengo el problema resuelto con otra funcion... mas o menos parecida
... aunque si funciona bien, no me parece muy practica... intentare contarle un poco mejor la situacion
... un ejemplo;
"archivo plano (texto delimitado por comas) por solo quiere ensayar"
-
fecha,seccion,responsable,concepto,monto,Cumple
enero,Administracion,Juan Robles,egresos,12000,NO debe
enero,Producción,Miguel Rondis,egresos,-2500,NO debe
enero,Publicidad,Alejandra Mitchel,egresos,-26800,SI debe
enero,Administracion,Juan Robles,Ingresos,2500,NO debe
enero,Administracion,Maria Iriban,Ingresos,1200,NO debe
enero,Administracion,Julia Torres,Ingresos,850,NO debe
enero,Produccion,Miguel Rondis,Ingresos,2200,NO debe
enero,Publicidad,Alejandra Mitchel,Ingresos,1800,SI debe
enero,Publicidad,Tomas Mercante,Ingresos,1500,SI debe
enero,Gerencia,Lucia Lighnam,Ingresos,1300,NO debe
enero,Gerencia,Matias Alonso,Ingresos,2800,SI debe
enero,Produccion,Carlos Gonzalez,Ingresos,850,NO debe [etc. etc. etc.]
los campos ==> fecha,seccion,responsable,concepto,monto ==> "son datos"
el campo "cumple" (columna F), tiene la siguiente funcion
=SI(SUMAR.SI(C:C,C2,E:E)>=0,"NO debe","SI debe")
Con la base de datos anterior he elaborado una tabla dinamica
En pagina; "cumple"
En fila; "responsable"
En columna; "concepto"
En datos; "monto" (suma de monto)
El campo "fecha" no lo uso en esta tabla.
De esta manera con el campo pagina puedo filtrar los valores "mayores o iguales que cero",
o menores que cero, es decir, los que "SI deben" y los que "NO deben"
La base de datos real tiene actualmente, 11.000 registros, cantidad que puede cambiar mensualmente.
... 12 campos (condicion que creo es menos importante)...
Ademas de otras hojas que lo hacen "pesado" a nivel de calculo para el equipo en el que funciona.
... PC AMD Duron de 750 MHZ con 448 MB en RAM, y cada vez que se tiene que filtrar
y alguna veces modificar un valor numerico de la columna "monto"
la base de datos empieza el proceso de recalculo, y es muy lento.
Lo que intento es buscar otras formas para hacer lo mismo y todos los consejos son muy bien recibidos.








Respuesta Responder a este mensaje
#7 Héctor Miguel
17/12/2005 - 21:07 | Informe spam
hola, Gabriel !

Pienso que es muy satisfactorio cuando uno intenta ayudarle a alguien y al final saber si las cosas sirvieron o no sirvieron.



lo que comentas es muy cierto, los 'feed-backs' sirven para ello, y lo mas importante: para quien tenga condiciones 'similares'
por lo que es 'doblemente' agradecido un 'feed-back' :))

... (los 11.000 calculos cambiaron a 144):
=SI(SUMAR.SI('Base de DATOS'!C:C,'Base de DATOS'!C7,'Base de DATOS'!F:F)>=0,"NO debe","SI debe")
Ahora en "Base de DATOS" el campo cumple tiene... una funcion de busqueda:
=BUSCARV(C7,Clientes!$A$8:$W$464,23,FALSO).
... 11.000 funciones de busqueda en "Base de DATOS"... un recalculo "MENOS LENTO", mejoro el proceso.
... cuando... hojas de calculo peque#as usamos las funciones sin darnos cuenta que requieren mas o menos tiempo de proceso
... por que preocuparse... entre 1... y 2 decimas de segundo no hay mucha diferencia
... cuando la diferencia esta entre 6 segundos y 115 segundos, el asunto es muy diferente



lo que alcanzo a 'rescatar' de tu feed-back [creo que] es +/- lo siguiente:
al sustituir 11,000+ fuciones 'come-recursos' -> por 11,000+ funciones mas 'amigables' [con los recursos]
ha permitido un 'ahorro' en tiempo de proceso de de 115 a solo 5 segundos [para el equpo en cuestion]
lo que significa un [nada 'despreciable'] ahorro de mas del 95% del tiempo que 'se tomaba' antes ;)

saludos,
hector.

p.d. no dejes de visitar las paginas que apunta KL [entre otras]... son [mucho mas que] excel...entes ! ;)
Respuesta Responder a este mensaje
#8 Gabriel Raigosa
18/12/2005 - 00:32 | Informe spam
Saludos KL,

Interesante aplicacon FastExcel, pero $$$$$

TKS

Gabriel Raigosa
Medellin - Colombia

"KL" escribio en el mensaje
news:
Hola Gabriel,

Ya puestos... aqui podrias encontrar mas informacion sobre la optimizacion
de las formulas:

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

y una herramienta que permite identificar los enbotellamientos y otras
oportunidades de optimizacion de aplicaciones hechas en Excel:

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

Saludos,
KL


"Gabriel Raigosa" wrote in message
news:Oh4t8$
Hola Hector:

Pienso que es muy satisfactorio cuando uno intenta ayudarle a alguien y
al final saber si las cosas sirvieron o no sirvieron.

Le cuento lo que ha pasado.

Mi archivo tiene una hoja llamada "clientes", allí esta el documento de
identidad de cada una de las personas, por lo tanto ya son registros
unicos, además de tener información adicional como nombre, apellido,
etc...

Otra hoja llamada "Base de DATOS", donde se ingresa el documento al
momento de adicionar un registro nuevo, cada registro que se ingresa a la
base de datos puede tener un concepto, "ahorro", "prestamo", etc...

Pase la función de la hoja "Base de DATOS" a la hoja de clientes (los
11.000 calculos cambiaron a 144), ya es claro que no importa en que hoja
esta la función pues el resultado sera el mismo, a cada registro en
"clientes" le puse en un campo nuevo (el nuevo campo "cumple") la función
en cuestión.

=SI(SUMAR.SI('Base de DATOS'!C:C,'Base de DATOS'!C7,'Base de
DATOS'!F:F)>=0,"NO debe","SI debe")

Ahora en "Base de DATOS" el campo cumple tiene una ahora una función de
busqueda, buscar en clientes el resultado que da el campo cumple

=BUSCARV(C7,Clientes!$A$8:$W$464,23,FALSO).

Eso significa 11.000 funciones de busqueda en "Base de DATOS".

El resultado final es un recalculo "MENOS LENTO", mejoro el proceso.

Conclusión: La primera función 11.000 veces es mucho mas lenta que la
segunda función también 11.000 veces.

Interesante el resultado, pues cuando se tienen hojas de calculo pequeñas
usamos las funciones sin darnos cuenta que requieren mas o menos tiempo
de proceso. Y por que preocuparse con hojas de calculo pequeñas, entre 1
decima de segundo y 2 decimas de segundo no hay mucha diferencia, pero
cuando la diferencia esta entre 6 segundos y 115 segundos, el asunto es
muy diferente. tiempos cronometrados en este caso particular.

En definitiva mejoro mucho el proceso general. Y seguro que se puede
mejorar mas, mi archivo tiene unas pequeñas macros, pero es para procesos
muy simples, ordenar datos, copiar registros de un lado a otro,
actualizar todas las tablas dinamicas luego de una adición de registros
en la "Base de DATOS", etc.. Tendre que gastarle tiempo y empezar a
optimizarla, es una interesante oportunidad tener un archivo tan exigente
en un equipo con especificaciones modestas. Antes corria el archivo en
un equipo mucho mas poderoso y nunca le preste atención a este problema,
desafortunadamente por cosas de la vida mi equipo quedo en manos de los
amigos de lo ajeno, pero este equipo esta bien.

Por eso digo ¡Mientas mas estudio Excel, mas cuenta me doy que menos se!
o deberia decir ¡Mientas mas estudio Excel, mas cuenta me doy que menos
sabia!

Esta es mi aplicación favorita, he estado pensado ponerme a estudiar
Acces, pero el Excel no me deja tiempo.

Suerte y gracias, seguimos en contacto.

Gabriel Raigosa
Medellín - Colombia

"Héctor Miguel" escribió en el mensaje
news:
hola, Gabriel !

'partiendo' de que aceptas todo tipo de 'consejos' :D ...
1) el 'problema' del tiempo de re/calclos se debe a las 11,000+ FORMULAS
con el 'si-condicional' de una de las 12 condiciones :-(
2) hice una 'replica' de los datos de tu ejemplo hasta acumular +/-
8,000 filas con datos [obviamente los mismos n_veces]
[efectivamente]... por muy 'rapida' que sea una pc... resulta mas que
'tedioso' el tiempo de espera por el re/calculo :)
3) la siguiente propuesta 'se toma' un tiempo de re/calculo en las +/-
8,000 formulas de... C-E-R-O N-A-D-A ;)
seguramente vayas a idear la forma de 'automatizar el proceso' con la
ayuda de algun codigo... pero la idea es:
a) copia el encabezado/titulo de los nombres [responsable] en alguna
celda +/- alejada de la 'base de datos'
b) utiliza [menu] datos > filtro > filtro avanzado...
-> con la opcion de 'copiar a otro lugar' Y -> 'solo registros
unicos'
-> selecciona como rango de salida [copiar a:] -> la celda donde
copiaste ESE UNICO 'encabezado'
c) ordena el extracto con los nombres unicos -> en ascendente
d) utiliza la misma formula [la que usas en las 11,000+ filas] ->
SOLO para el rango de los nombres 'extraidos'
f) para 'llenar' el campo 'cumple' de tu 'base de datos original'...
usas la funcion -> buscarv(...)

haz algunas pruebas y... comentas ?
saludos,
hector.

mensaje original [fraccion] ==>>>> ... tengo el problema resuelto con otra funcion... mas o menos parecida
... aunque si funciona bien, no me parece muy practica... intentare
contarle un poco mejor la situacion
... un ejemplo;
"archivo plano (texto delimitado por comas) por solo quiere ensayar"
-
fecha,seccion,responsable,concepto,monto,Cumple
enero,Administracion,Juan Robles,egresos,12000,NO debe
enero,Producción,Miguel Rondis,egresos,-2500,NO debe
enero,Publicidad,Alejandra Mitchel,egresos,-26800,SI debe
enero,Administracion,Juan Robles,Ingresos,2500,NO debe
enero,Administracion,Maria Iriban,Ingresos,1200,NO debe
enero,Administracion,Julia Torres,Ingresos,850,NO debe
enero,Produccion,Miguel Rondis,Ingresos,2200,NO debe
enero,Publicidad,Alejandra Mitchel,Ingresos,1800,SI debe
enero,Publicidad,Tomas Mercante,Ingresos,1500,SI debe
enero,Gerencia,Lucia Lighnam,Ingresos,1300,NO debe
enero,Gerencia,Matias Alonso,Ingresos,2800,SI debe
enero,Produccion,Carlos Gonzalez,Ingresos,850,NO debe [etc. etc.
etc.]
los campos ==> fecha,seccion,responsable,concepto,monto ==> "son datos"
el campo "cumple" (columna F), tiene la siguiente funcion
=SI(SUMAR.SI(C:C,C2,E:E)>=0,"NO debe","SI debe")
Con la base de datos anterior he elaborado una tabla dinamica
En pagina; "cumple"
En fila; "responsable"
En columna; "concepto"
En datos; "monto" (suma de monto)
El campo "fecha" no lo uso en esta tabla.
De esta manera con el campo pagina puedo filtrar los valores "mayores o
iguales que cero",
o menores que cero, es decir, los que "SI deben" y los que "NO deben"
La base de datos real tiene actualmente, 11.000 registros, cantidad que
puede cambiar mensualmente.
... 12 campos (condicion que creo es menos importante)...
Ademas de otras hojas que lo hacen "pesado" a nivel de calculo para el
equipo en el que funciona.
... PC AMD Duron de 750 MHZ con 448 MB en RAM, y cada vez que se tiene
que filtrar
y alguna veces modificar un valor numerico de la columna "monto"
la base de datos empieza el proceso de recalculo, y es muy lento.
Lo que intento es buscar otras formas para hacer lo mismo y todos los
consejos son muy bien recibidos.











Respuesta Responder a este mensaje
#9 KL
18/12/2005 - 00:38 | Informe spam
Lo que no cuesta nada y no tiene precio es esto: http://www.decisionmodels.com/optspeedb.htm - no dejes de leerlo todo (fijate en
los links en la parte de arriba de la pagina)
Lo de la aplicacion, te aseguro que vale su precio en oro.

Saludos,
KL



"Gabriel Raigosa" wrote in message news:%
Saludos KL,

Interesante aplicacon FastExcel, pero $$$$$

TKS

Gabriel Raigosa
Medellin - Colombia

"KL" escribio en el mensaje news:
Hola Gabriel,

Ya puestos... aqui podrias encontrar mas informacion sobre la optimizacion de las formulas:

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

y una herramienta que permite identificar los enbotellamientos y otras oportunidades de optimizacion de aplicaciones hechas en
Excel:

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

Saludos,
KL


"Gabriel Raigosa" wrote in message news:Oh4t8$
Hola Hector:

Pienso que es muy satisfactorio cuando uno intenta ayudarle a alguien y al final saber si las cosas sirvieron o no sirvieron.

Le cuento lo que ha pasado.

Mi archivo tiene una hoja llamada "clientes", allí esta el documento de identidad de cada una de las personas, por lo tanto ya
son registros unicos, además de tener información adicional como nombre, apellido, etc...

Otra hoja llamada "Base de DATOS", donde se ingresa el documento al momento de adicionar un registro nuevo, cada registro que se
ingresa a la base de datos puede tener un concepto, "ahorro", "prestamo", etc...

Pase la función de la hoja "Base de DATOS" a la hoja de clientes (los 11.000 calculos cambiaron a 144), ya es claro que no
importa en que hoja esta la función pues el resultado sera el mismo, a cada registro en "clientes" le puse en un campo nuevo (el
nuevo campo "cumple") la función en cuestión.

=SI(SUMAR.SI('Base de DATOS'!C:C,'Base de DATOS'!C7,'Base de DATOS'!F:F)>=0,"NO debe","SI debe")

Ahora en "Base de DATOS" el campo cumple tiene una ahora una función de busqueda, buscar en clientes el resultado que da el
campo cumple

=BUSCARV(C7,Clientes!$A$8:$W$464,23,FALSO).

Eso significa 11.000 funciones de busqueda en "Base de DATOS".

El resultado final es un recalculo "MENOS LENTO", mejoro el proceso.

Conclusión: La primera función 11.000 veces es mucho mas lenta que la segunda función también 11.000 veces.

Interesante el resultado, pues cuando se tienen hojas de calculo pequeñas usamos las funciones sin darnos cuenta que requieren
mas o menos tiempo de proceso. Y por que preocuparse con hojas de calculo pequeñas, entre 1 decima de segundo y 2 decimas de
segundo no hay mucha diferencia, pero cuando la diferencia esta entre 6 segundos y 115 segundos, el asunto es muy diferente.
tiempos cronometrados en este caso particular.

En definitiva mejoro mucho el proceso general. Y seguro que se puede mejorar mas, mi archivo tiene unas pequeñas macros, pero
es para procesos muy simples, ordenar datos, copiar registros de un lado a otro, actualizar todas las tablas dinamicas luego de
una adición de registros en la "Base de DATOS", etc.. Tendre que gastarle tiempo y empezar a optimizarla, es una interesante
oportunidad tener un archivo tan exigente en un equipo con especificaciones modestas. Antes corria el archivo en un equipo
mucho mas poderoso y nunca le preste atención a este problema, desafortunadamente por cosas de la vida mi equipo quedo en manos
de los amigos de lo ajeno, pero este equipo esta bien.

Por eso digo ¡Mientas mas estudio Excel, mas cuenta me doy que menos se! o deberia decir ¡Mientas mas estudio Excel, mas cuenta
me doy que menos sabia!

Esta es mi aplicación favorita, he estado pensado ponerme a estudiar Acces, pero el Excel no me deja tiempo.

Suerte y gracias, seguimos en contacto.

Gabriel Raigosa
Medellín - Colombia

"Héctor Miguel" escribió en el mensaje news:
hola, Gabriel !

'partiendo' de que aceptas todo tipo de 'consejos' :D ...
1) el 'problema' del tiempo de re/calclos se debe a las 11,000+ FORMULAS con el 'si-condicional' de una de las 12 condiciones
:-(
2) hice una 'replica' de los datos de tu ejemplo hasta acumular +/- 8,000 filas con datos [obviamente los mismos n_veces]
[efectivamente]... por muy 'rapida' que sea una pc... resulta mas que 'tedioso' el tiempo de espera por el re/calculo :)
3) la siguiente propuesta 'se toma' un tiempo de re/calculo en las +/- 8,000 formulas de... C-E-R-O N-A-D-A ;)
seguramente vayas a idear la forma de 'automatizar el proceso' con la ayuda de algun codigo... pero la idea es:
a) copia el encabezado/titulo de los nombres [responsable] en alguna celda +/- alejada de la 'base de datos'
b) utiliza [menu] datos > filtro > filtro avanzado...
-> con la opcion de 'copiar a otro lugar' Y -> 'solo registros unicos'
-> selecciona como rango de salida [copiar a:] -> la celda donde copiaste ESE UNICO 'encabezado'
c) ordena el extracto con los nombres unicos -> en ascendente
d) utiliza la misma formula [la que usas en las 11,000+ filas] -> SOLO para el rango de los nombres 'extraidos'
f) para 'llenar' el campo 'cumple' de tu 'base de datos original'... usas la funcion -> buscarv(...)

haz algunas pruebas y... comentas ?
saludos,
hector.

mensaje original [fraccion] ==>>>>> ... tengo el problema resuelto con otra funcion... mas o menos parecida
... aunque si funciona bien, no me parece muy practica... intentare contarle un poco mejor la situacion
... un ejemplo;
"archivo plano (texto delimitado por comas) por solo quiere ensayar"
-
fecha,seccion,responsable,concepto,monto,Cumple
enero,Administracion,Juan Robles,egresos,12000,NO debe
enero,Producción,Miguel Rondis,egresos,-2500,NO debe
enero,Publicidad,Alejandra Mitchel,egresos,-26800,SI debe
enero,Administracion,Juan Robles,Ingresos,2500,NO debe
enero,Administracion,Maria Iriban,Ingresos,1200,NO debe
enero,Administracion,Julia Torres,Ingresos,850,NO debe
enero,Produccion,Miguel Rondis,Ingresos,2200,NO debe
enero,Publicidad,Alejandra Mitchel,Ingresos,1800,SI debe
enero,Publicidad,Tomas Mercante,Ingresos,1500,SI debe
enero,Gerencia,Lucia Lighnam,Ingresos,1300,NO debe
enero,Gerencia,Matias Alonso,Ingresos,2800,SI debe
enero,Produccion,Carlos Gonzalez,Ingresos,850,NO debe [etc. etc. etc.]
los campos ==> fecha,seccion,responsable,concepto,monto ==> "son datos"
el campo "cumple" (columna F), tiene la siguiente funcion
=SI(SUMAR.SI(C:C,C2,E:E)>=0,"NO debe","SI debe")
Con la base de datos anterior he elaborado una tabla dinamica
En pagina; "cumple"
En fila; "responsable"
En columna; "concepto"
En datos; "monto" (suma de monto)
El campo "fecha" no lo uso en esta tabla.
De esta manera con el campo pagina puedo filtrar los valores "mayores o iguales que cero",
o menores que cero, es decir, los que "SI deben" y los que "NO deben"
La base de datos real tiene actualmente, 11.000 registros, cantidad que puede cambiar mensualmente.
... 12 campos (condicion que creo es menos importante)...
Ademas de otras hojas que lo hacen "pesado" a nivel de calculo para el equipo en el que funciona.
... PC AMD Duron de 750 MHZ con 448 MB en RAM, y cada vez que se tiene que filtrar
y alguna veces modificar un valor numerico de la columna "monto"
la base de datos empieza el proceso de recalculo, y es muy lento.
Lo que intento es buscar otras formas para hacer lo mismo y todos los consejos son muy bien recibidos.















Respuesta Responder a este mensaje
#10 Gabriel Raigosa
18/12/2005 - 07:44 | Informe spam
Saludos KL,

Si baje el complemento, y me pide la contrasena, el problema es que no tengo
dinero para comprarlo :(

Asi es que sin "oro", nada puedo hacer.

De esa pagina ya habia bajado el gratis para le revision de celdas
nombradas.

TKS

Gabriel Raigosa
Medellin - Colombia

"Mientas mas estudio Excel, mas cuenta me doy que menos sabia"
"KL" escribio en el mensaje
news:%
Lo que no cuesta nada y no tiene precio es esto:
http://www.decisionmodels.com/optspeedb.htm - no dejes de leerlo todo
(fijate en los links en la parte de arriba de la pagina)
Lo de la aplicacion, te aseguro que vale su precio en oro.

Saludos,
KL



"Gabriel Raigosa" wrote in message
news:%
Saludos KL,

Interesante aplicacon FastExcel, pero $$$$$

TKS

Gabriel Raigosa
Medellin - Colombia

"KL" escribio en el mensaje
news:
Hola Gabriel,

Ya puestos... aqui podrias encontrar mas informacion sobre la
optimizacion de las formulas:

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

y una herramienta que permite identificar los enbotellamientos y otras
oportunidades de optimizacion de aplicaciones hechas en Excel:

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

Saludos,
KL


"Gabriel Raigosa" wrote in message
news:Oh4t8$
Hola Hector:

Pienso que es muy satisfactorio cuando uno intenta ayudarle a alguien y
al final saber si las cosas sirvieron o no sirvieron.

Le cuento lo que ha pasado.

Mi archivo tiene una hoja llamada "clientes", allí esta el documento de
identidad de cada una de las personas, por lo tanto ya son registros
unicos, además de tener información adicional como nombre, apellido,
etc...

Otra hoja llamada "Base de DATOS", donde se ingresa el documento al
momento de adicionar un registro nuevo, cada registro que se ingresa a
la base de datos puede tener un concepto, "ahorro", "prestamo", etc...

Pase la función de la hoja "Base de DATOS" a la hoja de clientes (los
11.000 calculos cambiaron a 144), ya es claro que no importa en que
hoja esta la función pues el resultado sera el mismo, a cada registro
en "clientes" le puse en un campo nuevo (el nuevo campo "cumple") la
función en cuestión.

=SI(SUMAR.SI('Base de DATOS'!C:C,'Base de DATOS'!C7,'Base de
DATOS'!F:F)>=0,"NO debe","SI debe")

Ahora en "Base de DATOS" el campo cumple tiene una ahora una función de
busqueda, buscar en clientes el resultado que da el campo cumple

=BUSCARV(C7,Clientes!$A$8:$W$464,23,FALSO).

Eso significa 11.000 funciones de busqueda en "Base de DATOS".

El resultado final es un recalculo "MENOS LENTO", mejoro el proceso.

Conclusión: La primera función 11.000 veces es mucho mas lenta que la
segunda función también 11.000 veces.

Interesante el resultado, pues cuando se tienen hojas de calculo
pequeñas usamos las funciones sin darnos cuenta que requieren mas o
menos tiempo de proceso. Y por que preocuparse con hojas de calculo
pequeñas, entre 1 decima de segundo y 2 decimas de segundo no hay mucha
diferencia, pero cuando la diferencia esta entre 6 segundos y 115
segundos, el asunto es muy diferente. tiempos cronometrados en este
caso particular.

En definitiva mejoro mucho el proceso general. Y seguro que se puede
mejorar mas, mi archivo tiene unas pequeñas macros, pero es para
procesos muy simples, ordenar datos, copiar registros de un lado a
otro, actualizar todas las tablas dinamicas luego de una adición de
registros en la "Base de DATOS", etc.. Tendre que gastarle tiempo y
empezar a optimizarla, es una interesante oportunidad tener un archivo
tan exigente en un equipo con especificaciones modestas. Antes corria
el archivo en un equipo mucho mas poderoso y nunca le preste atención a
este problema, desafortunadamente por cosas de la vida mi equipo quedo
en manos de los amigos de lo ajeno, pero este equipo esta bien.

Por eso digo ¡Mientas mas estudio Excel, mas cuenta me doy que menos
se! o deberia decir ¡Mientas mas estudio Excel, mas cuenta me doy que
menos sabia!

Esta es mi aplicación favorita, he estado pensado ponerme a estudiar
Acces, pero el Excel no me deja tiempo.

Suerte y gracias, seguimos en contacto.

Gabriel Raigosa
Medellín - Colombia

"Héctor Miguel" escribió en el mensaje
news:
hola, Gabriel !

'partiendo' de que aceptas todo tipo de 'consejos' :D ...
1) el 'problema' del tiempo de re/calclos se debe a las 11,000+
FORMULAS con el 'si-condicional' de una de las 12 condiciones :-(
2) hice una 'replica' de los datos de tu ejemplo hasta acumular +/-
8,000 filas con datos [obviamente los mismos n_veces]
[efectivamente]... por muy 'rapida' que sea una pc... resulta mas
que 'tedioso' el tiempo de espera por el re/calculo :)
3) la siguiente propuesta 'se toma' un tiempo de re/calculo en las +/-
8,000 formulas de... C-E-R-O N-A-D-A ;)
seguramente vayas a idear la forma de 'automatizar el proceso' con
la ayuda de algun codigo... pero la idea es:
a) copia el encabezado/titulo de los nombres [responsable] en
alguna celda +/- alejada de la 'base de datos'
b) utiliza [menu] datos > filtro > filtro avanzado...
-> con la opcion de 'copiar a otro lugar' Y -> 'solo registros
unicos'
-> selecciona como rango de salida [copiar a:] -> la celda
donde copiaste ESE UNICO 'encabezado'
c) ordena el extracto con los nombres unicos -> en ascendente
d) utiliza la misma formula [la que usas en las 11,000+ filas] ->
SOLO para el rango de los nombres 'extraidos'
f) para 'llenar' el campo 'cumple' de tu 'base de datos
original'... usas la funcion -> buscarv(...)

haz algunas pruebas y... comentas ?
saludos,
hector.

mensaje original [fraccion] ==>>>>>> ... tengo el problema resuelto con otra funcion... mas o menos
parecida
... aunque si funciona bien, no me parece muy practica... intentare
contarle un poco mejor la situacion
... un ejemplo;
"archivo plano (texto delimitado por comas) por solo quiere ensayar"
-
fecha,seccion,responsable,concepto,monto,Cumple
enero,Administracion,Juan Robles,egresos,12000,NO debe
enero,Producción,Miguel Rondis,egresos,-2500,NO debe
enero,Publicidad,Alejandra Mitchel,egresos,-26800,SI debe
enero,Administracion,Juan Robles,Ingresos,2500,NO debe
enero,Administracion,Maria Iriban,Ingresos,1200,NO debe
enero,Administracion,Julia Torres,Ingresos,850,NO debe
enero,Produccion,Miguel Rondis,Ingresos,2200,NO debe
enero,Publicidad,Alejandra Mitchel,Ingresos,1800,SI debe
enero,Publicidad,Tomas Mercante,Ingresos,1500,SI debe
enero,Gerencia,Lucia Lighnam,Ingresos,1300,NO debe
enero,Gerencia,Matias Alonso,Ingresos,2800,SI debe
enero,Produccion,Carlos Gonzalez,Ingresos,850,NO debe [etc. etc.
etc.]
los campos ==> fecha,seccion,responsable,concepto,monto ==> "son
datos"
el campo "cumple" (columna F), tiene la siguiente funcion
=SI(SUMAR.SI(C:C,C2,E:E)>=0,"NO debe","SI debe")
Con la base de datos anterior he elaborado una tabla dinamica
En pagina; "cumple"
En fila; "responsable"
En columna; "concepto"
En datos; "monto" (suma de monto)
El campo "fecha" no lo uso en esta tabla.
De esta manera con el campo pagina puedo filtrar los valores "mayores
o iguales que cero",
o menores que cero, es decir, los que "SI deben" y los que "NO deben"
La base de datos real tiene actualmente, 11.000 registros, cantidad
que puede cambiar mensualmente.
... 12 campos (condicion que creo es menos importante)...
Ademas de otras hojas que lo hacen "pesado" a nivel de calculo para
el equipo en el que funciona.
... PC AMD Duron de 750 MHZ con 448 MB en RAM, y cada vez que se
tiene que filtrar
y alguna veces modificar un valor numerico de la columna "monto"
la base de datos empieza el proceso de recalculo, y es muy lento.
Lo que intento es buscar otras formas para hacer lo mismo y todos los
consejos son muy bien recibidos.


















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida