Código alfanumérico

Necesito generar un código alfanumérico (sólo letras mayúsculas y número) de seis posiciones.   He ensayado con la siguiente fórmula =CONCATENAR(CARACTER(ALEATORIO. Entre(65,90)), carácter(aleatorio. Entre(48,57)), carácter(aleatorio. Entre(65,90)), carácter(aleatorio. Entre(65,90)), carácter(aleatorio. Entre(48,57)), carácter(aleatorio. ENTRE(65,90))).
El inconveniente es que los números y las letras se quedan fijos en la posición donde los definí dentro del concatenar. La idea es que los números y las letras queden en cualquier posición de la cadena final.
Respuesta
1
Lo que sucede es que las funciones ALEATORIO así como ALEATORIO. ENTRE, única y exclusivamente trabajan con números. Pretender capturar un carácter alfabético con la función Aleatorio es un contrasentido.
Se me ocurre para solucionar el problema crear una lista de valores en diferentes celdas y por medio de alguna función de excel seleccionar al azar uno de esos valores. ¿Es posible realizarlo?
En Excel todo es posible, siempre y cuando se cumplan los parámetros establecidos por Microsoft. La función azar o aleatorio está definida única y exclusivamente para devolver valores numéricos. No existe otra función que supla esa situación.
Sin embargo, es posible crear un Código Fuente que haga una selección aleatoria de números y la convierta a valores alfabéticos y puedes obtener perfectamente lo que deseas. Nosotros, excepto uno que otro, no preparamos Códigos Fuente en esta web, sólo revisamos, mejoramos o complementamos los códigos que nos suministran los usuarios. Entonces prepara o busca un código que funcione con lo que más o menos quieres y lo sometes a la consideración de alguno de los expertos.

1 respuesta más de otro experto

Respuesta

Aunque la pregunta es un tanto antigua, seguro alguien entrará de vez en cuando buscando lo mismo, y como yo he preparado exactamente lo mismo para un proyecto, coloco la respuesta:

=Concatenar(caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90)));caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90)));caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90)));caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90)));caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90)));caracter(si(es.par(aleatorio.entre(1;10));aleatorio.entre(48;57);aleatorio.entre(65;90))))

Básicamente, para cada una de las 6 posiciones, genera un código aleatorio entre 1 y 10, y si ese código es par, genera un caracter numérico (ASCII entre 48 y 57) y si es impar un caracter alfabético en mayúsculas (ASCII entre 65 y 90). Esto lo realiza 6 veces y concatena los resultados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas