Simulación Monte Carlo en Excel, paso a paso (2026)

Una simulación Monte Carlo en Excel sustituye una previsión de un solo valor por un rango: da a cada entrada incierta una media y una desviación, genera valores con =INV.NORM(ALEATORIO();media;desv), calcula un ensayo completo y repítelo 1000 veces con una tabla de datos de una columna. Después resume los resultados con PERCENTIL.INC y un histograma. No hace falta ningún complemento ni VBA.

Pruébalo con tu propio archivo → · Actualizado el 10 de octubre de 2026

Una previsión de un solo número (“el beneficio será de 15 000”) es una suposición disfrazada de dato. Una simulación Monte Carlo ejecuta el modelo mil veces con entradas que varían al azar y te dice el rango realista de resultados y la probabilidad de cada uno. Esta guía, versión en español de nuestro tutorial de Monte Carlo en inglés, monta una simulación completa con ALEATORIO, INV.NORM y una tabla de datos, y la resume con percentiles P10/P50/P90 y un histograma. Funciona desde Excel 2010 hasta Microsoft 365.

The DataHub Pro Team The DataHub Pro Team · Analítica para pymes
· Acerca de
⬇ Plantillas de Excel gratis: descarga plantillas de Excel listas para usar y basadas en fórmulas — seguimiento de proyectos, dashboard de KPI, cuenta de resultados, previsiones y más — gratis con una cuenta.

Resumen rápido

Modela cada entrada incierta como =INV.NORM(ALEATORIO();media;desv) para que cada recálculo sea un escenario aleatorio nuevo. Repite el modelo 1000 veces con una tabla de datos de una columna (Datos → Análisis de hipótesis → Tabla de datos, con una celda vacía como celda de entrada de columna). Resume los 1000 resultados con =PERCENTIL.INC(rango;0,1) (P10), 0,5 (P50) y 0,9 (P90), dibuja un histograma y calcula el riesgo directamente: =CONTAR.SI(rango;"<0")/CONTAR(rango) es la probabilidad de pérdida.

Nota sobre las fórmulas: esta guía usa los nombres de las funciones de Excel en español (ALEATORIO, INV.NORM, PERCENTIL.INC, CONTAR.SI) con el punto y coma (;) como separador de argumentos y la coma como separador decimal (0,1). En Excel en inglés las funciones se llaman RAND, NORM.INV, PERCENTILE.INC y COUNTIF, y los argumentos se separan con coma: =NORM.INV(RAND(),100000,15000). Si tu Excel usa la coma como separador de argumentos, escribe los decimales con punto.

Contenido

  1. Qué es una simulación Monte Carlo
  2. Antes de empezar
  3. Paso 1 — Monta el modelo
  4. Paso 2 — Entradas aleatorias
  5. Paso 3 — Un ensayo completo
  6. Paso 4 — 1000 ensayos con una tabla de datos
  7. Paso 5 — Resume con percentiles
  8. Paso 6 — Histograma
  9. Paso 7 — Cómo leer P10, P50 y P90
  10. Ejemplo práctico
  11. Consejos avanzados
  12. Errores comunes

Qué es una simulación Monte Carlo

Una simulación Monte Carlo responde a la pregunta que toda previsión esquiva: ¿cuánto me puedo equivocar? En lugar de meter un único valor “más probable” en cada entrada, describes cada entrada incierta como una distribución de probabilidad (“los ingresos rondan 100 000 con una desviación típica de 15 000”) y recalculas el modelo cientos o miles de veces con valores aleatorios nuevos. Cada recálculo es un futuro posible; el conjunto de todos ellos es la imagen completa de los futuros que tus supuestos permiten.

El nombre viene del casino de Montecarlo: el método se bautizó en los años cuarenta, cuando un grupo de físicos usó el muestreo aleatorio para resolver problemas demasiado enredados para el cálculo directo. En la empresa la idea es la misma: ¿terminará el proyecto dentro del presupuesto?, ¿qué probabilidad hay de que el producto nuevo pierda dinero el primer año?, ¿cuánta caja necesitamos para aguantar un trimestre malo? Son preguntas de probabilidad, y una simulación las contesta con probabilidades en lugar de intuiciones.

