Suma de columnas, macros?,funciones? O solver?

Bueno mi problema es este,

Tengo dos columnas una de tiempos y otra de números

Ordenados de mayor a menor

 A                B

0:18:19      10
0:09:56       6
0:03:22       6
0:11:01       4
0:11:01       4
0:02:19       3
0:11:01       3
0:09:52       3
0:03:22       2
0:11:01       2
0:11:23       2

Bueno, de la columna B,

Necesito que sume 18, en orden o de forma aleatoria, una vez que identifique

Los 18, necesito que me entregue en una nueva celda, la suma del tiempo asociado

A las celdas que me sumaron 18.

Ejemplo:

se cumple:   10+4+4 =18 (en negrita arriba)

necesito que me entregue la suma de  0:18:19 + 0:11:01 + 0:11:01 = 0:40:21

Esto para tablas pequeñas o grandes, ya que se ira modificando.

Estoy aprendiendo excel, e intentado con funciones condicionales, que no me dan lo optimo que necesito, leí algo de macro, pero realmente no entiendo mucho, y ahora estoy viendo si me sirve solver.

1 respuesta

Respuesta
1

Esta es tu solución, sigue mis instrucciones:

Deja los datos tal y como los tienes, desde A1 a B11

En la celda C12 pon la siguiente fórmula:  =SUMAPRODUCTO(B1:B11*C1:C11)

En la celda D1 pon la siguiente fórmula =SI(C1=1;A1;"") y arrastrala hasta la celda D11.

En la celda D12 pon la siguiente fórmula =SUMA(D1:D11)

Ahora tienes que abrir la aplicación SOLVER y hacer lo siguiente:

Establecer objetivo:  $C$12

Marcamos "valor de": y anotamos 18

Pulsamos en agregar para añadir restricciones y en referencia de celda marcamos con ratón el rango $C$1:$C$11, en el desplegable seleccionamos "bin" y pulsamos aceptar

Solo queda pulsar en resolver y ya está listo.

Recuerda finalizar y puntuar mi labor

gracias por tu respuesta, realizo paso a paso tu explicación

lo repetí varias veces pero siempre me aprace una ventana 

una vez que me entro a solver y coloco en agregar el rango $C$1:$C$11, selecciono aceptar, y me aparece una ventana que me dice:

"la referencia de celda de restricción binaria debe incluir solo celdas variables"

me da opción de aceptar y ayuda, selecciono aceptar, y me sale nuevamente la ventana de agregar restricción.

:/

Faltaba rellenar un campo de solver, el campo "cambiando las celdas"

Mete el cursos dentro de ese campo y marca con el ratón el rango  $C$1:$C$11

El resto como estaba

me dio como resultado una sola combinación en la columna B, como puedo hacer que me de todas las combinaciones posibles, sin que vuelva a utilizar los mismo tiempos???.

me has ayudado bastaste hasta ahora :D!!

SOLVER te va a mostrar un único resultado para conseguir el objetivo deseado y como puedes ver funciona perfectamente.

Vuelve a ejecutar SOLVER y quizás te muestre otra combinación.

agradezco tu ayuda, y entiendo que de una combinación única, bueno entonces para mi este método no me sirvia para el proyecto que estoy realizando.

ahora yo puedo utilizar macros para poder realizar lo que quiero??... 

finalmente es buscar las combinaciones que me den 18 y poder elegir el mayor tiempo posible. ya que estamos hablando de procesos.

gracias

He hecho algún cambio y he conseguido que SOLVER me devuelva la combinación con el tiempo más grande seria así:

En establecer objetivo ponemos $D$12

en "cambiando celdas" ponemos $C$1:$C$11

En las restricciones conservamos  $C$1:$C$11 = binario y añadimos esta otra:

$C$12 = 18

Pulsas en resolver y obtendrás el mayor tiempo que se puede conseguir con esa combinatoria

Olvidé una cosa:

Tienes que dejar seleccionada la opción Max que está al principio de SOLVER en el renglón Para:

OK, me sirve para saber el mayor,... pero necesito el total de combinaciones. poder ver los tiempos de cada uno. por lo tanto SOLVER me sirve solo para una parte de lo que necesito.

alguna otra sugerencia?

muchas gracias por ayudarme, no esperaba que me respondieran y ayudaran tan rapido.

:)

Claro que tengo otra sugerencia amigo. Vamos a repetir estas instrucciones:

Deja los datos tal y como los tienes, desde A1 a B11
En la celda C12 pon la siguiente fórmula: =SUMAPRODUCTO(B1:B11*C1:C11)
En la celda D1 pon la siguiente fórmula =SI(C1=1;A1;"") y arrastrala hasta la celda D11.
En la celda D12 pon la siguiente fórmula =SUMA(D1:D11)

Ahora toma esta macro y ejecutala. Te mostrará las combinaciones que tu le ordenes pintándolas de un color distinto cada una.

Sub combinaciones()

tope = InputBox("cuantas combinaciones deseas obtener???", "luismondelo soluciones excel", 3)

If tope = "" Then Exit Sub

fila = 17

m = 3

For p = 1 To tope

Do While Range("c12").Value <> 18

Range("c1").Formula = "=randbetween(0,1)"

Range("c2").Formula = "=randbetween(0,1)"

Range("c3").Formula = "=randbetween(0,1)"

Range("c4").Formula = "=randbetween(0,1)"

Range("c5").Formula = "=randbetween(0,1)"

Range("c6").Formula = "=randbetween(0,1)"

Range("c7").Formula = "=randbetween(0,1)"

Range("c8").Formula = "=randbetween(0,1)"

Range("c9").Formula = "=randbetween(0,1)"

Range("c10").Formula = "=randbetween(0,1)"

Range("c11").Formula = "=randbetween(0,1)"

Loop

Range("a1:d12").Copy

Cells(fila, 1).PasteSpecial Paste:=xlValues

Selection.Interior.ColorIndex = m

m = m + 1

fila = fila + 13

Next

End Sub

Bueno... Ya sabes finaliza y puntúa mi trabajo.

Si quieres que te mande el archivo dime un mail

Y bien. ¿Cómo fue?

Si todo es correcto finaliza la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas