Funcións RAND e RANDBETWEEN para xerar números aleatorios en Excel

  • Comparte Isto
Michael Brown

O titorial explica as especificidades do algoritmo xerador de números aleatorios de Excel e demostra como usar as funcións RAND e RANDBETWEEN para xerar números aleatorios, datas, contrasinais e outras cadeas de texto en Excel.

Antes de afondar en diferentes técnicas de xeración de números aleatorios en Excel, imos definir cales son realmente. En inglés simple, os datos aleatorios son unha serie de números, letras ou outros símbolos que carecen de ningún patrón.

A aleatoriedade ten unha variedade de aplicacións diferentes en criptografía, estatísticas, loterías, xogos de azar e moitos outros campos. E debido a que sempre foi demandado, desde a antigüidade existen varios métodos para crear números aleatorios, como lanzar moedas, tirar dados, barallar cartas, etc. Por suposto, neste titorial non nos basaremos en técnicas tan "exóticas" e nos centraremos no que ofrece o xerador de números aleatorios de Excel.

    Xerador de números aleatorios de Excel: conceptos básicos

    Aínda que o xerador aleatorio de Excel supera todas as probas estándar de aleatoriedade, non xera números aleatorios verdadeiros . Pero non o canceles inmediatamente :) Os números pseudoaleatorios producidos polas funcións aleatorias de Excel están ben para moitos propósitos.

    Tomemos unha mira máis atentamente o algoritmo do xerador aleatorio de Excel para que saibas o que podes esperar del e o que non podes.

    Como a maioría dos ordenadores" 2Yu& ".

    Unha palabra de precaución! Se usas unha fórmula similar para crear contrasinais aleatorios, gañarán non sexas forte. Por suposto, non hai nada que diga que non poida xerar cadeas de texto máis longas encadeando máis funcións CHAR / RANDBETWEEN. Non obstante, é imposible aleatorizar a orde ou os caracteres, é dicir, a primeira función sempre devolve un número, a segunda función devolve unha letra maiúscula e así por diante.

    Se estás a buscar un xerador de contrasinais aleatorio avanzado en Excel capaz de producir cadeas de texto de calquera lonxitude e patrón, pode querer comprobar as capacidades do Advanced Random Generator para as cadeas de proba.

    Ademais, teña en conta que as cadeas de texto xeradas coa fórmula anterior cambiarán cada tempo que recalcula a túa folla de traballo. Para asegurarse de que as súas cadeas ou contrasinais seguen sendo os mesmos unha vez creadas, terá que impedir que a función RANDBETWEEN actualice os valores, o que nos leva directamente á sección seguinte.

    Como evitar que RAND e RANDBETWEEN recalculando

    Se queres obter un conxunto permanente de números aleatorios, datas ou cadeas de texto que non cambien cada vez que se recalcule a folla, utiliza unha das seguintes técnicas:

    1. Para evitar que as funcións RAND ou RANDBETWEEN se recalculen en unha cela , seleccione esa cela, cambie á barra de fórmulas e prema F9 para substituír a fórmula pola súavalor.
    2. Para evitar que unha función aleatoria de Excel se recalcule, use o Pegar especial > Característica de valores. Seleccione todas as celas coa fórmula aleatoria, prema Ctrl + C para copialas, prema co botón dereito no intervalo seleccionado e prema en Pegar especial > Valores .

    Para obter máis información sobre esta técnica para "conxelar" números aleatorios, consulte Como substituír fórmulas por valores.

    Como xerar números aleatorios únicos en Excel

    Ningunha das funcións aleatorias de Excel pode producir valores aleatorios únicos. Se queres crear unha lista de números aleatorios sen duplicados , realiza estes pasos:

    1. Utiliza a función RAND ou RANDBETWEEN para xerar unha lista de números aleatorios. Crea máis valores dos que realmente necesitas porque algúns serán duplicados para eliminalos máis tarde.
    2. Converte fórmulas en valores como se explica anteriormente.
    3. Elimina os valores duplicados utilizando a ferramenta integrada de Excel ou o noso Eliminador de duplicados avanzado para Excel.

    Neste titorial pódense atopar máis solucións: Como xerar números aleatorios sen duplicados.

    Xerador de números aleatorios avanzado para Excel

    Agora que sabes como usar funcións aleatorias en Excel, permíteme mostrarche unha forma máis rápida, sinxela e sen fórmulas de crear unha lista de números aleatorios, datas ou cadeas de texto nas túas follas de traballo.

    AbleBits Random Generator para Excel foi deseñado como unha ferramenta máis potente ealternativa amigable ás funcións RAND e RANDBETWEEN de Excel. Funciona con todas as versións de Microsoft Excel 2019, 2016, 2013, 2010, 2007 e 2003 por igual e aborda a maioría dos problemas de calidade e usabilidade das funcións aleatorias estándar.

    Algoritmo do xerador de números aleatorios AbleBits

    Antes de mostrar o noso xerador aleatorio en acción, déixeme proporcionar algunhas notas clave sobre o seu algoritmo para que saibas exactamente o que ofrecemos.

    • O xerador de números aleatorios AbleBits para Excel baséase no Algoritmo Mersenne Twister, que se considera un estándar da industria para a pseudoaleatorización de alta calidade.
    • Utilizamos a versión MT19937 que produce unha secuencia distribuída normalmente de enteiros de 32 bits cun período moi longo de 2^19937 - 1, o que é máis que suficiente para todos os escenarios imaxinables.
    • Os números aleatorios xerados mediante este método son de moi alta calidade. O xerador de números aleatorios superou satisfactoriamente varias probas de aleatoriedade estatística, incluíndo as coñecidas probas NIST Statistical Test Suite e Diehard e algunhas das probas de aleatoriedade TestU01 Crush.

    A diferenza das funcións aleatorias de Excel, o noso xerador de números aleatorios. crea valores aleatorios permanentes que non cambian cando se recalcula unha folla de cálculo.

    Como xa se indicou, este xerador de números aleatorios avanzado para Excel ofrece unha forma sen fórmulas (e, en consecuencia, sen erros :) paracrea varios valores aleatorios como:

    • Números enteiros ou decimais aleatorios, incluídos números únicos
    • Datas aleatorias (días laborables, fins de semana ou ambos, e opcionalmente datas únicas)
    • Cadenas de texto aleatorias, incluíndo contrasinais dunha lonxitude e un patrón determinados, ou por máscara
    • Valores booleanos aleatorios de VERDADEIRO e FALSO
    • Selección aleatoria de listas personalizadas

    E agora, vexamos o Xerador de números aleatorios en acción, como prometeu.

    Xerar números aleatorios en Excel

    Con AbleBits Random Number Generator, crear unha lista de números aleatorios é tan sinxelo coma facer clic o botón Xerar .

    Xerar números enteiros aleatorios únicos

    O único que tes que facer é seleccionar o intervalo que se vai encher con números enteiros aleatorios, establecer o valores inferiores e superiores e, opcionalmente, marque a caixa Valores únicos .

    Xeración de números reais aleatorios (decimais)

    De forma semellante, pode xerar unha serie de números decimais aleatorios no intervalo que especifique.

    Crear datas aleatorias en Excel

    Para as datas, o noso xerador de números aleatorios ofrece as seguintes opcións:

    • Xerar datas aleatorias para unha hora específica período: introduce a data inferior no cadro De e a data superior no cadro A .
    • Inclúe os días laborables, os fins de semana ou ambos.
    • Xerar datas únicas.

    Xerar cadeas de texto aleatorias econtrasinais

    Ademais de números aleatorios e datas, con este xerador aleatorio podes crear facilmente cadeas alfanuméricas aleatorias con determinados conxuntos de caracteres. A lonxitude máxima da cadea é de 99 caracteres, o que permite xerar contrasinais moi seguros.

    Unha opción única ofrecida por AbleBits Random Number Generator é a creación de cadeas de texto aleatorias por máscara . Esta é unha función moi útil para xerar identificadores únicos a nivel global (GUID), códigos postais, SKU, etc.

    Por exemplo, para obter unha lista de GUID aleatorios, selecciona o conxunto de caracteres hexadecimal e escribe ? ????????-????-????-???????????? na caixa Máscara , como se demostra na captura de pantalla:

    Se estás interesado en probar o noso xerador aleatorio, podes descargalo. a continuación como parte da nosa Ultimate Suite para Excel.

    Descargas dispoñibles

    Exemplos de fórmulas aleatorias (ficheiro .xlsx)

    Versión totalmente funcional de 14 días de Ultimate Suite (. exe)

    programas, o xerador de números aleatorios de Excel produce números pseudoaleatoriosutilizando algunhas fórmulas matemáticas. O que significa para ti é que, en teoría, os números aleatorios xerados por Excel son previsibles, sempre que alguén coñeza todos os detalles do algoritmo do xerador. Esta é a razón pola que nunca foi documentada e case nunca o será. Ben, que sabemos sobre o xerador de números aleatorios en Excel?
    • As funcións RAND e RANDBETWEEN de Excel xeran números pseudoaleatorios a partir da distribución Uniforme , tamén coñecida como distribución rectangular, onde hai a mesma probabilidade para todos os valores que pode tomar unha variable aleatoria. Un bo exemplo da distribución uniforme é lanzar un único dado. O resultado do sorteo son seis valores posibles (1, 2, 3, 4, 5, 6) e cada un destes valores é igualmente probable que se produza. Para obter unha explicación máis científica, consulta wolfram.com.
    • Non hai forma de sementar nin a función RAND de Excel nin a función RANDBETWEEN, que se rumorea que se inicializan desde a hora do sistema do ordenador. Tecnicamente, unha semente é o punto de partida para xerar unha secuencia de números aleatorios. E cada vez que se chama unha función aleatoria de Excel, utilízase unha nova semente que devolve unha secuencia aleatoria única. Noutras palabras, ao usar o xerador de números aleatorios en Excel, non pode obter unha secuencia repetible co RAND ou RANDBETWEENfunción, nin con VBA, nin por ningún outro medio.
    • Nas primeiras versións de Excel, anteriores a Excel 2003, o algoritmo de xeración aleatoria tiña un período relativamente pequeno (menos de 1 millón de secuencias de números aleatorios non recorrentes) e fallaba. varias probas estándar de aleatoriedade en secuencias aleatorias longas. Polo tanto, se alguén aínda traballa cunha versión antiga de Excel, é mellor que non use a función RAND con modelos de simulación grandes.

    Se está a buscar datos aleatorios verdadeiros , probablemente pode usar un xerador de números aleatorios de terceiros, como www.random.org, cuxa aleatoriedade provén do ruído atmosférico. Ofrecen servizos gratuítos para xerar números aleatorios, xogos e loterías, códigos de cores, nomes aleatorios, contrasinais, cadeas alfanuméricas e outros datos aleatorios.

    Está ben, esta introdución técnica bastante longa remata e comezamos a poñernos en práctica e cousas máis útiles.

    Función RAND de Excel: xera números reais aleatorios

    A función RAND de Excel é unha das dúas funcións deseñadas especialmente para xerar números aleatorios. Devolve un número decimal aleatorio (número real) entre 0 e 1.

    RAND() é unha función volátil, o que significa que se xera un novo número aleatorio cada vez que se calcula a folla de cálculo. E isto ocorre cada vez que realizas calquera acción nunha folla de traballo, por exemplo, actualiza unha fórmula (non necesariamente a fórmula RAND, só calquera outra fórmula nunhasheet), edite unha cela ou introduza novos datos.

    A función RAND está dispoñible en todas as versións de Excel 365 - 2000.

    Xa que a función RAND de Excel non ten argumentos, simplemente introduza =RAND() nunha cela e despois copia a fórmula en tantas celas como queiras:

    E agora, imos dar un paso máis e escribir algunhas fórmulas RAND para xerar números aleatorios segundo ás súas condicións.

    Fórmula 1. Especifique o valor límite superior do intervalo

    Para xerar números aleatorios entre cero e calquera valor N , multiplique a función RAND por N:

    RAND()* N

    Por exemplo, para crear unha secuencia de números aleatorios maiores ou iguais a 0 pero inferiores a 50, use a seguinte fórmula:

    =RAND()*50

    Nota. O valor do límite superior nunca se inclúe na secuencia aleatoria devolta. Por exemplo, se queres obter números aleatorios entre 0 e 10, incluído o 10, a fórmula correcta é =RAND()*11 .

    Fórmula 2. Xera números aleatorios entre dous números

    Para crear un número aleatorio entre dous números calquera. números que especifique, use a seguinte fórmula RAND:

    RAND()*( B - A )+ A

    Onde A é o valor do límite inferior (o número máis pequeno) e B é o valor do límite superior (o número máis grande).

    Por exemplo, para xerar números aleatorios entre 10 e 50 , pode usar a seguinte fórmula:

    =RAND()*(50-10)+10

    Nota. Esta fórmula aleatoria nunca devolverá un número igualao maior número do intervalo especificado (valor B ).

    Fórmula 3. Xerar números enteiros aleatorios en Excel

    Para que a función RAND de Excel produza números enteiros aleatorios, tome calquera das fórmulas mencionadas anteriormente e envólvelo na función INT.

    Para crear enteiros aleatorios entre 0 e 50:

    =INT(RAND()*50)

    Para xerar números enteiros aleatorios entre 10 e 50:

    =INT(RAND()*(50-10)+10)

    Función Excel RANDBETWEEN: xera números enteiros aleatorios nun intervalo especificado

    RANDBETWEEN é outra función proporcionada por Excel para xerar números aleatorios. Devolve números enteiros aleatorios no intervalo que especifique:

    RANDBETWEEN(inferior, superior)

    Obviamente, b ottom é o número máis baixo e top é o número máis alto do intervalo de números aleatorios que queres obter.

    Como RAND, RANDBETWEEN de Excel é unha función volátil e devolve un novo enteiro aleatorio cada vez que a túa folla de cálculo recalcula.

    Por exemplo, para xerar números enteiros aleatorios entre 10 e 50 (incluíndo 10 e 50), use a seguinte fórmula RANDBETWEEN:

    =RANDBETWEEN(10, 50)

    A función RANDBETWEEN en Excel pode crear tanto números positivos como negativos. Por exemplo, para obter unha lista de números enteiros aleatorios de -10 a 10, introduza a seguinte fórmula na súa folla de traballo:

    =RANDBETWEEN(-10, 10)

    A función RANDBETWEEN está dispoñible en Excel 365 - Excel 2007. En versións anteriores, pode usar a fórmula RANDdemostrado no exemplo 3 anterior.

    Máis adiante neste tutorial, atoparás algúns exemplos de fórmulas que demostran como usar a función RANDBETWEEN para xerar valores aleatorios distintos dos enteiros.

    Consello. En Excel 365 e Excel 2021, pode usar a función RANDARRAY de matriz dinámica para devolver unha matriz de números aleatorios entre dous números que especifique.

    Cree números aleatorios con cifras decimais especificadas

    Aínda que a función RANDBEETWEEN en Excel foi deseñada para devolver números enteiros aleatorios, podes obrigala a devolver números decimais aleatorios con tantas cifras decimais como queiras.

    Por exemplo, para obter unha lista de números cunha cifra decimal, multiplicas os valores inferiores e superiores por 10, e despois divides o valor devolto por 10:

    RANDBETWEEN( valor inferior * 10, valor superior * 10)/10

    A seguinte fórmula RANDBETWEEN devolve números decimais aleatorios entre 1 e 50:

    =RANDBETWEEN(1*10, 50*10)/10

    De forma similar, para xerar números aleatorios entre 1 e 50 con 2 decimais, multiplica os argumentos da función RANDBETWEEN por 100 e, a continuación, divide o resultado tamén por 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Como xerar datas aleatorias en Excel

    Para devolver unha lista aleatoria d entre as dúas datas indicadas, use a función RANDBETWEEN en combinación con DATEVALUE:

    RANDBETWEEN(DATEVALUE( data de inicio ), DATEVALUE( data de finalización ))

    Por exemplo , aobtén a lista de datas entre o 1 de xuño de 2015 e o 30 de xuño de 2015 inclusive, introduce a seguinte fórmula na túa folla de traballo:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    Como alternativa, podes usar a función DATA en lugar de DATEVALUE:

    =RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))

    Lembra aplicar o formato de data ás celas e obterás unha lista de datas aleatorias semellante a esta:

    Para obter unha serie de opcións avanzadas, como xerar días de semana ou fins de semana aleatorios, consulta Datas do xerador aleatorio avanzado.

    Como inserir tempos aleatorios en Excel

    Lembrando que no Os tempos internos do sistema Excel gárdanse como decimais, pode usar a función estándar RAND de Excel para inserir números reais aleatorios e, a continuación, simplemente aplique o formato de tempo ás celas:

    Para devolve tempos aleatorios segundo os teus criterios, son necesarias fórmulas aleatorias máis específicas, como se demostra a continuación.

    Fórmula 1. Xera tempos aleatorios no intervalo especificado

    Para inserir tempos aleatorios entre dous tempos calquera que especifique, use o TIME ou T Función IMEVALUE en conxunto con Excel RAND:

    TIME( hora de inicio )+RAND() * (TIME( hora de inicio ) - TIME( hora de finalización )) TIMEVALUE( hora de inicio )+RAND() * (VALOR DE TEMPO( hora de inicio ) - VALOR DE TEMPO( hora de finalización ))

    Por exemplo, para insira unha hora aleatoria entre as 6:00 e as 17:30, pode utilizar calquera das seguintes fórmulas:

    =TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))

    =TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))

    Fórmula 2. Xeracióndatas e horas aleatorias

    Para crear unha lista aleatoria de datas e horas , use unha combinación de funcións RANDBETWEEN e DATEVALUE:

    RANDBETWEEN(DATEVALUE( data de inicio) , DATEVALUE( data de finalización )) + RANDBETWEEN(TIMEVALUE( hora de inicio ) * 10000, TIMEVALUE( hora de finalización ) * 10000)/10000

    Supondo que quere inserir datas aleatorias entre o 1 de xuño de 2015 e o 30 de xuño de 2015 cunha hora entre as 7:30 e as 18:00, a seguinte fórmula funcionará como un deleite:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    Tamén pode proporcionar datas e horas utilizando as funcións DATA e HORA, respectivamente:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Xeración de letras aleatorias en Excel

    Para devolver unha letra aleatoria, é necesaria unha combinación de tres funcións diferentes:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))

    Onde A é o primeiro carácter e a Z é o último carácter do intervalo de letras que quere incluír (por orde alfabética).

    Na fórmula anterior:

    • CODE devolve códigos ANSI numéricos para as letras especificadas.
    • RANDBETWEEN leva o n os números devoltos polo CODE funcionan como os valores inferior e superior do intervalo.
    • CHAR converte os códigos ANSI aleatorios devoltos por RANDBETWEEN nas letras correspondentes.

    Nota. Dado que os códigos ANSI son diferentes para os caracteres en MAIÚSCULAS e minúsculas, esta fórmula é distingue entre maiúsculas e minúsculas .

    Se alguén lembra o Gráfico de códigos de caracteres ANSI de memoria, nada o impidede proporcionar os códigos directamente á función RANDBETWEEN.

    Por exemplo, para obter letras MAIÚSCULAS aleatorias entre A (código ANSI 65) e Z (código ANSI 90), escribe:

    =CHAR(RANDBETWEEN(65, 90))

    Para xerar letras minúsculas de a (código ANSI 97) a z (código ANSI 122), usa a seguinte fórmula:

    =CHAR(RANDBETWEEN(97, 122))

    Para inserir un carácter especial aleatorio, como ! " # $ % & ' ( ) * + , - . /, use a función RANDBETWEEN co parámetro inferior definido en 33 (código ANSI para "!') e o superior Parámetro definido en 47 (código ANSI para "/").

    =CHAR(RANDBETWEEN(33,47))

    Xeración de cadeas de texto e contrasinais en Excel

    Para crear unha cadea de texto aleatoria en Excel , só tes que concatenar varias funcións CHAR / RANDBEETWEEN.

    Por exemplo, para xerar unha lista de contrasinais formada por 4 caracteres, podes usar unha fórmula similar a esta:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))

    Para facer a fórmula máis compacta, proporcionei os códigos ANSI directamente na fórmula. As catro funcións devolven os seguintes valores aleatorios:

    • RANDBETWEEN(0,9) - devolve números aleatorios entre 0 e 9.
    • CHAR(RANDBETWEEN(65,90)) - devolve letras en MAIÚSCULAS aleatorias entre A e Z .
    • CHAR(RANDBETWEEN(97, 122)) : devolve letras minúsculas aleatorias entre a e z .
    • CHAR(RANDBETWEEN(33,47)) - devolve caracteres especiais aleatorios.

    As cadeas de texto xeradas coa fórmula anterior serían algo así como " 4Np# " ou

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.