Nancy está intentando que Excel elija 50 «números», cada uno de los cuales contiene ocho caracteres aleatorios. Los caracteres pueden ser dígitos o letras (mayúsculas o minúsculas).

Si sus números aleatorios fueran realmente números (solo dígitos), generarlos sería fácil. Todo lo que necesita hacer es usar la función RANDBETWEEN (en el paquete de herramientas de análisis) de esta manera:

=RANDBETWEEN(10000000,99999999)

Sin embargo, esto no es lo que quiere Nancy. Sus «números» aleatorios también pueden contener letras mayúsculas y minúsculas. Esto se vuelve un poco más pegajoso.

Sin embargo, existen varios enfoques que puede utilizar.

Un enfoque es poner todos los caracteres posibles en una celda individual, como B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Nombra esta celda con algo elegante, como MySource. A continuación, puede utilizar una fórmula como la siguiente para devolver la cadena aleatoria de caracteres:

=MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

La fórmula es larga; se ha dividido en líneas individuales para mayor claridad, pero sigue siendo una fórmula única. Concatena ocho caracteres extraídos de la fuente que ingresó en la celda B7.

Otro enfoque es crear una tabla que contenga todos los caracteres que desearía en su cadena de texto aleatoria. Comience colocando los números del 1 al 62 en una columna, un número en cada fila. A la izquierda de estos números, coloque sus caracteres: A, B, C, D, etc. (Deben ser los mismos caracteres que colocó en la celda B7 en la técnica anterior). Seleccione ambas columnas de las 62 filas y asígnele un nombre. , como MyTable. Luego puede usar la siguiente fórmula para generar los caracteres aleatorios:

=VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

Nuevamente, recuerde que esta es una fórmula única, aunque es un poco más corta que la fórmula anterior.

Cada uno de los enfoques presentados hasta ahora tiene un inconveniente: se regeneran cada vez que se recalcula su hoja de trabajo. Por lo tanto, es difícil tener una sola cadena aleatoria generada que no cambie de forma regular. La mejor manera de evitar esto es usar una macro, pero no necesariamente desea usar una función definida por el usuario. ¿Por qué? Porque también cambiaría su resultado cada vez que se recalculara la hoja de trabajo.

En su lugar, necesita una macro que coloque las cadenas aleatorias en su libro de trabajo comenzando en una ubicación de celda específica. El siguiente es un ejemplo de una macro de este tipo:

Sub MakeRandom()

Dim J As Integer     Dim K As Integer     Dim iTemp As Integer     Dim sNumber As String     Dim bOK As Boolean

Range("D4").Activate     Randomize     For J = 1 To 50         sNumber = ""

For K = 1 To 8             Do                 iTemp = Int((122 - 48 + 1) * Rnd + 48)

Select Case iTemp                     Case 48 To 57, 65 To 90, 97 To 122                         bOK = True                     Case Else                         bOK = False                 End Select             Loop Until bOK             bOK = False             sNumber = sNumber & Chr(iTemp)

Next K         ActiveCell.Value = sNumber         ActiveCell.Offset(1, 0).Select     Next J End Sub

Ejecute la macro y lo que esté en las celdas D4: D53 se sobrescribe con los valores aleatorios. Si desea que los valores se escriban en una ubicación diferente, cambie la instrucción Range cerca del comienzo de la macro.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Esta sugerencia (3872) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de esta sugerencia para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Generating_Random_Strings_of_Characters [Generando cadenas de caracteres al azar].