Построить строку случайным образом, не повторяя

Я не могу найти способ сделать это. У меня пять клеток в Excel. Я хочу объединить их в строку случайным образом. Я хочу использовать каждый символ ячейки один раз в строящейся строке, поэтому я получаю строку из пяти символов, без повторов. Скажем, у меня есть A1 = Y, B1 = u, C1 = 6, D1 =%, E1 = z. Я хочу построить строку, в которой каждый символ находится в случайном порядке: uY6%z или zY%u6 одинаково приемлемы (и т. Д.). так далее)

Есть ли способ сделать это?

2 ответа

Похоже, это описывает, что вы хотите?

https://www.extendoffice.com/documents/excel/2484-excel-random-number-no-duplicates-no-repeat.html

Как только вы получите список чисел без дубликатов, вы можете использовать его для INDEX() в ваших значениях с помощью CONCATENATE().

Вы можете выполнить перемешивание Фишера-Йейтса в VB для приложений (VBA), например, используя реализацию алгоритма, показанную здесь.

Обязательно используйте хороший генератор случайных чисел, криптографически безопасный, если это необходимо. Randomize посеян только по системному времени, поэтому я бы не стал проводить с ним лотерею.

Другие вопросы по тегам