Lo que mucha gente no espera es que no necesitas ningún complemento. Excel ya trae todo lo necesario: ALEATORIO() para el azar, INV.NORM() para darle forma de distribución realista y la tabla de datos para repetir el modelo mil veces de una sola vez.

Antes de empezar

Un modelo determinista que funcione. Construye primero el modelo con números fijos y comprueba que da el resultado correcto. Aleatorizar un modelo roto solo produce mil respuestas equivocadas. Esa versión fija también te servirá de control: la media de la simulación debería quedar cerca de ella.

Una media y una dispersión para cada entrada incierta. Lo ideal es sacarlas del histórico, con =PROMEDIO() y =DESVEST.M() sobre los últimos meses reales. Si no hay histórico, pregúntate “¿entre qué valores estaría seguro al 95 %?” y usa como desviación típica aproximadamente una cuarta parte de ese rango, porque ±2 desviaciones cubren alrededor del 95 % de una distribución normal.

Cálculo automático activado. Revisa Fórmulas → Opciones para el cálculo → Automático. Con el cálculo en Manual o en “Automático excepto en las tablas de datos”, la tabla de datos devuelve valores idénticos y la simulación parece rota.

1.Paso 1 — Monta el modelo

Vamos a simular un modelo de beneficio mensual sencillo pero realista: beneficio = ingresos − costos variables − costos fijos, donde los ingresos y el porcentaje de costo variable son inciertos. Primero, el bloque de supuestos:

CeldaSupuestoValor
B2Ingresos medios100000
B3Desviación típica de los ingresos15000
B4% de costo variable medio55 %
B5Desviación típica del % de costo variable5 %
B6Costos fijos30000

Debajo, reserva el bloque del modelo: B9 para los ingresos simulados, B10 para el % de costo variable simulado y B11 para el resultado, el beneficio. De momento escribe en B9 y B10 las medias (100000 y 55 %) y en B11 la fórmula del resultado:

=B9-(B9*B10)-B6

Con los valores fijos, B11 debe mostrar 100 000 − 55 000 − 30 000 = 15 000. Compruébalo a mano antes de seguir: este número es el ancla de todo lo demás. La estructura importa más que el modelo concreto; cualquier hoja en la que unas entradas alimenten fórmulas que acaban en una celda de resultado se puede simular igual, ya sea un presupuesto de proyecto, un embudo de ventas o un descuento de flujos de caja.

2.Paso 2 — Entradas aleatorias con ALEATORIO e INV.NORM

Ahora hacemos inciertas las entradas. En B9 (ingresos simulados) escribe:

=INV.NORM(ALEATORIO();$B$2;$B$3)

ALEATORIO() devuelve un número aleatorio uniforme entre 0 y 1, que puedes ver como un percentil al azar. INV.NORM(probabilidad;media;desv_estándar) responde a la pregunta “¿qué valor de una normal con esta media y esta desviación está en ese percentil?”. Si le das un percentil aleatorio, obtienes un valor aleatorio de la distribución normal. En estadística se llama muestreo por transformada inversa. Repite el patrón en B10 para el % de costo variable:

=INV.NORM(ALEATORIO();$B$4;$B$5)

Pulsa F9 varias veces. Los ingresos deberían moverse alrededor de 100 000, casi siempre dentro de ±30 000 (dos desviaciones), y el % de costo, cerca del 55 %. INV.NORM es la versión de Excel 2010 en adelante; la función antigua DISTR.NORM.INV hace lo mismo y sigue funcionando por compatibilidad.

Otras distribuciones, el mismo truco

Cuidado: la normal no tiene suelo, así que de vez en cuando INV.NORM sacará unos ingresos negativos o un % de costo por encima del 100 %. Si eso es imposible en tu modelo, acótalo con =MAX(0;INV.NORM(ALEATORIO();$B$2;$B$3)) o usa una lognormal para esa entrada.

3.Paso 3 — Un ensayo completo

