¿Cómo puedo resolver problemas de tipo de embalaje o mochila en Excel?

Si tiene una lista de solo siete u ocho elementos como se describe en los detalles, entonces las soluciones de fuerza bruta descritas en la respuesta de Justin Ma a Microsoft Excel: ¿Cómo puedo resolver el problema de la mochila en Excel? y la respuesta de Phil McCanna a Microsoft Excel: ¿Cómo puedo resolver el problema de la mochila en Excel? Funcionará bien para usted. Si tuviera, digamos, cien artículos, entonces las cosas no funcionarían tan bien.

La mayoría de estos problemas de tipo mochila son NP-completos, pero existen algoritmos que funcionan razonablemente bien en ciertas circunstancias restringidas. En términos de hacer cosas en Excel, querrá escribir una función VBA implementando un algoritmo para el problema relevante.

Puede leer sobre varios algoritmos para esto y problemas relacionados en Wikipedia:

  • Problema de mochila
  • Problema de embalaje

Desafortunadamente, no estoy seguro del nombre exacto de su versión del problema, pero miraré alrededor y veré qué puedo encontrar.

Podría forzar esto en Excel con bastante facilidad. Enumere los números en la columna A. En las columnas B y a la derecha, enumere 0/1 si desea incluir el número en su conjetura.

00000
00001
00010
00011
00100
00101
00110
00111

11111

Esa parte sería difícil de generalizar si alguien tuviera una pregunta con más entradas posibles, ¡por eso es fuerza bruta! ¡Sin embargo, podría ser automatizado! Observe cómo la extrema derecha alterna entre 0 y 1, luego la siguiente columna alterna entre 00 y 11. Puede usar una función row () para devolver la fila de la celda actual y hacer una función mod () para determinar si El resultado debe ser 0 o 1, donde el divisor depende de la columna en la que se encuentre. Tendría que jugar con esto, pero estoy seguro de que es posible.

De todos modos, una vez que tenga esa cuadrícula de todas las combinaciones posibles de 0/1, haga un sumproducto () en las entradas (con signos de dólar para bloquearlo) y el 0/1 en la columna B. Coloque esto en la columna B debajo de la cuadrícula, luego arrástralo. Uno (o más) será igual al resultado que está buscando, y los 1 representan qué números elegir.

Excel Solver es una herramienta de optimización, que es relativamente fácil de usar.
Introducción a la optimización con la herramienta Excel Solver

Puede programar una fórmula lineal de modo que los coeficientes estén restringidos por 0 y 1, y obligar a la solución a igualar el valor solicitado.

Puede resolver este problema utilizando los complementos de Excel Solver o si tiene más números en su entrada, podría usar SumMatch. Las instrucciones detalladas para ambos se pueden encontrar en los videos de YouTube:

Excel: use Solver y SumMatch para encontrar números que se sumen a su suma objetivo.

He visto esta pregunta en el foro de Microsoft Excel muchas veces y he proporcionado muchas respuestas de diferentes maneras para lograrlo.

La pregunta más común como esta era hacer coincidir una combinación para una coincidencia total exacta de lo que veo en sus datos de ejemplo; ninguno de la combinación coincidirá exactamente con los 7.236,65, sin embargo, la combinación más cercana será 1421 + 3023.94 + 2798

Dado que el número de rango que proporcionó es pequeño, por lo que es rápido y fácil de resolver esto con la fórmula incorporada de Excel, consulte el libro de trabajo adjunto con la solución de fórmula que preparé en función de su enlace de descarga de datos de ejemplo, ya que su rango de datos era de solo 7 celdas la fórmula funcionará; sin embargo, existen limitaciones en la fórmula, funcionará hasta un máximo de 25 celdas combinadas.

Si la combinación para igualar era coincidencia exacta, no coincidencia aproximada, entonces hay muchas otras formas de resolverlas.

pero por ahora la fórmula que proporcioné funcionará para usted.

la solución con Excel Solver no funcionará con los datos que proporcionó, porque no está buscando una coincidencia exacta sino una coincidencia aproximada. Excel Solved solo funcionará en la coincidencia exacta y otro inconveniente con Solver es que si hay varias soluciones de combinación, solo resolverá la primera y se ignorarán otras soluciones.