Генерация случайных строк символов

Нэнси пытается заставить Excel выбрать 50 «чисел», каждое из которых содержит восемь случайных символов. Символы могут быть цифрами или буквами (в верхнем или нижнем регистре).

Если бы ваши случайные числа действительно были числами (только цифры), то их было бы легко создать. Все, что вам нужно сделать, это использовать функцию RANDBETWEEN (в пакете инструментов анализа) следующим образом:

= RANDBETWEEN (10000000,99999999)

Это не то, что Однако Нэнси хочет. Ее случайные «числа» могут также содержать прописные и строчные буквы. Это становится немного более липким. Однако есть несколько подходов, которые вы можете использовать.

Один из подходов – поместить все возможные символы в отдельную ячейку, например B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Назовите эту ячейку каким-нибудь привлекательным, например MySource. Затем вы можете использовать следующую формулу для возврата случайной строки символов:

= MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) & MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource, RANDBETWEEN (1, LEN (MySource)), 1) и MID (MySource , RANDBETWEEN (1, LEN (MySource)), 1)

Формула длинная; для ясности он разбит на отдельные строки, но это все же единая формула. Он объединяет восемь символов, взятых из источника, который вы ввели в ячейку B7.

Другой подход – создать таблицу, содержащую все символы, которые вы хотите использовать в произвольной текстовой строке. Начните с размещения чисел от 1 до 62 в столбце, по одному числу в каждой строке. Слева от этих чисел разместите свои символы – A, B, C, D и т. Д. (Это должны быть те же символы, которые вы поместили в ячейку B7 в предыдущем методе.) Выделите оба столбца из 62 строк и дайте им имя. , например MyTable. Затем вы можете использовать следующую формулу для генерации случайных символов:

= VLOOKUP (RANDBETWEEN (1,62), MyTable, 2) & VLOOKUP (RANDBETWEEN (1,62), MyTable, 2) & ВПР (RANDBETWEEN (1,62), MyTable, 2) & VLOOKUP (RANDBETWEEN (1,62), MyTable, 2) и VLOOKUP (RANDBETWEEN (1,62), MyTable, 2) & VLOOKUP (RANDBETWEEN (1,62 ), MyTable, 2) & VLOOKUP (RANDBETWEEN (1,62), MyTable, 2) & VLOOKUP (RANDBETWEEN (1,62), MyTable, 2)

Опять же, помните, что это единственная формула, хотя она немного короче предыдущей.

Каждый из представленных подходов имеет один недостаток: они регенерируются каждый раз, когда ваш рабочий лист пересчитывается. Таким образом, трудно иметь единственную сгенерированную случайную строку, которая не будет регулярно меняться. Лучший способ обойти это – использовать макрос, но вы не обязательно хотите использовать пользовательскую функцию. Почему? Потому что он тоже менял свой результат каждый раз, когда лист пересчитывался.. Вместо этого вам понадобится макрос, который будет помещать случайные строки в вашу книгу, начиная с определенной ячейки. Ниже приводится пример такого макроса:

Sub MakeRandom () Dim J As Integer Dim K As Integer Dim iTemp As Integer Dim sNumber As String Dim bOK As Boolean Range («D4»). Активировать случайный выбор для J = от 1 до 50 sNumber = «» Для K = от 1 до 8 Do iTemp = Int ((122 — 48 + 1) * Rnd + 48) Выбрать регистр iTemp Случай 48 до 57, 65 до 90, 97 до 122 bOK = True Case Else bOK = False End Select Loop Пока bOK bOK = False sNumber = sNumber & Chr (iTemp) Next K ActiveCell.Value = sNumber ActiveCell.Offset (1, 0). Select Next JEnd Sub

Запустите макрос, и все, что находится в ячейках D4: D53, будет перезаписано случайными значениями. Если вы хотите, чтобы значения записывались в другое место, измените оператор Range в начале макроса.

Источник: frestage.ru

Бытовой вопрос