KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

¿Cómo generar un valor aleatorio en Excel basado en una probabilidad asignada?

AutorSun Fecha de modificación

Al trabajar con Excel, es posible que en ocasiones necesite generar valores aleatorios que reflejen probabilidades subyacentes específicas. Por ejemplo, imagine que tiene una tabla con varios resultados posibles y sus probabilidades asociadas, como se muestra en la siguiente captura de pantalla.
datos de ejemplo

Este escenario es habitual en simulaciones empresariales, modelado de proyectos y entornos educativos cuando se desea que la selección aleatoria refleje con precisión la probabilidad o frecuencia establecida por sus datos.

Las necesidades y casos de uso habituales incluyen:

  • Simule respuestas de encuestas o elecciones de clientes, en las que algunas opciones tienen mayor probabilidad de ser seleccionadas.
  • Genera conjuntos de datos de prueba o extracciones aleatorias para enseñar conceptos de probabilidad.
  • Automatiza procesos de selección en los que cada opción tiene una probabilidad conocida.
  • Diseño de juegos y análisis de riesgos que requieren resultados basados en distribuciones de probabilidad específicas.

A continuación, descubra varios métodos para generar valores aleatorios según probabilidades asignadas en Excel: técnicas estándar basadas en fórmulas, una automatización avanzada mediante VBA y el uso del complemento integrado Análisis de datos.


Generar un valor aleatorio con probabilidad

Excel ofrece una solución accesible basada en fórmulas para generar valores aleatorios según probabilidades definidas. Este método es ideal para tareas rápidas, funciona íntegramente dentro de las hojas de cálculo y no requiere configuración adicional.

Antes de comenzar, asegúrese de que sus valores estén organizados en una columna (A2:A8) y que sus probabilidades correspondientes —expresadas como decimales entre 0 y 1— figuren en la columna adyacente (B2:B8). Las probabilidades deben sumar exactamente 1 para garantizar precisión. Esta solución es ideal para tablas con un número manejable de valores.

1.En una columna adyacente (comenzando en C2), introduzca la siguiente fórmula para calcular las probabilidades acumuladas:

=SUM($B$2:B2)

Luego, arrastre esta fórmula hacia abajo para cubrir todos sus valores. Así se generan intervalos acumulados para cada valor, lo que facilita asignar un número aleatorio a un resultado específico.
utilice una fórmula para calcular porcentajes acumulados

2.En cualquier celda vacía (por ejemplo, D2), introduzca la siguiente fórmula para obtener un valor aleatorio basado en su distribución de probabilidad:

=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)

Pulse Intro para mostrar un valor aleatorio. Cada vez que pulse F9 (para recalcular) o cuando cambien los datos de la hoja, aparecerá un nuevo resultado.
aplique una fórmula para generar un valor seleccionado aleatoriamente basado en porcentajes acumulados

Consejos y precauciones:

  • Las probabilidades en la columna B deben sumar exactamente 1 (o el 100 % si se expresan en porcentajes; en ese caso, conviértalos a decimales para usarlos en las fórmulas) y así garantizar una distribución justa.
  • Esta técnica es ideal para listas cortas. Si tiene decenas o cientos de valores, el rendimiento puede ralentizarse y el mantenimiento se vuelve complicado.
  • Si necesita repetir la selección aleatoria para varias extracciones (por ejemplo, generar un lote de resultados simulados), basta con copiar la fórmula final en un rango situado debajo o al lado.
  • Tenga cuidado con las filas en blanco y los rangos no coincidentes, ya que pueden causar errores o resultados inesperados.

Recordatorio de errores: Si obtiene un error #¡REF! o #¡VALOR!, asegúrese de que su columna de probabilidades acumuladas tenga la misma longitud que sus valores y de que todas las probabilidades sean números válidos.

una captura de pantalla de kutools for excel ia

Descubra la magia de Excel con KUTOOLS AI

  • Ejecución inteligente: Realice operaciones en celdas, analice datos y cree gráficos con comandos sencillos.
  • fórmulas personalizadas: Cree fórmulas a medida para optimizar sus flujos de trabajo.
  • Programación en VBA: Escriba e implemente código VBA con facilidad.
  • Interpretación de fórmulas: Entienda las fórmulas complejas con facilidad.
  • Traducción de texto: Rompa las barreras del idioma directamente en sus hojas de cálculo.
