Приспичило генерировать случайную строку определенной длины в Microsoft Excel. Зачем такое вдруг
Сделать это оказалось не так, чтоб уж сложно, но пришлось столкнуться с тем, что Excel (внезапно для меня) понимал формулы только на русском и это немного усложнило процесс - пришлось потренироваться в русские названия функций :)
В общем, хотелось получить что-то такое:
То есть, если словами: на входе произвольно заданный алфавит + длина генерируемой строки, ну, и на выходе - сама случайная строка искомой длины.
В данном примере, случайный символ из алфавита можно отыскать вот по такой не хитрой формуле:
=ПСТР(B3;СЛУЧМЕЖДУ(1;ДЛСТР(B3));1)
Ну, и дальше можно тупо склеить несколько таких заклинаний с помощью амперсанда нужное кол-во раз, чтоб получить искомую длину строки:
=ПСТР(B3;СЛУЧМЕЖДУ(1;ДЛСТР(B3));1)&ПСТР(B3;СЛУЧМЕЖДУ(1;ДЛСТР(B3));1) итд.
Но это скучно. Поэтому вооружаемся функциями СЦЕП и СЛМАССИВ и делаем немного более мудрено.
В итоге, формула (в ячейке В6) расчета строки для приведенного на скриншоте примера выглядит вот так:
=СЦЕП(ПСТР(B3;СЛМАССИВ(1;B4;1;ДЛСТР(B3);ИСТИНА);1))
Всё происходило в Microsoft Excel 2021, но, по идее, должно работать и в более ранних версиях.