Con B9 y B10 aleatorios, la celda B11 ya es un ensayo completo: un escenario aleatorio coherente que recorre todo el modelo. Pulsa F9 varias veces y observa B11. Antes de seguir, tres comprobaciones rápidas:

  1. El centro es correcto. Tras muchas pulsaciones, los resultados deberían repartirse alrededor de 15 000. Si se desvían siempre hacia un lado, alguna fórmula apunta a la celda equivocada.
  2. La dispersión es creíble. Si el beneficio salta ±80 000 sobre una base de 15 000, probablemente una desviación está mal por un factor de diez (el clásico: escribir 5 en lugar de 5 %).
  3. El sentido es lógico. Pon temporalmente a 0 la desviación de los ingresos: ahora solo varían los costos y el beneficio debe moverse en sentido contrario al costo. Después restaura el valor.

4.Paso 4 — 1000 ensayos con una tabla de datos

La tabla de datos de Excel, pensada para análisis de hipótesis, tiene un efecto secundario muy útil: recalcula todo el libro una vez por fila. Combinada con entradas volátiles como ALEATORIO(), cada fila recoge un ensayo nuevo e independiente:

  1. En D2:D1001 escribe los números de ensayo del 1 al 1000 (o =SECUENCIA(1000) en Microsoft 365).
  2. En E1, una fila por encima del primer ensayo y una columna a la derecha, enlaza el resultado: =B11.
  3. Selecciona todo el bloque D1:E1001.
  4. Ve a Datos → Análisis de hipótesis → Tabla de datos. Deja vacía la celda de entrada (fila) y en la celda de entrada (columna) elige cualquier celda vacía que no use nada, por ejemplo $H$1. Acepta.

Excel sustituye cada número de ensayo en H1 (de la que no depende nada: ese es el truco), recalcula todo, incluidas las llamadas a ALEATORIO, y guarda el resultado. En unos segundos, E2:E1001 contiene 1000 beneficios simulados independientes.

Consejo: la tabla de datos se recalcula con cada cambio del libro y puede volverlo lento. Cuando el modelo esté terminado, cambia a Fórmulas → Opciones para el cálculo → Automático excepto en las tablas de datos y recalcula con F9 cuando quieras una ejecución nueva.

5.Paso 5 — Resume con percentiles

Mil números sueltos no dicen nada hasta que los resumes. Junto a los ensayos, crea un pequeño bloque de resumen:

=PROMEDIO(E2:E1001)
=DESVEST.M(E2:E1001)
=PERCENTIL.INC($E$2:$E$1001;0,1)

La última es el P10: el valor por debajo del cual queda el 10 % de los ensayos. Copia la fórmula y cambia el segundo argumento a 0,5 para el P50 (la mediana) y a 0,9 para el P90. Puedes añadir =MIN(E2:E1001) y =MAX(E2:E1001), pero no les des mucho peso: el peor valor de 1000 cambia en cada ejecución, mientras que P10 y P90 son estables.

Una línea más se gana su sitio en cualquier conversación sobre riesgo, la probabilidad de pérdida:

=CONTAR.SI(E2:E1001;"<0")/CONTAR(E2:E1001)

Si 30 de los 1000 ensayos son negativos, el modelo estima un 3 % de probabilidad de perder dinero. El mismo patrón contesta cualquier pregunta de umbral; por ejemplo, la probabilidad de superar un objetivo de 25 000 es =CONTAR.SI(E2:E1001;">25000")/CONTAR(E2:E1001).

6.Paso 6 — Dibuja el histograma

En Excel 2016 o posterior, selecciona E2:E1001 y ve a Insertar → Insertar gráfico estadístico → Histograma. Haz clic derecho en el eje horizontal → Dar formato al eje para fijar el ancho de los intervalos (números redondos como 5000 se leen mejor que los que elige Excel).

En versiones anteriores, crea tú los intervalos: escribe sus límites superiores en una columna (por ejemplo G2:G16) y cuenta los ensayos de cada intervalo con:

=CONTAR.SI.CONJUNTO($E$2:$E$1001;">"&G1;$E$2:$E$1001;"<="&G2)

Rellena hacia abajo y representa los recuentos en un gráfico de columnas con un ancho de intervalo pequeño. Fíjate en la forma: una campana simétrica es lo esperable con entradas normales; una cola larga indica que algún mecanismo amplifica un lado; dos jorobas indican que una entrada de escenarios discretos está partiendo los futuros en dos, y entonces una sola media engaña. Marca P10, P50 y P90 sobre el gráfico y tendrás la imagen de riesgo más convincente que puedes poner en una presentación.

7.Paso 7 — Cómo leer P10, P50 y P90

