martes, febrero 14, 2006

Cómo generar números aleatorios con Excel

La función ALEATORIO (RAND en la versión inglesa) de Excel genera números aleatorios. Esta función no tiene argumentos y es recalculada nuevamente cada vez que se produce un cambio en la hoja, excepto que el modo de cálculo sea "manual".
Los números que produce ALEATORIO (RAND) van de del 0 al 1.
En esta hoja usamos la fórmula =ALEATORIO() en el rango A2:A11




Si queremos producir una serie de números aleatorios enteros, debemos combinar la función ALEATORIO con la función REDONDEAR (ROUND), o con alguna otra función de este tipo como REDONDEAR.MAS o REDONDEAR.MENOS.
En esta hoja, usamos la fórmula combinada =REDONDEAR(ALEATORIO()*100,0) para producir números aleatorios entre 0 y 100



Si queremos producir números aleatorios que se encuentren en un rango entre dos números, digamos entre 12 y 88, podemos usar la fórmula


=REDONDEAR(ALEATORIO()*(88-12)+12,0)


Con esta técnica podemos generar, por ejemplo, números aleatorios para la lotería. Aquí, por ejemplo, el Loto sortea 6 números entre el 1 y el 36. El problema de esta fórmula es que puede generar números duplicados, como en este ejemplo



Supongo que hay más de una técnica para superar este problema. Mencionaré aquí dos de ellas.
La primera es, simplemente, recalcular la hoja (presionar F9) hasta lograr una serie sin números repetidos.
La otra consiste en condicionar la creación de los números aleatorios. Esta técnica consiste en generar una referencia circular intencional, para lo cual es necesario que la opción Iteración en Opciones/Cálculo esté activada (pueden bajar el archivo del ejemplo con las fórmulas Numeros Aleatoriosaqui)



La fórmula que usamos en el rango A2:A11 es


=SI(SUMA($B$2:$B$11)<>10,REDONDEAR(ALEATORIO()*(36-1)+1,0),REDONDEAR(ALEATORIO()*(36-1)+1,0))

en el rango B2:B11 usamos la fórmula =CONTAR.SI($A$2:$A$11,A2). Esta fórmula controla si hay números duplicados. Si el resultado es 1, el número aparece una sola vez.



La fórmula en el rango A2:A11 controla si todos los resultados en el rango B2:B11 no suman 10, es decir que hay algún numero duplicado; en ese caso calcula un número aleatorio. Si la condición lógica no se cumple, vuelve a calcular. Como ven hay aquí una referencia circular. Como hemos activado la opción "Iteración", Excel intentará encontrar la serie de 10 números que cumplan con la condición. Si no la encuentra, deberemos pulsar nuevamente F9 (recalcular) hasta encontrar la solución.

Esta técnica fue sugerida por John Walkenbach en su libro "Microsoft Excel 2000 Formulas".




Categorías: Funciones&Formulas_, Varios_

