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?

¡Compartir es vivir!
Sergio
 

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.

Haz clic aquí para dejar un comentario 0 comentarios

Escribe una respuesta:

Esta web usa cookies propias y de terceros para mejorar tu experiencia de navegación, elaborar información estadística y analizar tus hábitos de navegación. Si no estuvieras conforme puedes eliminarlos. Al hacer clic en "Aceptar" o si continúas navegando, aceptas su uso. Puedes revocar tu consentimiento en cualquier momento. Leer más

Los ajustes de cookies de esta web están configurados para «permitir cookies» y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar» estarás dando tu consentimiento a esto.

Cerrar