solo para usuarios AVANZADOS de excel

26/04/2005 - 04:09 por edgar vargas | Informe spam
tengo una lista de registros (indeterminados) con valores numericos en la
columna "A"
ejemplo:
5,287.7
52,188.63
128,982.2
etcetera, etcetera, (puede llegar a ser un listado de hasta 1.000 registros).
necesito una (herramienta, formula o macro) que me permita introducir un
valor indeterminado (suministrado por el usuario, ejemplo: 134,269.9) y que
el software me diga si "SOLAMENTE SUMANDO" encuentra valores que me den el
resultado (valor) que el usuario introdujo. y que me señale que celdas sumo
para obtener el resultado (valor) que introdujo el usuario.
nota: en el ejemplo el valor 134,269.9 da de sumar el primer y tercer
registro.
muchas gracias a los genios que me puedan responder.
edgar_vargas_anzola@yahoo.es

Preguntas similare

Leer las respuestas

#1 KL
26/04/2005 - 10:42 | Informe spam
Hola Edgar,

Primeramente decirte (y no lo tomes a mal) que titulos tipo "solo para..."
reducen la probabilidad de obtener la respuesta de manera importante, y si
encima incluyes el termino tan relativo como "usuarios avanzados" corres el
riesgo de repellir a todos, sea por la connotacion de prepotencia que tiene
esta frase o porque el usuario no sabe o prefiere no identificarse con los
terminos basico, intermedio, avanzado, maestro, genio etc.

Dicho lo anterior, precisamente ayer puse mi respuesta al hilo "Averiguar
que Sumandos corresponden a un resultado" posteado el 22-4-2005 por Chona.
Este tipo de tarea, creo que, requiere del calculo de permutaciones. El
numero de las posibles permutaciones las puedes calcular mediante la funcion
factorial: N! (donde N es el numero de sumandos). En Excel la funcion seria
FACT(N). Y ahora atento al dato :-) Dado que tienes hasta 1000 posibles
sumandos, considera que:
1) el numero de permutaciones para 14 posibles sumandos es de 87.178.291.200
2) el maximo que me ha podido devolver la funcion FACT ha sido
7,257415615308E+306, lo cual corresponde a 170 posibles sumandos

Mi conclusion es que esta es una tarea imposible para Excel. Ahora es
probable que me equivoque terriblemente ya que he visto que Hector Miguel
decia tener una hoja que hace lo que buscas y creo que no tardara en darnos
su valiosa opiñon.

Saludos,
KL


"edgar vargas" <edgar wrote in message
news:
tengo una lista de registros (indeterminados) con valores numericos en la
columna "A"
ejemplo:
5,287.7
52,188.63
128,982.2
etcetera, etcetera, (puede llegar a ser un listado de hasta 1.000
registros).
necesito una (herramienta, formula o macro) que me permita introducir un
valor indeterminado (suministrado por el usuario, ejemplo: 134,269.9) y
que
el software me diga si "SOLAMENTE SUMANDO" encuentra valores que me den el
resultado (valor) que el usuario introdujo. y que me señale que celdas
sumo
para obtener el resultado (valor) que introdujo el usuario.
nota: en el ejemplo el valor 134,269.9 da de sumar el primer y tercer
registro.
muchas gracias a los genios que me puedan responder.

Respuesta Responder a este mensaje
#2 Luis Garcia
26/04/2005 - 11:29 | Informe spam
"edgar vargas" <edgar escribió en...
tengo una lista de registros (indeterminados) con valores numericos en la
columna "A"
ejemplo:
5,287.7
52,188.63
128,982.2
etcetera, etcetera, (puede llegar a ser un listado de hasta 1.000


registros).
necesito una (herramienta, formula o macro) que me permita introducir un
valor indeterminado (suministrado por el usuario, ejemplo: 134,269.9) y


que
el software me diga si "SOLAMENTE SUMANDO" encuentra valores que me den el
resultado (valor) que el usuario introdujo. y que me señale que celdas


sumo
para obtener el resultado (valor) que introdujo el usuario.
nota: en el ejemplo el valor 134,269.9 da de sumar el primer y tercer
registro.



Hola Edgar, una primera aproximacion para tu problemas seria algo
parecido a esto:

1) Ordenar la lista de mayor a menor

2) Y crear una funcion recursiva al estilo de:

F(Suma, SumaTotal)
Buscar un 'Sumando' menor o igual que 'SumaTotal - Suma'
Si no se encuentra, abandonamos esta combinacion.
Si la 'Suma' + 'Sumando Actual':
'Suma Total', abandonamos esta combinacion.


= 'Suma Total', tenemos una combinacion Ok.
< 'Suma Total', llamamos 'recursivamente' a esta funcion
con la Suma = Suma + 'Sumando Actual'.

Aqui faltaria pulir algunas cosillas:
Como guardas los sumandos que componen la combinacion que
se esta procesando?. Si se encuentra una combinacion Ok, seguir
procesando combinaciones o no?. Pero eso ya lo tienes que decidir
tu.

Espero que te sirva.

Saludos
Respuesta Responder a este mensaje
#3 Fernando Arroyo
26/04/2005 - 11:47 | Informe spam
Tienes razón en que Excel parece, en principio, incapaz de encontrar una solución. Pero sí es posible lograrlo usando Solver y SUMAPRODUCTO (aunque ignoro si existe un máximo para el número de sumandos, o alguna otra limitación).

Yo tengo que tener por algún sitio un libro en el que usé esta técnica. Si consigo encontrarlo, lo subo a la red convertido en ejemplo.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"KL" escribió en el mensaje news:
Hola Edgar,