PercentilSignificadoLéelo como
P10El 10 % de los ensayos queda por debajoPesimista pero plausible: un mal resultado de 1 entre 10
P50La mediana: la mitad por encima, la mitad por debajoCaso central: la mejor estimación única
P90El 90 % de los ensayos queda por debajoOptimista pero plausible: un gran resultado de 1 entre 10

Juntos forman la banda P10–P90, donde cae el 80 % de los futuros simulados. Decir “beneficio: P50 de 14 700, P10–P90 de 4500 a 26 000” transmite en una línea lo que una previsión puntual no puede: la expectativa y la incertidumbre honesta que la rodea. Recuerda que los percentiles dependen de tus supuestos: la simulación cuantifica la incertidumbre que le has contado, no la que olvidaste.

Ejemplo práctico: ¿lanzamos el producto?

Una pequeña tienda online decide si lanza una línea de producto nueva. El plan determinista dice: ingresos de 100 000, costos variables del 55 % y costos fijos de lanzamiento de 30 000, es decir, un beneficio de 15 000. La dirección pregunta: “¿hasta qué punto estamos seguros?”.

La analista monta el modelo de esta guía con las entradas =INV.NORM(ALEATORIO();100000;15000) y =INV.NORM(ALEATORIO();0,55;0,05) y ejecuta 1000 ensayos. Una ejecución típica da estos resultados (cifras aproximadas: cambian un poco en cada ejecución):

MedidaPlan de un solo valorSimulación de 1000 ensayos
Beneficio central15 000Media ≈ 15 000; P50 ≈ 14 700
Rango P10–P90—≈ 4500 a 26 000
Probabilidad de pérdida—≈ 3 %
Probabilidad de superar 25 000—≈ 12 %

El caso central coincide con el plan, pero ahora la dirección ve que perder dinero es poco probable (alrededor de 1 entre 30) y que el décimo peor de los escenarios sigue en positivo. Después hace la comprobación de sensibilidad: con la desviación de los ingresos a cero, la desviación típica del beneficio baja de unos 8500 a unos 5000; con la del % de costo a cero, solo baja a unos 6800. Conclusión: se aprueba el lanzamiento y se encarga una prueba de demanda previa, porque la simulación muestra que el riesgo está en los ingresos, no en el control de costos.

Consejos avanzados

Congela una ejecución. ALEATORIO vuelve a sortear con cada cambio. Para guardar una ejecución, copia la columna de resultados y usa Pegado especial → Valores en una hoja de archivo, con la fecha y el conjunto de supuestos.

Entradas correlacionadas. Si ingresos y costos se mueven juntos, tratarlos como independientes distorsiona el riesgo. Pon un factor común =INV.NORM(ALEATORIO();0;1) en una celda Z y construye cada entrada como media+desv*(ρ*Z+RAIZ(1-ρ^2)*INV.NORM(ALEATORIO();0;1)), con ρ como correlación deseada.

Más ensayos con matrices dinámicas. En Microsoft 365, =INV.NORM(MATRIZALEAT(10000);media;desv) desborda 10 000 valores en una sola fórmula, sin tabla de datos, en modelos de una sola entrada. Con más ensayos, los percentiles extremos (P5, P95) se estabilizan bastante.

Errores comunes

Todas las filas de la tabla de datos muestran el mismo número. El cálculo está en Manual o en “Automático excepto en las tablas de datos” (pulsa F9 o cambia a Automático), o el modelo no contiene ningún ALEATORIO().

#¡NUM! en INV.NORM. La desviación es cero o negativa, o la probabilidad vale exactamente 0 o 1. Comprueba que la celda de la desviación tiene un número positivo y que usas ALEATORIO(), que nunca devuelve exactamente 0 ni 1.

Resultados imposibles en las colas. Ingresos negativos o costos por encima del 100 %. Acota con MAX(0;...) o MIN(1;...), o usa una distribución lognormal para esa entrada.

El libro va muy lento. Las celdas volátiles más una tabla de datos se recalculan con cada edición. Usa “Automático excepto en las tablas de datos” mientras editas y guarda la simulación en su propio libro.

¿Quieres el análisis sin montar la tabla de datos?

