Гид по технологиям

Генерация случайных чисел в Google Sheets

7 min read Google Таблицы Обновлено 09 Jan 2026
Генерация случайных чисел в Google Sheets
Генерация случайных чисел в Google Sheets

Логотип Google Sheets на металлическом полосатом фоне

Введение

Часто в рабочих таблицах требуется набор случайных чисел: для тестовых данных, выборок, симуляций или проверок формул. Вручную заполнять ячейки — долго и рискованно. Google Sheets предлагает встроенные функции для автоматической генерации случайных чисел. В этой статье подробно разберём варианты, практические приёмы, ограничения и готовые решения для разных задач.

Основные функции: RAND и RANDBETWEEN

Функция RAND возвращает случайное десятичное число в диапазоне от 0 включительно до 1 не включая. Синтаксис очень простой:

=RAND()

У функции нет аргументов — если внутри скобок что-то указать, формула вернёт ошибку #N/A. Обратите внимание: RAND — volatile-функция. Это значит, что её значение пересчитывается при каждом изменении листа или перезагрузке вкладки браузера.

RANDBETWEEN генерирует случайное целое число в заданном диапазоне. Синтаксис:

=RANDBETWEEN(lower, upper)
  • lower — нижняя граница (целое число или ссылка на ячейку). Значение будет больше или равно lower.
  • upper — верхняя граница (целое число или ссылка на ячейку). Значение будет меньше или равно upper.

Важно: оба аргумента должны быть целыми, и lower < upper.

Ключевые отличия между RAND и RANDBETWEEN

  • RAND возвращает десятичные значения (плавающая запятая); RANDBETWEEN возвращает целые числа.
  • RAND не принимает аргументов; RANDBETWEEN требует две границы.
  • RAND даёт равномерное распределение в [0, 1), RANDBETWEEN — равномерное распределение по целым числам в указанном диапазоне.
  • При ограниченных малых диапазонах RANDBETWEEN с большей вероятностью даст повторяющиеся значения.

Генерация случайного числа между двумя значениями

Чтобы получить десятичное число между двумя произвольными числами X и Y, используйте масштабирование RAND:

=RAND() * (X - Y) + Y

Например, для диапазона от 1 до 100:

=RAND() * (100 - 1) + 1

Если нужен целый результат, оберните формулу в INT, ROUND или используйте RANDBETWEEN. Примеры:

  • Целое вниз:
=INT(RAND() * (100 - 1 + 1)) + 1
  • Округление до ближайшего целого:
=ROUND(RAND() * (100 - 1) + 1, 0)

Пример генерации случайного числа между двумя значениями с помощью RAND

Использование RANDBETWEEN с адресами ячеек

Если границы хранятся в ячейках, укажите ссылки:

=RANDBETWEEN(A1, B1)

Пошагово:

  1. Введите нижнюю и верхнюю границы в ячейки (например, A1 и B1).Исходные данные в таблице для генератора случайных чисел
  2. Введите формулу =RANDBETWEEN(A1, B1).Формула RANDBETWEEN в ячейке примера
  3. Нажмите Enter — получите случайное целое между границами.Результат работы генератора случайных чисел в ячейке
  4. Для копирования формулы вниз используйте маркер заполнения (fill handle).Использование маркера заполнения для копирования формулы вниз

Создание массива случайных чисел с RANDARRAY

Чтобы быстро заполнить таблицу случайными значениями, используйте RANDARRAY. Она позволяет одновременно сгенерировать несколько строк и столбцов.

=RANDARRAY(rows, columns)

Аргументы опциональны:

  • rows — количество строк в массиве.
  • columns — количество столбцов в массиве.

Пример: создать массив 5x3:

=RANDARRAY(5, 3)

Пошагово:

  1. Выберите ячейку, где должен появиться массив.
  2. Введите =RANDARRAY(числострок, числостолбцов).
  3. Нажмите Enter — массив займёт соответствующий диапазон.

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

Результат выполнения RANDARRAY — массив случайных чисел

Управление частотой пересчёта и производительностью

Поскольку RAND и RANDBETWEEN — volatile, при большом количестве формул лист может начать тормозить. Вы можете изменить параметры пересчёта:

  1. Нажмите «Файл» → «Настройки».
  2. Перейдите на вкладку «Вычисления» (Calculation).
  3. В разделе «Пересчёт» (Recalculation) выберите подходящий режим: «При изменении и при открытии» или «Каждую минуту»/«Кажде 10 минут», если доступно.Параметры пересчёта для управления обновлением volatile-функций
  4. Нажмите «Сохранить настройки».

Если вам нужно один раз сгенерировать данные и больше не пересчитывать — зафиксируйте значения: выделите диапазон → правый клик → «Копировать» → правый клик → «Специальная вставка» → «Вставить только значения». Это избавит от дальнейших пересчётов.

Когда встроенные функции не подходят

  • Когда нужна воспроизводимость (фиксированный псевдослучай с известным seed). Google Sheets не даёт прямой возможности задать seed для RAND. Для воспроизводимых последовательностей используйте Apps Script или внешние инструменты и вставляйте значения.
  • Когда нужна криптографическая безопасность. RAND и Math.random не предназначены для криптографии.
  • Когда требуется уникальность большого количества целых в небольшом диапазоне. Встроенные функции могут давать дубликаты; предпочтительнее генерировать последовательность уникальных значений через скрипт и проверку.

Альтернативные подходы и расширенные приёмы

  • Apps Script: заполнение диапазона случайными числами, проверка уникальности, фиксация значений. Простой скрипт для целых чисел:
