Как сделать чтобы случмежду не менялась при пересчете в excel?

15K

08 января 2007 года

olen

11 / / 04.04.2006

Спасибо огромное — всё работает как надо.

Правда появилось пара ламерских вопросов:

1. как сделать так чтобы этот макрос автоматом запускался 1 раз при открытии книги?

2. Все значения в нескольких ячейках получаются одинаковыми 🙁 мне это не подходит — надо чтобы были разные.

Ещё решил попробовать сделать значения рандомных чисел зависимым от значений чисел в других ячейках — как это сделать?

Попробовал написать так —

Sub GetRandom()

Randomize

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E19») > 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F19»).Value = Rnd * 0.06 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E19») < 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F19»).Value = Rnd * 0.04 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E20») > 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F20»).Value = Rnd * 0.06 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E20») < 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F20»).Value = Rnd * 0.04 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E21») > 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F21»).Value = Rnd * 0.06 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E21») < 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F21»).Value = Rnd * 0.04 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E22») > 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F22»).Value = Rnd * 0.06 — 0.03

If ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«E22») < 5 Then

ThisWorkbook.Worksheets(«ÅÃÐÇ»).Range(«F22»).Value = Rnd * 0.04 — 0.03

End If

End Sub

Но ВБ при этом ругается 🙁

У нас есть последовательность чисел, состоящая из практически независимых элементов, которые подчиняются заданному распределению. Как правило, равномерному распределению.

Сгенерировать случайные числа в Excel можно разными путями и способами. Рассмотрим только лучше из них.

Функция случайного числа в Excel

  1. Функция СЛЧИС возвращает случайное равномерно распределенное вещественное число. Оно будет меньше 1, больше или равно 0.
  2. Функция СЛУЧМЕЖДУ возвращает случайное целое число.

Рассмотрим их использование на примерах.

Выборка случайных чисел с помощью СЛЧИС

Данная функция аргументов не требует (СЛЧИС()).

Чтобы сгенерировать случайное вещественное число в диапазоне от 1 до 5, например, применяем следующую формулу: =СЛЧИС()*(5-1)+1.

Возвращаемое случайное число распределено равномерно на интервале .

При каждом вычислении листа или при изменении значения в любой ячейке листа возвращается новое случайное число. Если нужно сохранить сгенерированную совокупность, можно заменить формулу на ее значение.

  1. Щелкаем по ячейке со случайным числом.
  2. В строке формул выделяем формулу.
  3. Нажимаем F9. И ВВОД.

Проверим равномерность распределения случайных чисел из первой выборки с помощью гистограммы распределения.

  1. Сформируем «карманы». Диапазоны, в пределах которых будут находиться значения. Первый такой диапазон – 0-0,1. Для следующих – формула =C2+$C$2.
  2. Определим частоту для случайных чисел в каждом диапазоне. Используем формулу массива {=ЧАСТОТА(A2:A201;C2:C11)}.
  3. Сформируем диапазоны с помощью знака «сцепления» (=»»).
  4. Строим гистограмму распределения 200 значений, полученных с помощью функции СЛЧИС ().

Диапазон вертикальных значений – частота. Горизонтальных – «карманы».

Функция СЛУЧМЕЖДУ

Синтаксис функции СЛУЧМЕЖДУ – (нижняя граница; верхняя граница). Первый аргумент должен быть меньше второго. В противном случае функция выдаст ошибку. Предполагается, что границы – целые числа. Дробную часть формула отбрасывает.

Пример использования функции:

Случайные числа с точностью 0,1 и 0,01:

Как сделать генератор случайных чисел в Excel

Сделаем генератор случайных чисел с генерацией значения из определенного диапазона. Используем формулу вида: =ИНДЕКС(A1:A10;ЦЕЛОЕ(СЛЧИС()*10)+1).

Сделаем генератор случайных чисел в диапазоне от 0 до 100 с шагом 10.

