Вы говорите, что уверены, что в ваших словах нет повторяющихся значений.Чтобы продвинуться дальше, уверены ли вы, что первые 8 символов в любом слове будут уникальными?
Если это так, вы можете использовать приведенную ниже формулу.Он работает, индивидуально беря код ASCII каждого символа - 40 [принимая нормальные символы, это ставит цифры между 8 и 57 и буквы между 57 и 122], и умножая код этих символов на 10 ^ [размещение цифр этого символа в слове].По сути, он берет этот символьный код [-40] и объединяет каждый код в следующий.
EDIT Обратите внимание, что этот код больше не требует, чтобы в вашем слове существовало как минимум 8 символов, чтобы предотвратитьошибка, поскольку к фактическому слову, которое должно быть закодировано, добавлено 8 «0».
=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}),"#")
Обратите внимание, что, поскольку при этом используются значения символов ASCII, идентификатор # может использоваться для идентификацииимя напрямую - это не создает анонимности, оно просто превращает 8 уникальных персонажей в уникальный номер.Он запутан с -40, но не совсем «безопасен» в этом смысле.-40 - это просто получение нормальных букв и цифр в диапазоне 2 цифр, так что умножение на 10 ^ 0,2,4 и т. Д. Создаст уникальное дополнение из 2 цифр к созданному коду.
РЕДАКТИРОВАТЬ ДЛЯ АЛЬТЕРНАТИВНОГО МЕТОДА
Ранее я пытался сделать это так, чтобы он просматривал каждую букву алфавита, подсчитывал количество раз, которое он встречается в слове, а затем умножал этона 10 * [позиция этой буквы в алфавите].Проблема с этим (см. Комментарий ниже для формулы) заключается в том, что для этого требуется число 10 ^ 26-1, что выше точности Excel с плавающей запятой.Однако у меня есть модифицированная версия этого метода:
Ограничивая количество разрешенных символов в алфавите, мы можем получить максимально возможный общий размер до 10 ^ 15-1, который Excel может правильно рассчитать.Формула выглядит следующим образом:
=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)
[Правая часть ("00000000000000" ... части формулы предназначена для того, чтобы все коды имели одинаковое количество символов]
Обратите внимание, что здесьАлфавит - это именованная строка, содержащая символы: «abcdehilmnorstu». Например, используя приведенную выше формулу, слово «asdf» подсчитывает случаи a, s и d, но не «f», которого нет в моемсокращенный алфавит. Код «asdf» будет выглядеть следующим образом:
001000000001001
Это работает только со следующими допущениями:
Буквы не указаны (ни цифры / специальные символы)не обязательно делать каждое имя уникальным. Например, asdf & asd будет иметь такой же код в вышеуказанном методе.
И,
Порядок букв не требуется, чтобы сделать каждоеимя уникальное. Например, asd & dsa будет иметь такой же код в приведенном выше методе.