Dice que confía en que no haya valores duplicados en sus palabras. Para impulsarlo aún más, ¿estás seguro de que los primeros 8 caracteres de una palabra serían únicos?
Si es así, puede usar la fórmula siguiente. Funciona tomando individualmente el código ASCII de cada personaje - 40 [asumiendo caracteres normales, esto pone números entre 8 & 57, y letras entre 57 & 122], y multiplicando ese código de caracteres por 10^[la colocación de los dígitos de ese personaje en la palabra ] Básicamente toma el código de carácter [-40] y concatena cada código con el siguiente.
EDIT Tenga en cuenta que este código ya no requiere que existan al menos 8 caracteres en su palabra para evitar un error, ya que la palabra actual que se codifica tiene 8 "0" 's adjuntos.
=TEXT(SUM((CODE(MID(LOWER(RIGHT(REPT("0",8)&A3,8)),{1,2,3,4,5,6,7,8},1))-40)*10^{0,2,4,6,8,10,12,14}),"#")
Tenga en cuenta que, ya que utiliza los valores ASCII de los caracteres, el ID # podría ser utilizado para identificar el nombre directamente - esto realmente no crear el anonimato, sólo se convierte 8 caracteres únicos en un número único. Está ofuscado con el -40, pero no es realmente "seguro" en ese sentido. El -40 es solo para obtener letras y números normales en el rango de 2 dígitos, por lo que multiplicar por 10^0,2,4 etc. creará un complemento único de 2 dígitos para el código creado.
EDITAR PARA Método alternativo
que ya había intentado hacer esto por lo que se vería en cada letra del alfabeto, contar el número de veces que aparece en la palabra, y luego se multiplican por 10 * [la posición de esa letra en el alfabeto]. El problema al hacer esto (ver el comentario a continuación para la fórmula) es que requirió un número de 10^26-1, que está más allá de la precisión del punto flotante de Excel. Sin embargo, tengo una versión modificada de ese método:
Al limitar el número de caracteres permitidos en el alfabeto, podemos obtener el máximo tamaño posible de 10^15-1, que Excel puede calcular correctamente.La fórmula es la siguiente:
=RIGHT(REPT("0",15)&TEXT(SUM(LEN(A3)*10^{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}-LEN(SUBSTITUTE(A3,MID(Alphabet,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},1),""))*10^{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}),"#"),15)
[la derecha ("00000000000000" ... parte de la fórmula está destinado a mantener todos los códigos de la misma cantidad de caracteres]
Tenga en cuenta que aquí, es un alfabeto cadena llamada que contiene los caracteres: "abcdehilmnorstu". Por ejemplo, usando la fórmula anterior, la palabra "asdf" cuenta las instancias de a, s y d, pero no 'f' que no está en mi alfabeto contraído. código de "asdf" sería:
Esto solo funciona con las siguientes suposiciones:
Las letras no enumeradas (ni los números ni los caracteres especiales) no son necesarias para que cada nombre sea único. Por ejemplo, asdf & asd tendría el mismo código en el método anterior.
Y,
El orden de las letras no está obligado a hacer que cada nombre único. Por ejemplo, asd & dsa tendría el mismo código en el método anterior.
¿Algún requisito para la longitud o los caracteres utilizados en la ID? – Excellll