Генерация случайных строк символов (Microsoft Excel)
Нэнси пытается заставить 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) & 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) & 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").Activate Randomize For J = 1 To 50 sNumber = "" For K = 1 To 8 Do iTemp = Int((122 - 48 + 1) * Rnd + 48) Select Case iTemp Case 48 To 57, 65 To 90, 97 To 122 bOK = True Case Else bOK = False End Select Loop Until bOK bOK = False sNumber = sNumber & Chr(iTemp) Next K ActiveCell.Value = sNumber ActiveCell.Offset(1, 0).Select Next J End Sub
Запустите макрос, и все, что находится в ячейках D4: D53, будет перезаписано случайными значениями. Если вы хотите, чтобы значения записывались в другое место, измените оператор Range в начале макроса.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3872) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:
link: / excelribbon-Generating_Random_Strings_of_Characters [Генерация случайных строк символов]
.