Из списка текстовых значений нужно выбрать 2 случайных. С помощью функции СЛЧИС сопоставим текстовые значения в диапазоне А1:А7 со случайными числами.

Воспользуемся функцией ИНДЕКС для выбора двух случайных текстовых значений из исходного списка.

Чтобы выбрать одно случайное значение из списка, применим такую формулу: =ИНДЕКС(A1:A7;СЛУЧМЕЖДУ(1;СЧЁТЗ(A1:A7))).

Генератор случайных чисел нормального распределения

Функции СЛЧИС и СЛУЧМЕЖДУ выдают случайные числа с единым распределением. Любое значение с одинаковой долей вероятности может попасть в нижнюю границу запрашиваемого диапазона и в верхнюю. Получается огромный разброс от целевого значения.

Нормальное распределение подразумевает близкое положение большей части сгенерированных чисел к целевому. Подкорректируем формулу СЛУЧМЕЖДУ и создадим массив данных с нормальным распределением.

Себестоимость товара Х – 100 рублей. Вся произведенная партия подчиняется нормальному распределению. Случайная переменная тоже подчиняется нормальному распределению вероятностей.

При таких условиях среднее значение диапазона – 100 рублей. Сгенерируем массив и построим график с нормальным распределением при стандартном отклонении 1,5 рубля.

Используем функцию: =НОРМОБР(СЛЧИС();100;1,5).

Программа Excel посчитала, какие значения находятся в диапазоне вероятностей. Так как вероятность производства товара с себестоимостью 100 рублей максимальная, формула показывает значения близкие к 100 чаще, чем остальные.

Перейдем к построению графика. Сначала нужно составить таблицу с категориями. Для этого разобьем массив на периоды:

  1. Определим минимальное и максимальное значение в диапазоне с помощью функций МИН и МАКС.
  2. Укажем величину каждого периода либо шаг. В нашем примере – 1.
  3. Количество категорий – 10.
  4. Нижняя граница таблицы с категориями – округленное вниз ближайшее кратное число. В ячейку Н1 вводим формулу =ОКРВНИЗ(E1;E5).
  5. В ячейке Н2 и последующих формула будет выглядеть следующим образом: =ЕСЛИ(G2;H1+$E$5;»»). То есть каждое последующее значение будет увеличено на величину шага.
  6. Посчитаем количество переменных в заданном промежутке. Используем функцию ЧАСТОТА. Формула будет выглядеть так:

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

График с нормальным распределением готов. Как и должно быть, по форме он напоминает колокол.

Сделать то же самое можно гораздо проще. С помощью пакета «Анализ данных». Выбираем «Генерацию случайных чисел».

О том как подключить стандартную настройку «Анализ данных» читайте здесь.

Заполняем параметры для генерации. Распределение – «нормальное».

Жмем ОК. Получаем набор случайных чисел. Снова вызываем инструмент «Анализ данных». Выбираем «Гистограмма». Настраиваем параметры. Обязательно ставим галочку «Вывод графика».

Получаем результат:

Скачать генератор случайных чисел в Excel

График с нормальным распределением в Excel построен.

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

Предположим,  мы хотим получить случайное число (а не выдумывать его из головы) в интервале от -10 до +10. В этом случае сгенерировать число нам поможет функция СЛУЧМЕЖДУ() — она возвращает случайное число в заданном диапазоне. В нашем примере это будет выглядеть так:  =СЛУЧМЕЖДУ(-10;10) теперь можно протянуть эту формулу по необходимым нам ячейкам.

Вторая функция СЛЧИС() — возвращает случайное число большее (либо равное) 0 и меньшее 1 (изменяется при пересчете, F9). У функции СЛЧИС() в отличии от СЛУЧМЕЖДУ() нет аргументов, а значит для получении случайного числа от 0 до 1 нам нужно просто прописать в ячейке = СЛЧИС() .

Случайное число в Excel

Очень надеемся, что наша статья помогла Вам в решении Вашей проблемы. Если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже, будем благодарны.

Спасибо за внимание.