Potencie sus capacidades en Excel con herramientas impulsadas por inteligencia artificial.Descárguelo ahora¡y experimente una eficiencia como nunca antes!

VBA: Generar valores aleatorios con probabilidades asignadas

Para usuarios que requieran mayor automatización o deseen generar un volumen mayor de valores aleatorios (como miles de muestras), Excel VBA ofrece una solución práctica que funciona de forma más rápida y flexible que las fórmulas de hoja de cálculo. Este método resulta especialmente eficaz al trabajar con grandes conjuntos de datos o al producir resultados aleatorios masivos para simulaciones.

1.Vaya a Herramientas para desarrolladores>Visual Basic, luego en la ventana de VBA, haga clic en Insertar>Móduloy pegue el siguiente código en el módulo:

Sub GenerateRandomWithProbability()
    Dim rngValues As Range
    Dim rngProbs As Range
    Dim n As Long
    Dim i As Long
    Dim cumProbs() As Double
    Dim valList() As Variant
    Dim randNum As Double
    Dim resultRange As Range
    Dim idx As Long
    
    ' On Error, ignore
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Select values
    Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
    
    ' Select probabilities
    Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
    
    ' Number of random values to generate
    n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
    
    ' Where to output
    Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
    
    If rngValues.Rows.Count <> rngProbs.Rows.Count Then
        MsgBox "Values and probabilities range must be the same size.", vbExclamation
        Exit Sub
    End If
    
    ReDim cumProbs(1 To rngValues.Count)
    ReDim valList(1 To rngValues.Count)
    
    ' Calculate cumulative probabilities
    cumProbs(1) = rngProbs.Cells(1, 1).Value
    valList(1) = rngValues.Cells(1, 1).Value
    
    For i = 2 To rngValues.Count
        cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
        valList(i) = rngValues.Cells(i, 1).Value
    Next i
    
    ' Generate random results
    For i = 1 To n
        randNum = Rnd
        For idx = 1 To UBound(cumProbs)
            If randNum <= cumProbs(idx) Then
                resultRange.Cells(i, 1).Value = valList(idx)
                Exit For
            End If
        Next idx
    Next i
End Sub

2. En la ventana de VBA, haga clic en el Botón Ejecutar botón de ejecución para ejecutar el código. A continuación, se le pedirá sucesivamente que seleccione el rango de sus valores, el rango de probabilidades, el número de valores aleatorios que desea generar y la celda inicial de salida. La macro rellenará rápidamente las celdas de destino con valores aleatorios basados en las probabilidades asignadas.

  • Puede repetir este proceso con conjuntos de datos más grandes, y la columna de resultados se puede personalizar en cualquier hoja.
  • Si el rango de probabilidades no suma un valor muy cercano a 1, el código podría distorsionar la distribución; asegúrese siempre de validar sus supuestos.
  • Esta solución es ideal para muestreos automatizados, simulaciones y la generación reproducible de lotes.

Consejos: Mantenga sus valores y probabilidades contiguos y perfectamente alineados. Guarde su trabajo antes de ejecutar macros, ya que las acciones de VBA no se pueden deshacer con «Deshacer».


Artículos relacionados:

Las mejores herramientas de productividad para Office

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose en:Ejecución Inteligente   |  Generar código|  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos|  Invocar Funciones mejoradas
Funciones populares:Buscar, resaltar o Marcar duplicados   |  Eliminar filas en blanco   |  Combinar Columnas o celdas sin perder datos   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir un número específico de columnas|Mover columnas|Alternar el estado de visibilidad de columnas ocultas|Comparar rangos y columnas...
Funciones destacadas:Cuadrícula de enfoque   |  Vista de diseño   |Barra de fórmulas mejorada   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...


Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
  • ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!

Todos los complementos de Kutools en un solo instalador.

Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.

ExcelWordOutlookTabsPowerPoint
  • Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
  • Un instalador, una licencia— configuración en minutos (compatible con MSI)
  • Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
  • Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
  • La mejor relación calidad-precio— ahorre frente a la compra individual de complementos