Primeramente decirte (y no lo tomes a mal) que titulos tipo "solo para..."
reducen la probabilidad de obtener la respuesta de manera importante, y si
encima incluyes el termino tan relativo como "usuarios avanzados" corres el
riesgo de repellir a todos, sea por la connotacion de prepotencia que tiene
esta frase o porque el usuario no sabe o prefiere no identificarse con los
terminos basico, intermedio, avanzado, maestro, genio etc.

Dicho lo anterior, precisamente ayer puse mi respuesta al hilo "Averiguar
que Sumandos corresponden a un resultado" posteado el 22-4-2005 por Chona.
Este tipo de tarea, creo que, requiere del calculo de permutaciones. El
numero de las posibles permutaciones las puedes calcular mediante la funcion
factorial: N! (donde N es el numero de sumandos). En Excel la funcion seria
FACT(N). Y ahora atento al dato :-) Dado que tienes hasta 1000 posibles
sumandos, considera que:
1) el numero de permutaciones para 14 posibles sumandos es de 87.178.291.200
2) el maximo que me ha podido devolver la funcion FACT ha sido
7,257415615308E+306, lo cual corresponde a 170 posibles sumandos

Mi conclusion es que esta es una tarea imposible para Excel. Ahora es
probable que me equivoque terriblemente ya que he visto que Hector Miguel
decia tener una hoja que hace lo que buscas y creo que no tardara en darnos
su valiosa opiñon.

Saludos,
KL


"edgar vargas" <edgar wrote in message
news:
> tengo una lista de registros (indeterminados) con valores numericos en la
> columna "A"
> ejemplo:
> 5,287.7
> 52,188.63
> 128,982.2
> etcetera, etcetera, (puede llegar a ser un listado de hasta 1.000
> registros).
> necesito una (herramienta, formula o macro) que me permita introducir un
> valor indeterminado (suministrado por el usuario, ejemplo: 134,269.9) y
> que
> el software me diga si "SOLAMENTE SUMANDO" encuentra valores que me den el
> resultado (valor) que el usuario introdujo. y que me señale que celdas
> sumo
> para obtener el resultado (valor) que introdujo el usuario.
> nota: en el ejemplo el valor 134,269.9 da de sumar el primer y tercer
> registro.
> muchas gracias a los genios que me puedan responder.
>


Respuesta Responder a este mensaje
#4 Luis Garcia
26/04/2005 - 12:02 | Informe spam
Oppps, se me ha escapado sin querer... faltaba el bucle :-), creo
(si no me he vuelto a equivocar) que quedaria algo como asi:

1) Ordenar la lista de mayor a menor

2) Y crear una funcion recursiva al estilo de:

F(Suma, SumaTotal)

Para todos los sumandos menores o iguales que 'SumaTotal - Suma'

Comprobación Extra:
Si la suma de los sumandos menores qu 'SumaTotal - Suma' es
menor que 'SumaTotal - Suma', abandonamos esta combinacion.
Es decir, las suma de los que quedan no va a llegar nunca a
SumaTotal :-)

Si la 'Suma' + 'Sumando Actual':
es > 'Suma Total', abandonamos este sumando
es = 'Suma Total', tenemos una combinacion Ok.
es < 'Suma Total', llamamos 'recursivamente' a esta funcion
con la Suma = Suma + 'Sumando Actual'.

Aqui faltaria pulir algunas cosillas:
Como guardas los sumandos que componen la combinacion que
se esta procesando?. Si se encuentra una combinacion Ok, seguir
procesando combinaciones o no?. Pero eso ya lo tienes que decidir
tu.

Espero que te sirva.

Saludos

"Luis Garcia" escribió en...
"edgar vargas" <edgar escribió en...
> tengo una lista de registros (indeterminados) con valores numericos en


la
> columna "A"
> ejemplo:
> 5,287.7
> 52,188.63
> 128,982.2
> etcetera, etcetera, (puede llegar a ser un listado de hasta 1.000
registros).
> necesito una (herramienta, formula o macro) que me permita introducir un
> valor indeterminado (suministrado por el usuario, ejemplo: 134,269.9) y
que
> el software me diga si "SOLAMENTE SUMANDO" encuentra valores que me den


el
> resultado (valor) que el usuario introdujo. y que me señale que celdas
sumo
> para obtener el resultado (valor) que introdujo el usuario.
> nota: en el ejemplo el valor 134,269.9 da de sumar el primer y tercer
> registro.

Hola Edgar, una primera aproximacion para tu problemas seria algo
parecido a esto:

1) Ordenar la lista de mayor a menor

2) Y crear una funcion recursiva al estilo de:

F(Suma, SumaTotal)
Buscar un 'Sumando' menor o igual que 'SumaTotal - Suma'
Si no se encuentra, abandonamos esta combinacion.
Si la 'Suma' + 'Sumando Actual':
> 'Suma Total', abandonamos esta combinacion.
= 'Suma Total', tenemos una combinacion Ok.
< 'Suma Total', llamamos 'recursivamente' a esta funcion
con la Suma = Suma + 'Sumando Actual'.

Aqui faltaria pulir algunas cosillas:
Como guardas los sumandos que componen la combinacion que
se esta procesando?. Si se encuentra una combinacion Ok, seguir
procesando combinaciones o no?. Pero eso ya lo tienes que decidir
tu.

Espero que te sirva.

Saludos
Respuesta Responder a este mensaje
#5 Fernando Arroyo
26/04/2005 - 12:22 | Informe spam
Éste es el ejemplo (muy sencillo, tan sólo con 10 sumandos):

http://www.excelsp.com/ejemplos/eje...50426a.xls

Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida