Función ALEATORIO excluyendo rangos

La función que muestro a continuación da como resultado un número aleatorio entre dos números sin tener en cuenta un intervalo especificado. Como no sabía cómo llamarla, he optado por ALEATORIO2.

Imagina que necesitas un número aleatorio entre 1 y 100, que no debe mostrar como resultado, un valor comprendido entre 25 y 50.

La sintaxis es la siguiente:

=ALEATORIO2(inferior;superior;número inferior rango excluido;número superior rango excluido)

Atención! Todos los argumentos son obligatorios

En primer lugar la función valida los argumentos para comprobar que se han introducido en el orden correcto.

Luego, mediante un bucle, va creando números enteros aleatorios entre el valor inferior y el superior hasta que da con uno que no está comprendido en el rango de números excluidos.

Este es el código resultante:

 

Function ALEATORIO2(primer As Integer, ultimo As Integer, no1 As _
    Integer, no2 As Integer)

    'Valida los datos para que en el cálculo no aparezcan errores

    If primer >= ultimo Or primer > no1 Or primer > no2 Or no1 > no2 _
    Or no1 > ultimo Or no2 > ultimo Then
        a = MsgBox("Por favor, revisa los argumentos de la función", , _
    "Error en la función")
        Exit Function
    End If

    ' Calcula el entero aleatorio mientras no se encuentre entre no1 y no2

    Do
        res = Int((ultimo - primer + 1) * Rnd() + primer)
    Loop While res >= no1 And res <= no2

    ALEATORIO2 = res

End Function

¿Te ha sido útil esta función?

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

Los comentarios están cerrados.

Picture of Sergio

Sergio

Experto formador en Excel y Power BI con más de dos décadas de experiencia. Capacito a profesionales para optimizar su trabajo y ser más eficientes. Con un enfoque práctico y cercano, mi objetivo es ayudarte a dominar estas herramientas esenciales. Descubre mis formaciones.MVP de Microsoft 5 años consecutivos.

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

Buscar

Últimos posts

¿De qué hablo aquí?

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.