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

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

7 min read Google Sheets Обновлено 16 Dec 2025
Случайные числа в Google Sheets — RAND и RANDBETWEEN
Случайные числа в Google Sheets — RAND и RANDBETWEEN

Логотип Google Sheets на металлическом фоновом изображении с аккуратными линиями

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

Что такое RAND, RANDBETWEEN и RANDARRAY

Краткие определения:

  • RAND — возвращает случайное дробное число x, 0 ≤ x < 1.
  • RANDBETWEEN(lower, upper) — возвращает случайное целое в диапазоне [lower, upper].
  • RANDARRAY(rows, columns) — создаёт массив случайных дробных чисел; аргументы необязательны.

Определения по одной строке для быстрой справки:

  • RAND: дробный генератор [0,1).
  • RANDBETWEEN: целочисленный генератор между двумя границами.
  • RANDARRAY: массив случайных чисел указанного размера.

RAND — синтаксис и поведение

=RAND()

Функция не принимает аргументов; если внутри скобок что-то написать, вернётся ошибка. RAND — «волатильная» функция: значение пересчитывается при каждом изменении таблицы или при перезагрузке вкладки. Из-за этого при большом количестве вызовов лист может заметно замедляться.

Примеры использования:

  • Получить десятичную дробь: =RAND()
  • Преобразовать в процент: =RAND()*100 или =ROUND(RAND()*100,2)

Совет: если нужно, чтобы результат не менялся снова, скопируйте и вставьте как значения (Правка → Специальная вставка → Только значения).

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

RANDBETWEEN — синтаксис и тонкости

=RANDBETWEEN(lower, upper)

Аргументы:

  • lower — целое, нижняя граница (включительно).
  • upper — целое, верхняя граница (включительно).

Ограничения:

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

Пример: если в A1=1 и A2=100, то =RANDBETWEEN(A1,A2) вернёт случайное целое от 1 до 100.

Отличия от RAND:

  • RAND возвращает дробные числа; RANDBETWEEN — целые.
  • RAND не принимает аргументы; RANDBETWEEN требует две границы.
  • В узких диапазонах вероятность повторов выше для RANDBETWEEN.

Скриншот образца данных для генератора случайных чисел в Google Sheets

Как сгенерировать случайное число между произвольными границами

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

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

Пример: случайное дробное между 1 и 100:

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

Если нужен целый результат, сочетайте с ROUND, INT или ROUNDDOWN:

=INT(RAND() * (100 - 1 + 1)) + 1  // эквивалент RANDBETWEEN(1,100)

Альтернатива: использовать RANDBETWEEN напрямую для целых:

=RANDBETWEEN(1,100)

Инструкция по использованию RANDBETWEEN со ссылками на ячейки:

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

Скриншот с примером формулы для генерации случайного числа

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

Скриншот демонстрации маркера заполнения для копирования формулы

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

=RANDARRAY(rows, columns)

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

Пример: создать матрицу 5 строк × 3 столбца:

=RANDARRAY(5,3)

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

Порядок действий:

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

Скриншот, показывающий использование функции RANDARRAY

Результаты нескольких запусков функции RANDARRAY

Управление пересчётом (частота обновления) волатильных функций

Так как RAND и RANDBETWEEN волатильны, Google Sheets пересчитывает их при изменениях в таблице или при перезагрузке. Чтобы снизить частоту обновления или удержать значения стабильными, измените настройки пересчёта:

  1. В меню нажмите Файл → Настройки.
  2. Перейдите на вкладку «Вычисления».
  3. В разделе «Пересчёт» выберите необходимую опцию (например, «При изменениях и раз в минуту», «При изменениях» или «Никогда»).
  4. Нажмите Сохранить настройки.

Параметры для изменения частоты пересчёта волатильных функций

Важно: опция «Никогда» предотвращает автоматический пересчёт, но новые значения по-прежнему появятся, если вручную пересчитать лист или изменить наиболее критичные параметры.

Практические приёмы и шаблоны

  1. Фиксация текущих случайных значений (чтобы они больше не менялись):

    • Скопируйте диапазон с формулами → Правка → Специальная вставка → Только значения.
  2. Получить уникальные случайные целые (без повторов) в ограниченном диапазоне:

    • Если диапазон достаточно большой, используйте сортировку по случайному ключу: в столбце рядом =RAND() и затем сортируйте по нему. После сортировки скопируйте только требуемые значения и вставьте как значения.
  3. Повторяемые (детерминированные) наборы для тестов:

    • Google Sheets не поддерживает управление seed у встроенных функций. Для воспроизводимости используйте Google Apps Script, где можно управлять генератором псевдослучайных чисел, или сохраняйте сгенерированные значения как статичный набор.
  4. Генерация случайных дат:

    • Пример: случайная дата между 01.01.2020 и 31.12.2020:
=DATE(2020,1,1) + RANDBETWEEN(0, DATE(2020,12,31)-DATE(2020,1,1))
  1. Ограничение точности дробных чисел:

    • =ROUND(RAND()*(b-a)+a, 2) — два знака после запятой.
  2. Генерация случайных булевых значений (TRUE/FALSE):

    • =RAND() < 0.5

Альтернативы и расширения

  • Google Apps Script: если нужна контрольная последовательность (seed), сложная логика или высокопроизводительная генерация большого объёма чисел, напишите скрипт и возвращайте значения в диапазон.
  • Внешние генераторы и импорт: можно сгенерировать данные в Python/R и загрузить через CSV или API.
  • Использовать QUERY/UNIQUE/CUSTOM FORMULAS: для фильтрации, удаления повторов и постобработки.