Sube tu archivo a DataHub Pro y obtén gráficos, previsiones con bandas de incertidumbre y un enlace para compartir, sin fórmulas que mantener. Plan gratuito sin tarjeta; Pro desde $19.99 por puesto al mes.

Probar DataHub Pro gratis →

Libros de trabajo que usan este método

Cada página muestra la hoja y sus fórmulas en vivo antes de iniciar sesión.

Plantilla de simulación Monte CarloRango pesimista, probable y optimista para cada supuesto, con resultados P10–P90 sobre miles de ensayos.Monte Carlo de pista de caja500 trayectorias de caja simuladas a 18 meses, con la pista de caja como distribución P5/P50/P95.Planificador de escenariosEscenarios optimista, base y pesimista calculados a la vez, con el punto de caja más bajo de cada uno.

Preguntas frecuentes

¿Cómo se hace una simulación Monte Carlo en Excel?
Construye el modelo con fórmulas normales y sustituye cada entrada incierta por =INV.NORM(ALEATORIO();media;desviación) para que tome un valor aleatorio en cada recálculo. Para repetir el modelo 1000 veces, numera las filas del 1 al 1000 en una columna, enlaza la celda de encabezado contigua con el resultado, selecciona el bloque y usa Datos > Análisis de hipótesis > Tabla de datos con cualquier celda vacía como celda de entrada de columna. Excel recalcula el modelo una vez por fila y guarda cada resultado.
¿Excel tiene una herramienta de simulación Monte Carlo integrada?
No como un botón único, pero todo lo necesario viene incluido: ALEATORIO e INV.NORM generan las entradas aleatorias, una tabla de datos de una columna repite el modelo miles de veces, y PERCENTIL.INC junto con el gráfico de histograma resumen los resultados. No hace falta ningún complemento.
¿Cuál es la fórmula para generar valores normales aleatorios en Excel?
Usa =INV.NORM(ALEATORIO();media;desviación). ALEATORIO() devuelve una probabilidad uniforme entre 0 y 1, e INV.NORM la convierte en el valor correspondiente de una distribución normal con esa media y esa desviación. Por ejemplo, =INV.NORM(ALEATORIO();100000;15000) simula unos ingresos con media 100000 y desviación típica 15000. En Excel en inglés la fórmula es =NORM.INV(RAND(),100000,15000).
¿Cuántos ensayos necesita una simulación Monte Carlo?
1000 ensayos es un buen punto de partida en Excel: la media y el P50 suelen ser estables y la tabla de datos sigue siendo rápida. Los percentiles extremos como P5 o P95 necesitan más, entre 5000 y 10000 si guían la decisión. El error de la estimación baja con la raíz cuadrada del número de ensayos. Ejecuta la simulación varias veces: si las cifras que te importan apenas se mueven, tienes suficientes ensayos.
¿Qué significan P10, P50 y P90?
Son percentiles de la distribución de resultados simulados. P10 es el valor por debajo del cual queda el 10 % de los ensayos, un caso pesimista pero plausible. P50 es la mediana, la mejor estimación central. P90 es el valor por debajo del cual queda el 90 % de los ensayos, un caso optimista que solo supera 1 de cada 10 ensayos.
¿Por qué mi tabla de datos muestra el mismo valor en todas las filas?
Hay dos causas habituales. La primera es que el cálculo está en Manual o en Automático excepto en las tablas de datos (Fórmulas > Opciones para el cálculo): cambia a Automático o pulsa F9. La segunda es que el modelo no tiene ninguna función volátil: si las entradas son números fijos en lugar de fórmulas con ALEATORIO(), cada recálculo da el mismo resultado.

Guías relacionadas

De la simulación estática a un panel vivo

DataHub Pro convierte tu hoja de cálculo en un panel interactivo con previsiones y bandas de incertidumbre, y te da un enlace que se mantiene al día en lugar de un libro que se queda obsoleto.

Probar DataHub Pro gratis →

Recibe el boletín de DataHub Pro

Tutoriales gratuitos de Excel y analítica, plantillas nuevas y consejos sobre el producto, una o dos veces al mes. Sin spam; puedes darte de baja cuando quieras.

Doble confirmación · Conforme al RGPD · Con la tecnología de tus propias herramientas de datos

Sigue leyendo

Pruébalo con tu propia hoja de cálculo → Gratis, sin registro.