Macro cálculo de diversas cantidades conociendo la suma total

Tengo unas 30 facturas de diversos importes en una columna, me hacen una transferencia bancaria por un importe que corresponde a 10 ó 12 facturas de esas 30, pero desconozco, que factura son. Hace muchos años, los señores de Microsoft, me crearon una macro, que me buscaba dichos importes que correspondían al total. Recuerdo que entonces debido a la poca capacidad de memoria y de cálculo de los microprocesadores, no podía tener más de 21 factura para el cálculo.

Mi pregunta es si alguno de los expertos de Excel, me podría decir si existe alguna macro que me calcule que importes son los que suman el total de la transferencia.

2 respuestas

Respuesta
1

·

·

¡Hola Rmunozmarino!

No es fácil, no tengo tiempo para hacerla yo. Aquí tienes algo que a lo mejor te sirve.

Esta es la página web

http://www.jrgc.es/trucos001.htm 

Y estos son los sitios de descarga de los ficheros que también encontrarás en la misma página.

http://www.jrgc.es/ejemplos/EncontrarSumandos.xls 

http://www.jrgc.es/ejemplos/listar_sumas.xls 

http://www.jrgc.es/ejemplos/listar_sumas.xlsm 

Con los ejemplos que aparecen en el primer fichero he probado y funciona muy bien. Te da la suma más aproximada.

Pues he hecho la macro que soluciona el problema. De momento está programada recursivamente pero si es suficiente ya sirve con eso. Tal vez lo intente iterativamente para comparar tiempos de ejecución, pero iterativamente cuesta más averiguar el código.

Aquí te dejo el enlace:

https://drive.google.com/file/d/0B3nG6r7qbZZ_NHRsLVduU3puczg/view?usp=sharing 

Y esta es una foto de como es:

En C1 pones la suma total . En C2 el error que admites, puede ser 0 para suma exacta o distinto si toleras un error de redondeo en las sumas o no hay suma exacta y busca la más parecida. Si hay error permitido te aparecerán las sumas para que veas cuál es mejor.

En C3 pones si admites que se reoordene la columna A. Eso sirve para usar el método de ordenación propio de Excel, si no pones "Si", "si", "SI" o "sI" los ordenaré internamente por un método propio ya que conviene que estén ordenados para el algoritmo.

Espero que te sirva.

:

:

Respuesta
1

Este es el típico "problema de la mochila". Lo puedes resolver con el Solver, que es un AddIn que viene con el Excel. Básicamente debes colocar todos los montos de las facturas, y en otra columna tendrás la posibilidad de colocar 0 o 1. Luego eliges aleatoriamente la combinación y te fijas si cuadra contra la suma de tus facturas.

La verdad que creo que es más fácil mostrarlo directo con un archivo que tratar de explicarlo por acá, así que te dejo un link al mismo

Problema de la Mochila

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas