Генерация случайных данных тестирования (Microsoft Excel)
Когда вы разрабатываете рабочие листы, которые будут использоваться другими людьми, вам следует протестировать эти рабочие листы, чтобы убедиться, что они работают так, как вы ожидаете.
Это особенно верно для рабочих листов, которые содержат сложные формулы или будут использоваться в критических целях. Концепция тестирования рабочего листа означает, что вам нужно будет сгенерировать какие-то данные для использования при тестировании рабочего листа.
О создании комплектов для тестирования программного обеспечения написаны целые книги. Насколько тщательно вы собираете тестовые данные, во многом зависит от потребностей вашей аудитории и характера вашего рабочего листа.
К сожалению, не существует быстрого лекарства от всех проблем, которое автоматически определит, что вам нужно, и сгенерирует данные за вас. Однако в Excel есть инструменты, которые вы можете использовать с этой целью.
Во-первых, если вам нужно сгенерировать случайные числовые значения, вы можете использовать функции рабочего листа RAND или RANDBETWEEN. Разница в том, что RAND генерирует значение от 0 до 1, а RANDBETWEEN генерирует целочисленные значения между любыми установленными вами границами.
Однако случайные данные могут не подходить для ваших нужд тестирования. Это особенно верно, когда вы проверяете границы своих формул.
Например, тестирование с большими значениями, маленькими значениями или комбинацией больших и малых значений. Точно так же вы можете проверить несоответствующие значения, например, использовать текст в качестве ввода, а не числа (или наоборот). Есть целый ряд условий, которые вам нужно продумать, а затем выбрать тип данных, который вам подходит.
При желании вы можете использовать макросы для генерации данных тестирования. Следующий макрос заполняет выбранный диапазон ячеек случайным числовым значением между любыми установленными вами границами (минимальным и максимальным).
Sub RandNums() Dim MyRange As Range Dim lMin As Long, lMax As Long Dim dRand As Double ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value lMin = CLng(InputBox("Minimum?")) lMax = CLng(InputBox("Maximum?")) Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dRand = Rnd * (lMax - lMin) + lMin ' Use the following line only if the random ' value should be an integer ' dRand = Int(dRand) c.Value = dRand Next c Application.ScreenUpdating = True End Sub
Чтобы использовать макрос, просто выберите диапазон ячеек, которые вы хотите содержать случайные числовые значения, а затем запустите макрос. Если вы должны использовать в ячейках целые числа, вы можете «раскомментировать» отмеченную строку в макросе.
Если вы хотите заполнить диапазон ячеек случайными датами, небольшая модификация макроса RandNums приведет к следующему.
Sub RandDates() Dim MyRange As Range Dim dtMin As Date, dtMax As Date Dim dtRand As Date ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value ' From: 1/1/1990 (put your start Date) dtMin = #1/1/1990# ' To: Today dtMax = Date Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dtRand = Rnd * (dtMax - dtMin) + dtMin dtRand = Int(dtRand) c.Value = dtRand ' Change format for cell, below, as desired c.NumberFormat = "m/d/yyyy" Next c Application.ScreenUpdating = True End Sub
Опять же, просто выберите диапазон и запустите макрос. Вы можете изменить начальные значения, установленные для переменных dtMin и dtMax, чтобы указать границы для желаемых дат. Вы также можете при желании изменить форматирование, применяемое к ячейкам после того, как в ячейках будет сохранена случайная дата.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (7989) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Generating_Random_Testing_Data [Генерация случайных данных тестирования]
.