Пример простого скрипта на Apps Script для заполнения диапазона псевдослучайными числами от 0 до 1 с управляемым seed (типовой подход — использовать Math.random; для повторяемости применяются внешние библиотеки или собственный LCG):

function fillRandom(rangeA1, rows, cols) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var values = [];
  for (var r = 0; r < rows; r++) {
    var row = [];
    for (var c = 0; c < cols; c++) {
      row.push(Math.random());
    }
    values.push(row);
  }
  sheet.getRange(rangeA1).offset(0,0,rows,cols).setValues(values);
}

Замечание: Math.random() не поддерживает seed по умолчанию; для детерминированности добавьте LCG-реализацию.

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

  • Нужна воспроизводимость по seed — встроенные функции не подойдут.
  • Большие таблицы с тысячами RAND — производительность ухудшится, лучше генерировать вне листа или фиксировать значения.
  • Требуется криптографическая случайность — Google Sheets не обеспечивает криптографического качества генератора.

Ментальные модели и heuristics

  • Если нужно быстро — используйте RAND / RANDBETWEEN.
  • Если нужно много раз сгенерировать и сохранить — генерируйте один раз и вставьте как значения.
  • Если нужны большие объёмы или seed — используйте скрипт или внешние инструменты.

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

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

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

  • Все значения лежат в заданном диапазоне.
  • Формулы заменены значениями, если требуется стабилизация.
  • При необходимости — отсутствие дубликатов (проверено UNIQUE/COUNTIF).
  • В случае использования скриптов — код доступен и задокументирован.

Тестовые случаи (acceptance)

  • Генерация 100 целых чисел от 1 до 10: проверить, что все числа в диапазоне и хотя бы одно повторение (ожидаемо).
  • Генерация 50 дробных чисел между 0 и 1: проверить, что ни одно число не равно 1 и все ≥ 0.
  • Генерация матрицы 10×5 через RANDARRAY: проверить размеры и отсутствие ошибок пересчёта.

Риск-матрица и рекомендации по смягчению

  • Риск: медленный лист из-за множества волатильных функций. Смягчение: сгенерировать за пределами листа, затем вставить как значения.
  • Риск: непреднамеренный пересчёт меняет тестовые данные. Смягчение: установить пересчёт по расписанию или использовать «Никогда» и вручную обновлять.
  • Риск: использование для безопасности/ключей. Смягчение: не использовать для криптографии.

Роль‑ориентированные чек‑листы

  • Для аналитика: определить диапазоны и точность, сгенерировать, проверить статистику (среднее, медиана, стандартное отклонение).
  • Для тестировщика: зафиксировать seed/данные, сохранять версию набора, включить тесты воспроизводимости.
  • Для разработчика (Apps Script): обеспечить код, логирование, обработку ошибок и тесты на границы.

Пример decision tree (выбор функции)

flowchart TD
  A[Нужны случайные числа?] --> B{Целые или дробные}
  B -->|Целые| C[RANDBETWEEN]
  B -->|Дробные| D[RAND]
  C --> E{Много значений?}
  D --> E
  E -->|Да| F[Использовать RANDARRAY или скрипт]
  E -->|Нет| G[Использовать формулы в листе]
  F --> H[Сохранить как значения при необходимости]
  G --> H

Безопасность и приватность

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

Часто задаваемые вопросы

Можно ли задать seed для RAND в Google Sheets?

Нет, встроенная функция RAND не поддерживает seed. Для детерминированности используйте Google Apps Script с реализацией генератора с seed.

Как сделать, чтобы случайные числа не пересчитывались?

Скопируйте диапазон и вставьте как значения либо измените в Настройках пересчёта опцию «Никогда» или «При изменениях» в зависимости от потребности.

Как получить случайные уникальные целые без повторов?

Метод: в отдельном столбце поставьте =RAND() рядом с диапазоном значений, отсортируйте по этом столбце, затем возьмите верхние N значений и вставьте как значения.

Заключение

Google Sheets предоставляет удобные встроенные инструменты для генерации случайных чисел: RAND для дробных значений, RANDBETWEEN для целых и RANDARRAY для массивов. Для производительности и воспроизводимости используйте копирование значений, Apps Script или внешние генераторы. Правильный выбор зависит от объёма данных, требований к воспроизводимости и критичности безопасности.

Ключевые рекомендации:

  • Для быстрых задач используйте встроенные функции.
  • Для больших объёмов или требующих seed — скрипты или внешние инструменты.
  • Фиксируйте результаты при необходимости стабильности.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как скопировать файлы на USB в Chromebook
Руководство

Как скопировать файлы на USB в Chromebook

Сделать Windows 10 похожей на macOS
Руководства

Сделать Windows 10 похожей на macOS

PrintNightmare: патч KB5004945 и как защититься
Кибербезопасность

PrintNightmare: патч KB5004945 и как защититься

Как запустить NES и SNES игры на Nintendo Wii
Ретро игры

Как запустить NES и SNES игры на Nintendo Wii

Частота DRAM: настройка и безопасный разгон
Аппаратное обеспечение

Частота DRAM: настройка и безопасный разгон

Поиск мира Minecraft с AMIDST
Minecraft

Поиск мира Minecraft с AMIDST