72 comentarios:

  1. Antes de nada, enhorabuena por tu blog. Es de los más útiles y prácticos que he encontrado desde hace tiempo por internet.
    He probado el ejercicio que comentas sobre la generación de números aleatorios usando una referencia circular y no me acaba de funcionar. Es más, el control de números repetidos "tontea" de vez en cuando indicando con un "2" repeticiones que no existen. Además el proceso NUNCA se termina hasta que no acaban todas las iteraciones.
    He probado a descargar tu archivo por si había cometido un error pero con el tuyo me pasa lo mismo.

    Gracias por el blog y espero que nos puedas aclarar si hay realmente un problema o es que a mi se me escapa alguna cosa por inexperto.
    Saludos

    ResponderBorrar
  2. Hola Suri, para que el modelo funcione es imprescindible que el modo iteración este seleccionado (en el menú Herramientas--Opciones--Calcular), tal como lo muestro en la nota.
    He notado que al descargar el archivo esta opción no está activa, y de ahí el problema.
    Todo lo que tienes que hacer es abrir el menú Herramientas y señalar la opción Iteración.
    Gracias por los conceptos.

    ResponderBorrar
  3. Hola de nuevo,
    No me gustaría ser pesado ;-) pero me tiene muy intrigado el tema este. Ya había activado la iteración con el número max. de iteraciones a 1000. No sé si tendrás un par de minutos para entretenerte, pero si puedes prueba pulsando varias veces con el F9 y verás que de vez en cuando el control da resultados falsos. Ejemplo:
    Aleatorio: 10-27-31-31-15-25
    y en el control aparece:
    Control: 02-01-01-02-01-01

    Como se ve en el ejemplo al número 10 le asigna un control 2 cuando no está repetido y a uno de los números 31 (que esté repetido) le asigna un 1 como si no lo estuviese.

    Un saludo Jorge, y espero que entiendas mi curiosidad.
    Por cierto, trabajo con la versión 2003.... lo digo por si puede tener algo que ver.

    ResponderBorrar
  4. Hola Suri, no hay ningún problema. El modelo no está construido, y no puede, generar una solución en cada cálculo.
    Simplemente no siempre 1000 iteraciones son suficientes para encontrar un resultado. Después de 1000 iteraciones Excel interrumpe el cálculo, y este es motivo que a veces aparece un 2 en la columna de control y no hay ningún duplicado (o como tu encontrastes, los 2 del control no coinciden con los duplicados).
    Lo que puedes hacer es aumentar el número de iteraciones en el menú Herramientas--Opciones.
    Otro punto a tomar en cuenta es la relación entre la cantidad de números únicos buscados y el pool de números (en nuestro caso 6 - 36). Si buscáramos 6 números únicos de un pool de 100, tendríamos mejores resultados.

    ResponderBorrar
  5. Hola, Jorge,

    Primero, quiero felicitarte y agradecerte por el contenido de este blog, la verdad es que hace mucho tiempo venía buscando algo así, y lo estoy leyendo de principio a fin. Hasta ahora, me ha ayudado muchísimo... cuántos de los problemas que comentas acá se me presentaron alguna vez y los tuve que resolver con macros...

    Sólo quería hacer una observación respecto a este post: me parece que es más correcto utilizar la función ENTERO que REDONDEAR, porque la primera desfavorece a los valores extremos. Por ejemplo, si queremos simular un dado, y usamos la función:

    =REDONDEAR(ALEATORIO()*6)

    El resultado de ALEATORIO()*6 está acotado entre 0 y 6. Para que el redondeado diera 0, el interior del paréntesis debiera dar entre 0 y 0,4999; en cambio, para que diera 1, tendría que caer entre 0,5 y 1,4999... es decir, el 1 es el doble de probable que el cero usando esta función... y el 6 tendría el mismo problema que el 0.

    Para que el dado fuera equiprobable, una solución sería usar la siguiente función:

    =ENTERO(ALEATORIO()*6+1)

    Me parece que la función ALEATORIO() nunca entrega un 1, pero si ese riesgo existe, ahí se puede solucionar usando la función dentro de un SI() con referencia circular, como en el ejemplo que das tú.

    Espero que te sirva de algo este aporte, saludos y de nuevo muchas gracias por compartir tus trucos de Excel!

    ResponderBorrar
  6. O más fácil, usando la misma función REDONDEAR(), se puede hacer equiprobable el dado sumando 0,5:

    =REDONDEAR(ALEATORIO()*6+.5)

    En el ejemplo que puse en el post anterior había un pequeño error, estaba trabajando con un dado que entregaba valores entre 0 y 7, pero la idea de fondo de que los valores no son equiprobables es lo que me interesaba transmitir.

    Saludos!

    ResponderBorrar
  7. hola bastante interesante el blok, Disculpa pero tenia una duda, que tipo de congruencia es la que uliliza excel,o las funciones q mensionaban, me imagino que se generan distintas cantidades aleatorias en la hoja de excel porque el programa selecciona distinta semilla, pero q metodo utliza? gracias y espero no ocacionar un dolor de cabeza con mi duda ok! saludos!

    ResponderBorrar
  8. Hola Juanjo,
    puedes leer sobre el tema en la base de datos de conocimientos de Microsoft, en esta nota y tambien en esta

    ResponderBorrar
  9. Hola Jorge,

    Sería una simple pregunta... ¿sabrías si hay alguna fórmula que se pueda utilizar para sumar números aleatoriamente entre sí?

    Me explico, tengo varios números y necesito saber cuales, sumados entre sí aleatoriamente, dan un mismo resultado.

    Espero haberme explicado bien porque ni yo misma me entendí.

    Saludos.

    ResponderBorrar
  10. Hola,
    siempre son así de simples tus preguntas?
    La única forma posible de hacerlo, en mi opinión, es con Vba (macros).
    Tal vez se puede hacer algo más bien elemental usando al función ALEATORIO y recalculando la hoja (F9) hasta obtener el resultado deseado.

    ResponderBorrar
  11. hola,

    no entiendo el comportamiento de la formula que tienes iterando, porque la forma en que la planteas mo asigna ningun criterio de parada, siempre que se recalcula la hoja, se cumple el número máximo de iteraciones, y no se cumple la condicion inicial que quieres

    ResponderBorrar
  12. Hola,
    el criterio de parada está definido por el cálculo circular. Las fórmula en la celda de la columna A se refiere a sí misma ya que la fórmula en la celda de la columna B se refiere a la cuenta de valores de A. El criterio de parada es que se cumpla =CONTAR.SI($A$2:$A$11,A2) = 10
    Si esto se cumple antes del número de iteraciones que hayas definido, el cálculo se detiene. Si no se cumple hay que correr el cálculo nuevamente.

    ResponderBorrar
  13. Jorge sería bueno mencionar que la función en cuestión genera número aleatorios según una distribución normal de media 0.5, por lo que simular una lotería, que se distribuye como una uniforme, daría resultados sesgados.

    ResponderBorrar
  14. Hola Jorge,
    queria saber por favor si hay alguna manera de decirle a la funcion aleatorio el numero de numeros a generar (sin copiar la formula n veces). Por ejemplo yo quisiera generar 19 numeros aleatorios entre 5 y 25, como hago?
    Gracias

    ResponderBorrar
  15. Tu mejor opción es usar el complemento de Laurent Longre que menciono en esta nota sobre número aleatorios.

    ResponderBorrar
  16. Hola Jorge, Te felicito por tu blog, Vine aquí buscando algo de números aleatorios pero me encontré algo muy interesante sobre manejo de fechas...
    Pero bueno lo que busco es una fórmula que utilice métodos congruenciales (aditivo, multiplicativo y Lineal) para generar los números aleatorios. Tengo entendido que se puede hacer así por celdas y arrastrando la fórmula tantas veces como números se deseen, sin necesidad de hacer macros. Pero la verdad no tengo idea de cómo se hace...
    Qué sabes tu????

    ResponderBorrar
  17. Hola Claudi

    lo único que se me ocurre sugerirte es que investigues las posibilidades de la herramienta Random Number Generation del complemento Analysis Toolpak.
    Si tienes instalado el complemento, verás en el menú Herramientas la opción Data Analysis. Al abrir esta opción verás la herramienta de genración de números aleatorios.

    ResponderBorrar
  18. hola espero que estes bien primero que nada en realidad no se si mi pregnta tenga algo que ver con el tema de tu blog. que esta excelente pero ahi va, quiero saber si es posible predecir en exccel triples de loteria pueden salir al dia siguiente si se insertan resultados de dias anteriores y de ser asi como lo consigo, espero una respuesta gracias y que pases unas felices pascuas

    ResponderBorrar
  19. Hola Esteban
    si se pudiera predecir con Excel los números de la lotería hace rato que sería millonario y no me pasaría el tiempo escribiendo este blog!
    No hay ninguna ley que permita predecir qué números serán sorteados.

    ResponderBorrar
  20. He leido todo lo que has comentado sobre numero aleatorios. Te expongo mi caso, si tengo una muestra de 50 y quiero escoger al azar sólo 12 de esa muestra, como podria hacerlo. Si hago un aleatorio de los 50 números (p.ej. entre 0 y 1, y este 1 seria coger la muestra) en la mayoria de las veces los 1 que salen son mayores que las muestras que yo quiero coger.

    ResponderBorrar
  21. Podrías poner en un rango de 12 celdas una fórmula con ALEATORIO.ENTRE (RANDBETWEEN) usando como argumento la cota inferior y superior de los números aleatorios que quieres usar.

    ResponderBorrar
  22. QUE TAL!
    PUES MUY BUEN BLOG, MUY UTIL.
    HACE ALGÚN TIEMPO ANDO TRATANDO DE CREAR NUMEROS ALEATORIOS SIN REPETICIÓN CON EXCEL 2007 PERO NO HE PODIDO, NO SE QUE ME HAGA FALTA.
    BASICAMENTE LO QUE QUIERO ES ASIGNARLE UN NUMERO ALEATORIO A UNA LISTA DE NOMBRES.

    ResponderBorrar
  23. Hola Jorge!
    Muy interesante el blog. como podria hacer para extraer 40 números aleatorios sin repetición de nímeros que van del 1 al 80?
    Desde ya muchas gracias!!

    ResponderBorrar
  24. hola jorge graias por tu blog interesantisimo,, sobre la pregunta del sorteo de la loto, mi pregunta es por supuesto, no esperar los numeros que van a ser sorteados, pero si, combinaciones posibles a salir en la loto a partir del metodo aleatorio, en otras palabras posibles probabilidades de numeros a salir, ojala ,me entiendas soy novato en esto, gracias

    ResponderBorrar
  25. Victor,
    dependiendo de la cantidad de números a acertar del conjunto de números posibles, las combinaciones posibles van de millones a decenas de millones.
    Los resultados de cada sorteo son independientes de los sorteos anteriores, por lo que no hay forma de decidir que números tienen mayor o menor probabilidad de salir.

    ResponderBorrar
  26. Gracias, busque en tooodos lados y solo aqui lo encontre, gracias, gracias gracias, no pense que fuera tan facil generar numeros aleatoris en excel!!!!!!!!!

    EXCELENTE PAGINA, OS FELICITO!!!!!!

    ResponderBorrar
  27. Hola Jorge, antes que nada t felicito por tu Blog, esta muy bueno...
    Pero yo tengo un dilema y me gustaria saber si me puedes ayudar, quiero listar todas las posibles combinaciones que se puedan crear al extraer una muestra de una población, más precisamente: en una población de tamaño 10 selecciono 3 muestras aleatorias.. quiero listar todas esas 120 combinaciones posibles, sabes como?

    ResponderBorrar
  28. Hola Jorge, excelente blog! Quisiera saber si se puede hacer combinaciones del numero 5481 por ejemplo, cuantos numeros combinando esos digitos puedo formar y cuales serian, Gracias de antemano por su ayuda y guia.

    ResponderBorrar
  29. Juan,
    no me queda claro si se trata de combinaciones o permutaciones pero Excel te ofrece funciones para ambos cálculos PERMUTACIONES y COMBINAT.
    Lo que no se puede hacer con una función es generar los números en si mismos. Para eso tendrría que usar Vba (macros)

    ResponderBorrar
  30. Buenas tardes, me gustaría saber como debo proceder para realizar un aleatorio de fechas:Por ejemplo fechas aleatorias entre 10/10/1990 y 20/03/2010.
    Desde ya muchas gracias

    ResponderBorrar
  31. En Excel las fechas son números enteros que pertenecen a una serie donde el 1 representa la fecha 01-enero-1900, el 2 el 02-enero-1900 y así sucesivamente. Lo que hace que estos números aparezcan como fechas es el formato de la celda.
    Así que en tu caso la fórmula sería
    =ALEATORIO.ENTRE(33156,40257)

    ResponderBorrar
  32. Buenos días Jorge!
    Sobre los números aleatorios, tengo una duda que no he encontrado en tu blog.
    Lo que quiero hacer es obtener en una columna una cantidad de resultados concreta por tipo de resultado, pero de forma aleatoria para los participantes, me explico.
    Tengo 163 participantes y quiero darle aleatoriamente un 1 a 9 personas (a las que sea), un 2 a 12 personas, un 3 a 22 personas y así sucesivamente hasta conseguir una cantidad concreta para cada valor en el total de la columna.
    Es posible hacer esto?
    Muchisimas gracias por tu ayuda!

    ResponderBorrar
  33. La única forma que se me ocurre es con una macro.

    ResponderBorrar
  34. Tienes algun ejemplo publicado de dicha macro?

    Gracias!!

    ResponderBorrar
  35. No, habría que programarla en particular para tu caso.

    ResponderBorrar
  36. hola que tal Jorge.
    Quisiera saber si es posible usar la funcion (aleatorio) pero que me de numeros de una lista, por ejem.
    tengo en una lista 560, 1050, 130, y quiero que aleatoriamente seleccione de esos tres numeros.

    Gracias.

    ResponderBorrar
  37. Con Excel 2007/10 puedes usar

    =ELEGIR(ALEATORIO.ENTRE(1,3),560,1050,130)

    Con Excel 97-2003

    =ELEGIR(REDONDEAR((ALEATORIO()*2+1),0),560,1050,130)

    ResponderBorrar
  38. tengo 5 celdas, en cada celda un nombre de persona y quiero que en una celda aparte me salga al azar uno de esos nombres. tengo el excel 2003.

    ResponderBorrar
  39. Suponiendo que los nombres están en el rango A1:A5,
    en Excel 2003 usarías

    =INDICE(A1:A5;ENTERO(ALEATORIO()*(5-1)+1))

    En Excel 2007/10 podemos usar

    =INDICE(A1:A5;ALEATORIO.ENTRE(1;5))

    ResponderBorrar
  40. Felicidades jorge, por este blog. Tengo un problema, no sé que formula aplicar para optimizar barras de aluminio, teniendo distintas medidas.
    Recibe un saludo.

    ResponderBorrar
  41. ¿No te parece que la consulta "cómo optimizar barras de aluminio" es un poco vaga? ¿Optimizar qué? ¿Costo, cantidad producida, superficie de alamcenamiento, costo de tranporte...?
    De todas maneras, Excel cuenta con la herramienta Solver para solucionar problemas de optimización.

    ResponderBorrar
  42. SALUDOS JORGE,EXCELENTE BLOG TE FELICITO,SOY AGRONOMO Y NORMALMENTE USO HOJAS DE CALCULOS PARA MIS BASES DE DATOS,DENTRO DE LAS CUALES USO LA FORMULA SUMAR SI CON EL CRITERIO >=;<=; =; PERO AHORA NECESITO SABER QUE FORMULA DEBO USAR PARA SUMAR ENTRE RANGOS DETERMINADOS.POR LO MENOS MI RANGO ES UN INVENTARIO DE PRODUCTOS DE DIFERENTES PRESENTACIONES(A1:A20),CRITERIO SERIA PRODUCTOS ENTRE 4 10KG; Y MI RANGO DE SUMA SERIA LA CANTIDAD EN INVENTARIO DE CADA UNA DE LAS PRESENTACIONES(B1:B20)...EXITOS Y ESPERO QUE ME ACLARES LA DUDA

    ResponderBorrar
  43. Hola Robert,
    normalmente hubiera eliminado tu comentario (por favor, fijate en lo que pongo en el enlace Ayuda, en la parte superior de la plantilla).
    Pero dejando la etiqueta de lado, fijate en esta entrada del blog donde muestro como hacer cálculos con varias condiciones. La nota fue escrita en los años del reinado de Excel 2003. Si bien la técnica es aplicable también hoy en Excel 2007 y 2010, éstas versiones tienen también la función SUMAR.SI.CONJUNTO

    ResponderBorrar
  44. Una sugerencia, para calcular valores aleatorios entre un rango de números como el del ejemplo (entre 12 y 88) es mas fácil usar aleatorio.entre(12;88)

    ResponderBorrar
  45. Hola Jorge.
    Primero felicitarte porque esta excelente tu blog y esta recomendación me ha ayudado mucho, ahora una consulta estoy haciendo una lista de 500 personas de un total 1200 que formula puedo utilizar para sacar esos 500 números de forma aleatoria sin que se repitan. Gracias

    ResponderBorrar
  46. Fijate en la técnica que muestro en esta nota.
    Otras ténicas en esta otra nota.

    ResponderBorrar
  47. Me salvaste la vida, gracias a tu post ya se como hacer la tabla que tanto dolor de cabeza me ha ocasionado. Saludos

    ResponderBorrar
  48. Hola Jorge, felicidades por el blog.
    Queria preguntarte como se puede hacer una tabla de excel con numeros aleatorios del 1 al 49 escogiendo 6 , pero teniendo en cuenta los 6 numeros aparecidos en los sorteos anteriores, es decir que a la hora de elegir esos 6 numeros tenga en cuenta todo el historico de los numeros que han salido y poder actuarlizarlo cada semana con los resultados que vayan saliendo.

    ResponderBorrar
  49. Se puede hacer, pero la forma de hacerlo no puede exponerse en el marco de un comentario. Pero como sospecho que estamos hablando de la lotería (en sus distintas variantes), me permito hacer tres observaciones:
    1 - en la Internet hay un sinnúmero de programas y modelos que tratan de "adivinar" los resultados de la lotería en base a todo tipo de sistemas (números calientes, fríos, tibios, etc.)
    2 - ninguno funciona. De funcionar el "descubridor" no lo compartiría con nadie ya que eso reduciría sus ganancias.
    3 - Hasta donde recuerdo las clases de estadística, cada sorteo es independiente de los anteriores. En mi país se dio el caso que en dos semanas consecutivas se sortearon exactamente los mismos seis números!

    ResponderBorrar
  50. Mi estimado Jorge, no se si será por este día, o el error viene de varios días atras, o si arreglara mañana, pero por si acaso te comento que el archivo con el ejemplo no se puede descargar
    saludos

    ResponderBorrar
  51. Esta nota es del 2006, hace 7 años atrás. Por esa época guardaba los archivos para descarga en un sitio que cerró sin previo aviso. Vere si puedo encontrar el archivo y subirlo nuevamente.

    ResponderBorrar
  52. Hola Jorge, felicitarte por el blog, en el cual nos despejas todas las dudas, gracias.
    Queria preguntarte como se puede buscar en una tabla excel, los aciertos de una combinacion euromillones. Teniendo en cuenta que esta divida en cuatro columnas de combinaciones (cada columna con sus 7 numeros, los numeros de las estrellas los separo con un guion y cada combinacion la separo con una columna de color)y todas las filas hacia abajo llena de combinaciones.
    Ejemplo

    abcdefgh columna de color jklmnopqr columna de color stuvw
    12345-2 11(columna de color) 32456-3 6 columna
    de color etc..
    Cada numero esta en una celda, los guiones tambien, y las columnas de color tambien.
    Como se pueden buscar los 7 numeros iguales o los cinco si no se pudiera los 7.
    Gracias por tu ayuda.

    ResponderBorrar
  53. Con formato condicional para señalar las celdas que coinciden. Tamnién puedes usar formulas para contar el número de coincidencias.

    ResponderBorrar
  54. Hola quiero saber si hay una forma de generar números aleatorios para simular la demanda de un producto basándonos en que la probabilidad de que la demanda sea 0 es .25, P (1) = .25, P (2)= .3 y P(3)= .2
    ¿Se podrá? Gracias

    ResponderBorrar
  55. Supongo que si, pero tendrías que plantear el problema en términos de Excel. Es decir, la idea sería que el 25% de los resultados sean 0?

    ResponderBorrar
  56. Primero que todo quiero felicitar por este increible blog, soy seguidor desde hace mucho!.
    Quiero plantear mi problema para ver si me puedes ayudar.
    Necesito generar número aleatorios entre 0 y 30, pero que tenga mayor probabilidad de ocurrencia los números cercanos a la primera mitad, es decir, en términos simples que salgan mas veces números del 0 al 15, que números del 16 al 30.

    Agradezco cualquier sugerencia

    ResponderBorrar
  57. La estadística no es mi fuerte pero te sugiero instalar el complemento Herramientas para Análisis (Analysis Toolpak) y usar la opción Generación de Números Aleatorios. Allí existe la posibilidad de generarlos con distintas distribuciones y determinar otros parámetros.
    Otra posiblidad es usar dos rangos usando ALEATORIO.ENTRE(0,15) en, digamos, un rango de 50 celdas y ALEATORIO.ENTRE(16,30) en un rango de 10 celdas.

    ResponderBorrar
  58. Hola, si bien funciona al generar números aleatorios entre 2 números a y b, la forma en que se distribuyen estos números no es uniforme, es decir, la probabilidad de ocurrencia no es la misma para todos. Esto se puede ver con el tercer ejmeplo, si a=12 y b=88, la probabilidad de ocurrencia de estos 2 valores es menor que el resto de números que se encuentra comprendido dentro del intervalo. Esto debido a que la función "REDONDEAR" de Excel aproxima al entero más cercano, lo que indica que para "a=12" por ejemplo solo se va a aproximar a este valor cuando el número aleatorio este entre 12 y 12,5 (intervalo = 0,5) y para "b=88" solo cuando la variable aleatoria este entre 87,5 y 88 (intervalo = 0,5). Por otro lado la función aproximará a un valor 50 cuando la variable este entre 49,5 y 50,5 (intervalo = 1). Esto implica que la frecuencia de ocurrencia del número 50 dentro de una secuencia será mayor que 12 y 88.

    Una solución posible para versiones posteriores de Excel 2003 es generar mediante la formula "aleatorio.entre(12;88).

    ResponderBorrar
  59. Hola Jorge, te felicito por tu blog.
    Justo necesito crear una funcion que elija un numero aleatorio entre 00 y 100 (con eso no hay problema...) y luego que segun que numero escoja me muestre un .AVI que tengo en una carpeta. Es decir, por ejemplo si el numero elegido es el 15 que me muestre una "niña bonita" , que si escoge el 14 muestre otra animacion de un borracho y asi... Como podria hacer esto ?
    Muchas gracias y felicitaciones una vez mas por el blog !

    ResponderBorrar
  60. Hola Martín, como comprenderás la explicación es demasiado larga para el marco de un comentario. Estaré publicando un post sobre el tema en los próximos días.

    ResponderBorrar
  61. buenos dias, requiero combinar este numero 1956... que excel me arroje todas las combinaciones que tenga el numero.. como lo puedo hacer o con que funcion ??? gracias

    ResponderBorrar
  62. ¿Combinar el número 1956 con qué?

    ResponderBorrar
  63. me refiero a que al numero 1956 se le pueda generar todas las combinaciones, es decir, ejemplo: 1956 - 1569 - 5961 - 6591- 1965 etc...

    ResponderBorrar
  64. Se puede hacer usando una rutina de Vba. Publicaré un post sobre el tema en breve.

    ResponderBorrar
  65. Hola Jorge, favor estoy intentando realizar un aleatorio entre pero erquiero afectar la posibilidad es decir que si coloco aleatorio.entre(1;100) la mayoria de los esultados sean hacia 100 y un porcentaje mucho menor a 1. Gracias

    ResponderBorrar
  66. Hola, te sugiero que instales el add-in Analysis Toolpak (Programador-Complementos). Después de hacerlo tendrás disponible en la cinta en la pestaña Datos el Análisis de Datos. Allí puedes elegir "Generación de números aleatorios" con la posibilidad de elegit el tipo de distribución.

    ResponderBorrar
  67. Buenos días
    Ing.: Le agradecería proponerme un VBA para la solución:
    son 30 ciudades con un promedio de 12 oficinas a las que se les reparte aleatoriamente entre 5 a 10 proyectos, teniendo en cuenta que no se deben repetir e ir excluyendo las que ya se les haya asignado.
    Gracias

    ResponderBorrar
  68. David, en esta misma nota muestro una técnica para obtener número aleatorios únicos, que podrías aplicar a tus necesidades sin requerir códigos en Vba. También puedes ver las técnicas que muestro en este post.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.