Hola. Pues hemos visto ya cómo se puede realizar esta operación mediante 2 métodos:
- Solver: encontrar-combinaciones-suma-excel-solver
- Fórmula matricial: encontrar-combinaciones-suma-excel-formula
Pues veamos ahora cómo hacerlo mediante código VBA.
Vamos a crear una Funcion definida por el Usuario.
Pues vayamos a ello:
Qué es una Función Definida por el Usuario?
Las funciones definidas por el usuario (conocidas como UDF del inglés: Used Defined Functions) sirven para crear tus propias fórmulas y poder usarlas en nuestro libro de Excel.
Excel ya ofrece muchas funciones incorporadas como las Matemáticas, Estadísticas, Texto, Lógicas,
pero además ofrece la posibilidad de realizar más operaciones en Excel aunque no vengan predefinidas en el programa
Por eso existen las UDF con las que se puede crear nuestras propias funciones usando Macros y el lenguaje de programación VBA.
Para obtener el resultado correcto, primero debemos ordenar la lista de números en orden descendiente. Y luego tendremos que hacer los siguientes pasos:
1. Presionamos las teclas ALT + F11 para abrir la ventana Microsoft Visual Basic para aplicaciones.
2. Haga clic en Insertar> Módulo y peguamos el siguiente código en la ventana del Módulo.
Código VBA: Encuentra la combinación de celdas que es igual a una suma dada:
Function ObtenerCombinacion(RangoMonedas As Range, SumaObjetivo As Double) As String
Dim xStr As String
Dim xSuma As Double
Dim xcelda As Range
xSuma = SumaObjetivo
For Each xcelda In RangoMonedas
If Not (xSuma / xcelda < 1) Then
xStr = xStr & Int(xSuma / xcelda) & " x " & xcelda & " "
xSuma = xSuma - (Int(xSuma / xcelda)) * xcelda
End If
Next
ObtenerCombinacion = xStr
End Function
3. Luego guardamos y se cierra esta ventana de código, y luego regresamos a la hoja de trabajo.
4. Ahora en cualquier celda que se quiera obtener la combnación, introducimos esta fórmula
=ObtenerCombinación (A1:A8, C2), y presionamos la tecla Intro. Basicamente como haríamos con cualquier otra función. El resultado obtenidoo será una combinación de números que son iguales a una suma dada.
Nota: Si más de una combinación de valores tiene una suma igual al valor específico, solo se enumera una combinación.
Entradas relacionadas
1. Reconciliación de débitos y créditos utilizando el complemento Solver
2. Tutorial sobre Excel Solver
2. Tutorial sobre Excel Solver
Quieres más trucos?
Te ha gustado el artículo?
No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 2 siguientes acciones:
1. Puedes dejar una donación pinchando en la siguiente imagen.
2. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.
Quieres aprender más en Excel o tienes algún problema que necesita solución?
Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.
El Sabio de Excel busca colaborades del blog
Si te interesa compartir tu conocimiento sobre Excel de tal manera que puedas ayudar a otras personas, por favor mándame un email a elsabiodeexcel@gmail.com
Subscríbete y recibe todos las entradas por email
Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.
Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.
No hay comentarios:
Publicar un comentario