function fillRandomIntegers(rangeA1, min, max) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange(rangeA1);
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[0].length; j++) {
      values[i][j] = Math.floor(Math.random() * (max - min + 1)) + min;
    }
  }
  range.setValues(values);
}
  • Экспорт в Python/R: когда нужна статистическая модель, сложные распределения или воспроизводимость, удобнее генерировать данные в Python/R, задав seed, и импортировать.
  • Использование вспомогательных столбцов: для получения уникальных случайных чисел можно присвоить каждой строке случайный ключ и отсортировать по этому ключу, затем взять уникальную комбинацию.

Примеры преобразований данных

  • Преобразовать равномерное распределение в диапазон [a, b]:
=RAND()*(b - a) + a
  • Получить целое в [a, b]:
=INT(RAND()*(b - a + 1)) + a
  • Получить нормальное распределение приближённо (Box–Muller через Google Sheets):
=SQRT(-2*LN(RAND()))*COS(2*PI()*RAND())

Этот приём даёт значения с приближённым нормальным распределением (среднее 0, дисперсия 1). Для смещения и масштабирования используйте формулу: mean + stdev * (результат).

Практическое руководство: SOP для генерации и фиксации случайных данных

  1. Определите цель: тестовые данные, выборка, уникальные ключи.
  2. Выберите функцию: RAND (десятичные), RANDBETWEEN (целые), RANDARRAY (массивы), Apps Script (воспроизводимость/уникальность).
  3. Сгенерируйте значение(я) в рабочей копии листа.
  4. Проверьте распределение/повторы (при необходимости): используйте сводную таблицу или COUNTIF для поиска дубликатов.
  5. Зафиксируйте значения: вставить только значения или экспорт.
  6. Документируйте процесс: где хранятся границы и какой метод использовался.

Рекомендации по тестированию и критерии приёмки

Критерии приёмки:

  • Диапазоны соблюдены: все значения находятся в заданных границах.
  • Формат: целые/десятичные — как ожидалось.
  • Пересчёт контролируем: при необходимости значения зафиксированы.
  • Производительность: лист не тормозит при объёме данных.

Тестовые кейсы:

  • Тест 1: RANDBETWEEN(1, 10) 1000 раз — убедиться, что все значения ∈ [1,10].
  • Тест 2: RAND() * (5 - 2) + 2 — проверить минимум ≈2 и максимум <5 при большом числе итераций.
  • Тест 3: RANDARRAY(100, 10) — измерить время загрузки и пересчёта.
  • Тест 4: После «Вставить значения» значения не должны изменяться при пересчёте листа.

Роли и чек-листы

Аналитик:

  • Проверить границы и формат данных.
  • Оценить необходимость уникальности.
  • Зафиксировать источник случайных данных.

Разработчик/автоматизатор:

  • Написать Apps Script для воспроизводимости и проверки уникальности.
  • Добавить логирование в скрипт (дата/время, параметры).

QA:

  • Выполнить тестовые кейсы, описанные выше.
  • Проверить, что фиксация уничтожает зависимость от volatile-функций.

Преподаватель/тьютор:

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

Модель принятия решения

flowchart TD
  A[Нужны целые числа?] -->|Да| B{Требуется уникальность?}
  B -->|Да| C[Использовать Apps Script с проверкой уникальности]
  B -->|Нет| D[Использовать RANDBETWEEN]
  A -->|Нет| E[Нужны десятичные значения?]
  E -->|Да| F[Использовать RAND и масштабирование]
  E -->|Нет| G[Использовать RANDARRAY для массивов или скрипт]

Ограничения и типичные ошибки

  • Не учитывайте RAND для криптографии или задач, где важен сильный RNG.
  • Не забывайте фиксировать данные, если дальнейшая смена значений недопустима.
  • При больших объёмах используйте параметры пересчёта или скрипты, чтобы избежать тормозов.
  • Проверяйте граничные условия: lower <= upper для RANDBETWEEN.

Короткая памятка (cheat sheet)

  • Случайное десятичное 0–1: =RAND()
  • Случайное десятичное a–b: =RAND()*(b-a)+a
  • Случайное целое a–b: =RANDBETWEEN(a, b)
  • Массив случайных чисел: =RANDARRAY(rows, columns)
  • Зафиксировать значения: Копировать → Специальная вставка → Вставить только значения

Факты и числа

  • RAND возвращает значения в интервале [0, 1).
  • RANDBETWEEN возвращает целые значения, включая обе границы.
  • RAND и RANDBETWEEN являются volatile и пересчитываются при изменениях листа.

Примечания по безопасности и конфиденциальности

Сгенерированные данные не связаны с личными данными, однако если вы используете случайные ключи для доступа или тестовых аккаунтов, храните их безопасно. Не применяйте RAND для шифрования или генерации паролей.

Завершение

Функции RAND, RANDBETWEEN и RANDARRAY покрывают большинство задач по генерации случайных чисел в Google Sheets. Для задач, требующих воспроизводимости, уникальности или масштабирования, используйте Apps Script или внешние языки (Python/R). Всегда фиксируйте значения, если дальнейший пересчёт нежелателен, и проверяйте распределение, если это важно для анализа.

Важное: если вам нужно воспроизводимое или криптографически стойкое случайное значение, рассматривайте специализированные инструменты, а не встроенные функции таблиц.

Краткое резюме внизу:

  • RAND — для десятичных значений в [0,1).
  • RANDBETWEEN — для случайных целых между двумя границами.
  • RANDARRAY — для массивов.
  • Для фиксации значений используйте «Вставить значения» или Apps Script.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство