Solver en LibreOffice Calc es la herramienta que ajusta un modelo en la hoja hasta dejarlo optimizado, sin que tengas que probar combinaciones a mano. Sirve, por ejemplo, para decidir cuántas unidades fabricar de cada producto cuando hay un tiempo de máquina limitado, o para repartir un presupuesto entre varios proyectos buscando el mejor resultado.
En esta guía vas a preparar un libro de planificación con tres productos, vas a abrir el Solver y vas a resolver un modelo simple, después uno con varias restricciones y, al final, sabrás detectar tres fallos típicos y cuándo conviene usar otra herramienta. Todo lo que explico se aplica a LibreOffice Calc 7 y posteriores, en Windows, Mac y Linux; el complemento Solver está disponible desde versiones antiguas del programa y viene activado por defecto en la instalación habitual.
Qué es el Solver y para qué sirve en una hoja de cálculo
Solver es un complemento de LibreOffice Calc que busca la mejor combinación posible para los valores de unas celdas que tú eliges, respetando unas condiciones que también defines. Lo que hace es probar números siguiendo un método matemático (algoritmo) hasta dar con la combinación que cumple las reglas y mejora el resultado que le pides, que puede ser el máximo, el mínimo o un valor exacto.
Imagina la hoja de planificación de una pyme: tres productos con su precio, su coste y las unidades a fabricar. Cada producto consume un tiempo de máquina y un dinero que no se pueden pasar de un máximo. ¿Cuántas unidades haces de cada uno para ganar más? Eso lo calcula Solver. Tú escribes el modelo en celdas (fórmulas con =B2*C2, sumas, totales) y Solver cambia solo las celdas de unidades hasta dejar el beneficio lo más alto posible sin saltarse las restricciones.
La diferencia con Buscar objetivo es que Solver trabaja con varias celdas a la vez y admite condiciones, mientras que Buscar objetivo solo ajusta una celda para llegar a un resultado en otra. La diferencia con el análisis Y si de la pestaña Datos es que Solver optimiza, no solo simula lo que pasaría con valores que tú escribes a mano.
Dónde está el Solver y qué necesitas tener preparado
El Solver se abre desde Herramientas > Macros y datos > Solver. Si tu menú está en inglés, la ruta es Tools > Macros and Dialogs > Solver. La primera vez que lo abres, puede que Calc te pregunte si quieres instalar el complemento; di que sí, cierra y vuelve a abrirlo. En algunas distribuciones de Linux el paquete viene separado y hay que instalarlo desde el gestor de paquetes como libreoffice-solver o equivalente.
Antes de pulsar, prepara la hoja con la fórmula que se va a optimizar y con las celdas que el Solver puede cambiar. Si esas celdas están vacías, el Solver deja el modelo como está y no encuentra nada que mejorar.
$B$3 entero | [Cambiar] [Eliminar]
La ventana del Solver: celda objetivo, variables y restricciones
La ventana del Solver tiene tres zonas principales:
- Celda objetivo: la celda que contiene la fórmula que quieres mejorar (el beneficio total, el coste, el tiempo usado…). Tiene que tener una fórmula, no un valor escrito a mano.
- Cambiando las celdas: las celdas que el Solver va a poder modificar. Suelen ser las cantidades, los porcentajes o los importes a decidir. Si son varias seguidas, se escribe el rango entero, por ejemplo
$B$3:$B$5. - Limites: las condiciones que el modelo tiene que cumplir. Se añaden una a una con el botón Añadir y se ven como una lista; cada una tiene tres partes: la celda, la comparación (
<=,=,>=, o números enteros/binarios) y el valor.
En un ejemplo pequeño de tres productos, escribirías: celda objetivo $D$5 (beneficio), cambiando $B$3:$B$5 (unidades), y una primera restricción $F$5 <= 40 (tiempo total máximo de 40 horas).
Los motores de resolución y cómo elegir uno
Al pulsar el botón Opciones se abre otro cuadro donde eliges el motor de cálculo. Las opciones reales del complemento Solver de Calc en versiones recientes son dos: DEPS (DEPS, Differential Evolution and Particle Swarm Optimization) y Algoritmo evolutivo. En versiones muy antiguas podía aparecer un motor lineal, pero hoy el lineal no está disponible; los problemas lineales se resuelven también con el evolutivo.
| Motor | Cuándo usarlo | Límite de variables |
|---|---|---|
| DEPS | Es el motor por defecto y el más rápido en la mayoría de los casos. | – |
| Algoritmo evolutivo | Modelos con muchas variables o con relaciones no lineales; tarda más, pero llega donde DEPS no. | – |
Mantén el valor por defecto (DEPS) la mayoría de las veces y solo cambia a evolutivo si DEPS se atasca o devuelve resultados raros tras varias pruebas. Estos motores son estocásticos (usan números al azar), así que dos ejecuciones iguales pueden dar cifras casi iguales, pero no idénticas en los decimales últimos.
Resolver un primer problema: maximizar beneficios con una restricción
Vamos con un modelo clásico de tres productos: precio de venta, coste unitario y unidades a fabricar. El beneficio de cada producto es (precio - coste) * unidades, y el objetivo es subirlo lo máximo posible sin pasar de un tiempo total de máquina.
Escribir el modelo en la hoja antes de abrir el Solver
Copia esta tabla en Hoja1 a partir de la celda A1. Los valores de la columna Unidades (columna B) los dejas en blanco, son las que Solver va a calcular.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Producto | Precio | Coste | Beneficio/unidad | min/unidad | Tiempo/unidad | Tiempo total |
| 2 | |||||||
| 3 | Libreta | 3,50 | 1,20 | 4 | 2 | ||
| 4 | Bolígrafo | 1,80 | 0,60 | 2 | 1 | ||
| 5 | Carpeta | 6,00 | 2,50 | 6 | 3 | ||
| 6 | Libreta | 3,50 | 1,20 | 2,30 | 4 | 2 | |
| 7 | Bolígrafo | 1,80 | 0,60 | 1,20 | 2 | 1 | |
| 8 | Carpeta | 6,00 | 2,50 | 3,50 | 6 | 3 |
Escribe estas fórmulas y copia hacia abajo o hacia la derecha con el controlador de relleno:
=D3-C3
=E3+(F3*B3)
=SUMA(B3:B5)
=SUMAPRODUCTO(B3:B5;F3:F5)
Las celdas de unidades B3, B4 y B5 quedan vacías de momento. El beneficio total va en B11 como =SUMAPRODUCTO(D3:D5;B3:B5) y el tiempo total consumido en G3 como =SUMAPRODUCTO(B3:B5;F3:F5).
B11 vale 0 y G3 vale 0 porque aún no hay unidades; las celdas D3:D5 muestran 2,30 / 1,20 / 3,50.Cargar el modelo en el Solver y guardar la solución
Abre Solver desde Herramientas > Macros y datos > Solver y rellena:
- Celda objetivo:
$B$11. Dirección:(o) Max. - Cambiando las celdas:
$B$3:$B$5. - Limites: pulsa
Añadiry escribe la restricción de tiempo total:$G$3 <= 40. Acepta. - Pulsa
Resolver.
Aparece el cuadro de resultado con el mensaje "Se ha encontrado una solución que satisface todas las restricciones". Acepta para que los números se escriban en B3:B5. El plan queda en la hoja: Solver habrá repartido las 40 horas entre los productos según su beneficio por hora.
B3:B5 aparecen las unidades calculadas; en G3 el tiempo total está exactamente en 40 (o muy cerca); en B11 el beneficio es el más alto posible con esas reglas.Un modelo con varias restricciones y distintas direcciones
Ahora suma dos límites más al mismo modelo: dinero máximo para materiales y unidades mínimas del producto menos rentable.
| Celda | Significado | Restricción |
|---|---|---|
H3 |
Coste total de materiales | <= 200 |
B5 |
Unidades de Carpeta | >= 3 |
B4 |
Unidades de Bolígrafo | entero |
B11 |
Beneficio total | Max |
Vuelve a abrir Solver y añade las restricciones anteriores con Añadir. Cambia la dirección a Min y resuelve: verás que el beneficio baja y las unidades se redistribuyen al mínimo posible. Cámbialo a Valor y escribe 50: Solver buscará unidades que den un beneficio de exactamente 50 si eso es viable dentro de las restricciones.
Añadir, editar y quitar restricciones
En la lista de Limites, selecciona una restricción y usa los botones de la derecha:
Añadirabre un mini cuadro con tres campos (Referencia de celda,Operador,Valor).Cambiarabre el mismo cuadro con los datos cargados para corregirlos.Eliminarla quita del modelo sin borrarla de la hoja.
Por ejemplo, selecciona la restricción $G$3 <= 40, pulsa Cambiar, pon 36 en Valor y acepta. Al pulsar Resolver otra vez, el beneficio total cambia porque ahora hay menos horas disponibles.
Por qué el Solver no encuentra la solución óptima
Tres causas reales, con la hoja que falla y cómo arreglarlas.
Las variables están en celdas vacías o con texto
Si dejas B3:B5 vacías, Solver te dirá que la solución no mejora nada y cerrará el cuadro sin hacer cambios. La causa es que sin un valor inicial sobre el que iterar, no hay por dónde empezar.
| A | B | |
|---|---|---|
| 3 | Libreta | |
| 4 | Bolígrafo | |
| 5 | Carpeta |
Arreglo: escribe un punto de partida en cada celda (1, 1, 1) y vuelve a resolver. Aunque luego Solver cambie esos valores, necesita un primer número.
La restricción es imposible y no hay solución
Si pides más horas de las disponibles, Solver muestra "No se ha encontrado una solución que satisfaga todas las restricciones" y deja los valores como estaban.
Arreglo: revisa la restricción que se cumple justo o por los pelos y afloja su valor (<= 40 pasa a <= 50) hasta que el cuadro diga otra vez que se encontró solución.
El resultado no se queda guardado al cerrar el archivo
Herramientas > Opciones > LibreOffice Calc > Solver está la casilla "Guardar modelo con el libro"; márcala antes de cerrar si quieres que al volver a abrir el archivo el modelo siga ahí.Cuándo Solver no es la herramienta adecuada y qué usar en su lugar
Solver maneja muy bien modelos con hasta unos cientos de variables y relaciones lineales o casi lineales. Cuando el modelo se complica, toca cambiar de herramienta.
- Variables enteras o binarias (0/1): Solver las admite con la opción
binoentero, pero con más de 50 variables tarda mucho. Si tu modelo de producción tiene muchas decisiones del tipo sí/no, plantéate un script en Python conpulpoortools. - Relaciones no lineales complejas: usa el motor
Algoritmo evolutivo, y si no basta, sal a Python conscipy.optimize. - Una sola incógnita y un objetivo:
Buscar objetivo(Datos > Previsión > Análisis de hipótesis > Buscar objetivo) es más rápido y directo. - Simular escenarios a mano: las tablas de datos del análisis Y si (
Datos > Previsión > Análisis de hipótesis > Tabla de datos) sirven para ver qué pasa al cambiar uno o dos valores, sin optimización.
Lo que ya sabes hacer con el Solver en LibreOffice Calc
- Abrir Solver desde
Herramientas > Macros y datos > Solvery entender las tres zonas de su ventana. - Escribir el modelo en la hoja con
SUMAPRODUCTOpara totales condicionados y dejar las variables vacías. - Resolver un problema de maximización con una sola restricción y guardar el resultado.
- Añadir, cambiar y eliminar restricciones para explorar variantes del modelo.
- Detectar los tres errores más comunes: variables vacías, restricciones imposibles y modelo no guardado.
El siguiente paso es combinar Solver con macros Basic: automatiza la apertura del modelo, el cambio de una restricción y la resolución, y tendrás un panel que recalcula el mejor plan con un clic.
Fuentes
- MicrosoftFormatos de archivo de Excel — documentación oficialconsultado el 13/10/2026