Encontrar Valores (2)

30/09/2008 - 19:26 por Miguel | Informe spam
Hola Amigos:
De nuevo con lo mismo tratare de hacerlo mas simple,
dado un importe ej: 1000, encontrar en un rango importes que compongan dicho
importe por Ej: en el rango B2:b10 importes 200 ,100, 50, 25, 500, 1200,
800, 60 , 36 y 45

Entonces, encontrar para el importe dado Ej:1000

Tenemos por Ej: 200, 800

Gracias y Saludos

Preguntas similare

Leer las respuestas

#1 Julián
30/09/2008 - 19:44 | Informe spam
Mira el título Desglose de Euro del día 8-9-2008.
Saludos,
Julián.


"Miguel" escribió:

Hola Amigos:
De nuevo con lo mismo tratare de hacerlo mas simple,
dado un importe ej: 1000, encontrar en un rango importes que compongan dicho
importe por Ej: en el rango B2:b10 importes 200 ,100, 50, 25, 500, 1200,
800, 60 , 36 y 45

Entonces, encontrar para el importe dado Ej:1000

Tenemos por Ej: 200, 800

Gracias y Saludos



Respuesta Responder a este mensaje
#2 Miguel
30/09/2008 - 20:54 | Informe spam
Hola Julian:
Gracias por responder, No encuentro el hilo que me
recomendas.
Saludos.
"Julián" escribió en el mensaje
news:
Mira el título Desglose de Euro del día 8-9-2008.
Saludos,
Julián.


"Miguel" escribió:

Hola Amigos:
De nuevo con lo mismo tratare de hacerlo mas simple,
dado un importe ej: 1000, encontrar en un rango importes que compongan
dicho
importe por Ej: en el rango B2:b10 importes 200 ,100, 50, 25, 500, 1200,
800, 60 , 36 y 45

Entonces, encontrar para el importe dado Ej:1000

Tenemos por Ej: 200, 800

Gracias y Saludos



Respuesta Responder a este mensaje
#3 Miguel
30/09/2008 - 21:19 | Informe spam
Hola Julian:
Encontre el articulo, bueno en principio no me sirve, pues
las cantidades de la 2da columna no son fijos, como en el caso de las
monedas.
Saludos.
"Miguel" escribió en el mensaje
news:
Hola Julian:
Gracias por responder, No encuentro el hilo que me
recomendas.
Saludos.
"Julián" escribió en el mensaje
news:
Mira el título Desglose de Euro del día 8-9-2008.
Saludos,
Julián.


"Miguel" escribió:

Hola Amigos:
De nuevo con lo mismo tratare de hacerlo mas simple,
dado un importe ej: 1000, encontrar en un rango importes que compongan
dicho
importe por Ej: en el rango B2:b10 importes 200 ,100, 50, 25, 500, 1200,
800, 60 , 36 y 45

Entonces, encontrar para el importe dado Ej:1000

Tenemos por Ej: 200, 800

Gracias y Saludos









Respuesta Responder a este mensaje
#4 Héctor Miguel
01/10/2008 - 02:41 | Informe spam
hola, Miguel !

De nuevo con lo mismo tratare de hacerlo mas simple
dado un importe ej: 1000, encontrar en un rango importes que compongan dicho importe
por Ej: en el rango B2:b10 importes 200 ,100, 50, 25, 500, 1200, 800, 60 , 36 y 45
Entonces, encontrar para el importe dado Ej:1000
Tenemos por Ej: 200, 800



"plis"... lee lo siguiente (pero) "completito" y con el debido "detenimiento"

tendrias que usar el solver por codigo, para lo cual... te paso al final algunos apuntes, enlaces y datos +/- relevantes

si cualquier duda... o informacion adicional... o requieres el envio de un archivo con el ejemplo... comentas ?
saludos,
hector.

