Нэнси пытается заставить 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 [Генерация случайных строк символов].