1) deberas tomar en cuenta las siguientes observaciones:
- para poder usar el solver (por codigo), es necesario...
-> establecer una referencia (en el proyecto de macros) a la libreria solver.xla (NO solver.dll)
-> buscando la ubicacion apropiada con (menu) herramientas / referencias <-
(la cual, pudiera variar segun la version -ingles/español- del sistema operativo)
- hay ligeros cambios entre excel 97/2000 y excel xp/2003 ...
las llamadas (por codigo) a las funciones del solver (como SolverOK, SolverAdd, etc.)
en xp/2003 pasan (reducidas) a: SolvOK, SolvAdd, etc. les sobra el sufijo ->(solv)ER<-
- (probablemente) la primera vez que lo ejecutes mandara un mensaje de error:
->error inesperado o memoria agotada<- :((
para resolverlo (y SOLO por unica vez) tendras que usar la siguiente instruccion...
->Application.Run "Solver.xla!Auto_Open"<-
- tomar en cuenta IDIOMAS p.e. para FormulaText:= en castellano binario debe cambiarse por binary
- tomar precauciones si se va a correr en hojas protegidas <= OJO

2) podrias empezar por descargar ejemplos (luego de suscribirte en):
http://www.xl-logic.com/xl_files/fo...linear.zip
http://www.xl-logic.com/xl_files/fo...solver.zip
tambien tutoriales y (mas) ejemplos (luego de suscribirte a)
http://www.solver.com/suppxlsguide.htm

3) un ejemplo de una consulta especifica de hace tiempo (pego junto con la consulta) ;)
consulta ==> ... lista de valores ... encontrar las que sumadas dan un resultado concreto.
... ejemplo ... quisiera filtrarlas para conseguir ... las celdas que sumadas dan 45.
A B
1 10
2 20
3 25
4 30
... con solver y buscar objetivo y no lo he conseguido.
No se trata de cambiar el valor de las celdas, sino de seleccionar aquellas con las que se consiga el resultado (...)


propuesta ==con los siguientes supuestos y usando solver (por codigo) se puede (+/-) conseguir lo que necesitas:
nota: (te sugiero) usar nombres (ya sea estaticos o dinamicos) para no estar cambiando sus referencias en el codigo.
1.- al rango de los valores (col a) asignale un nombre (p.e. Valores)
2.- a un rango igual (adyacente y vacio -de momento-) asignale otro nombre (p.e. Filtro)
en estas celdas, el solver pondra 1s / 0s (unos o ceros) para lograr la combinacion que arroje la suma buscada
3.- en una celda pon la suma que se desea conseguir y asignale otro nombre (p.e. Objetivo)
4.- usa otra celda para el resultado y asignale otro nombre (p.e. Resultado)
la formula en esta celda (Resultado) seria => =SumaProducto(Valores,Filtro)
5.- IMPORTANTE => marcar una referencia en el proyecto (vba) a la libreria del solver (solver.xla)
6.- puedes aplicar autofiltro a la columna del rango Filtro o ...
usar formato condicional para identificar la/s fila/s cuyo valor (en su celda del rango Filtro) sea 1 (uno)
7.- puedes asignar la macro a algun boton, o en el evento _Change de la celda Objetivo (en el modulo de su hoja)
y/o (lanzarla al) mostrar un formulario de espera en el evento _Activate del formulario (por si le toma su tiempo) etc.

en un modulo de codigo normal ==Sub Localizar_Suma()
Application.ScreenUpdating = False
SolverReset
SolverOk SetCell:="" & [Resultado].Address & "", _
MaxMinVal:=3, _
ValueOf:="" & [Objetivo] & "", _
ByChange:="" & [Filtro].Address & ""
SolverAdd CellRef:="" & [Filtro].Address & "", _
Relation:=5, _
FormulaText:="Binario"
SolverOptions Precision:=0.0000001, _
Convergence:=0.001
SolverOk SetCell:="" & [Resultado].Address & "", _
MaxMinVal:=3, _
ValueOf:="" & [Objetivo] & "", _
ByChange:="" & [Filtro].Address & ""
SolverSolve UserFinish:=True
End Sub
Respuesta Responder a este mensaje
#5 MRoCFe
01/10/2008 - 03:01 | Informe spam
Hola! Miguel
Fíjate si el archivo que tengo en http://www.mediafire.com/file/mgjlm...erSuma.xls
te resulta útil.

Saludos, Cacho.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida