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

RANDBETWEEN в Google Sheets — синтаксис, примеры и советы

• 6 min read • Google Sheets • Обновлено 13 Nov 2025
RANDBETWEEN в Google Sheets — синтаксис и примеры
RANDBETWEEN в Google Sheets — синтаксис и примеры

Логотип Google на белом фоне с декоративными листьями

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

Что делает RANDBETWEEN

RANDBETWEEN возвращает случайное целое число между двумя числами, включая границы. Ключевая идея: вы контролируете интервал, функция выбирает целое внутри него.

Определение в одну строку: RANDBETWEEN — это генератор случайных целых чисел в заданных границах.

Синтаксис RANDBETWEEN

=RANDBETWEEN(lower, upper)

Аргументы:

  • lower — нижняя граница (целое или десятичное число). Оно округляется вверх до ближайшего целого (например, 2.6 → 3).
  • upper — верхняя граница (целое или десятичное число). Оно округляется вниз до ближайшего целого (например, 10.4 → 10).

Важно: если lower > upper, функция вернёт ошибку. Если вы передаёте десятичные значения, их приведут к целым по правилам, указанным выше.

Примечание о типе результата

RANDBETWEEN всегда возвращает целое число. Если вам нужны десятичные случайные числа, используйте RAND() и масштабируйте результат (см. раздел “Альтернативные подходы”).

RANDBETWEEN vs RAND

Коротко:

  • RAND возвращает десятичное число в диапазоне 0..1 (не принимает параметры).
  • RANDBETWEEN возвращает целые числа и требует две границы.
  • RANDBETWEEN удобен, когда нужен целочисленный ID, индекс или фиксированная граница.
  • RAND удобен для нормирования, взвешивания и дробных вероятностей.

Когда выбирать что:

  • Нужны целые числа в диапазоне — RANDBETWEEN.
  • Нужны дробные или нормированные значения — RAND.
  • Нужна повторяемость/фиксированное семя — ни одна из встроенных функций не поддерживает сидирование; используйте Apps Script или внешние инструменты.

Простой пример RANDBETWEEN

Простой пример RANDBETWEEN в интерфейсе Google Sheets

Шаги:

  1. Выберите ячейку, куда хотите поместить результат.
  2. Введите формулу: =RANDBETWEEN(1, 100)
  3. Нажмите Enter.

Формула вернёт случайное целое число от 1 до 100 включительно.

Совет: чтобы зафиксировать значение и предотвратить дальнейшие пересчёты, скопируйте ячейку и вставьте как значения: Правка → Вставить специальные → Только значения (или Ctrl+Shift+V / Cmd+Shift+V).

Вложенный пример: выбор случайного элемента из списка

Вложенный пример RANDBETWEEN с INDEX и COUNTA в интерфейсе Google Sheets

Задача: в столбце A есть имена A2:A11. Нужно случайно выбрать одно имя.

Формула:

=INDEX(A2:A11, RANDBETWEEN(1, COUNTA(A2:A11)))

Как это работает:

  1. COUNTA(A2:A11) считает количество занятных строк — это верхняя граница.
  2. RANDBETWEEN(1, <число>) генерирует случайную позицию в диапазоне.
  3. INDEX возвращает элемент по этой позиции.

Полезно, когда список динамически растёт: COUNTA автоматически подстроит верхнюю границу.

Частые сценарии и готовые приёмы

  1. Сгенерировать N случайных чисел в столбце
  • Заполните диапазон формулой RANDBETWEEN в первой ячейке и протяните вниз.
  • Чтобы значения не менялись, выделите диапазон → Копировать → Правка → Вставить специальные → Только значения.
  1. Получить N уникальных случайных чисел в диапазоне
  • Создайте вспомогательный столбец с RAND() рядом с последовательностью чисел, затем отсортируйте по этому столбцу.
  • Подход: в столбце A числа 1..100, в столбце B формула =RAND(), затем Данные → Сортировка диапазона по столбцу B, либо =SORT(A2:A101, B2:B101, TRUE), после чего возьмите первые N элементов.
  1. Смоделировать вероятностное событие с весами
  • RANDBETWEEN не поддерживает веса напрямую. Используйте RAND() и пороговую проверку или аккумулированные интервалы и MATCH.
  1. Создать стабильные случайные значения через Apps Script (не летучие)

Код (Apps Script):

function fillRandomIntegers() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getRange("B2:B11"); // измените под свой диапазон
  var lower = 1;
  var upper = 100;
  var values = [];
  for (var i = 0; i < range.getNumRows(); i++) {
    var rand = Math.floor(Math.random() * (upper - lower + 1)) + lower;
    values.push([rand]);
  }
  range.setValues(values);
}

Запустив функцию, вы получите заполненные значения, которые не будут пересчитываться автоматически.

Когда RANDBETWEEN не подходит (контрпримеры)

  • Нужна воспроизводимая генерация с контролируемым seed — RANDBETWEEN не даёт семя. Решение: Apps Script или внешняя библиотека.
  • Требуются дробные случайные значения — используйте RAND() и масштабируйте:
=RAND()*(upper-lower)+lower
  • Нужны веса/вероятности — используйте RAND() + накопительные интервалы.

  • Нужна высокая производительность на больших массивах — массовые вызовы RANDBETWEEN делают лист «летучим» и замедляют работу; лучше генерировать данные скриптом и вставлять значения.

Производительность и пересчёт

RANDBETWEEN — волатильная функция. Она пересчитывается при каждом изменении листа, при открытии файла и в зависимости от настроек пересчёта.

Как настроить пересчёт (локализованные UI-метки):

  1. Нажмите Файл → Настройки.
  2. Перейдите на вкладку Вычисления.
  3. В поле Пересчёт выберите: При изменении, При изменении и каждую минуту или При изменении и каждый час.

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

Ментальные модели и эвристики

  • “Летучесть”: думайте о RANDBETWEEN как о временной заметке — она меняется, пока вы не зафиксируете значение. Если результат важен, сразу фиксируйте.
  • “Границы важнее распределения”: RANDBETWEEN даёт равномерное распределение целых в пределах границ; если нужна нормальность или иное распределение — применяйте более сложные методы.
  • “Разделяй генерацию и потребление”: генерируйте случайные данные в одном месте (или через скрипт), затем используйте в аналитике как статические значения.

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

Для аналитика:

  • Определите нужный диапазон и количество значений.
  • Сгенерируйте значения в отдельном листе.
  • Зафиксируйте значения: Вставить только значения.
  • Проверьте распределение (гистограмма).

Для преподавателя (рандомизация тестов):

  • Подготовьте список вопросов.
  • Добавьте вспомогательный столбец =RAND() и отсортируйте или используйте INDEX+RANDBETWEEN.
  • Зафиксируйте позиции и создайте копии перед рассылкой.

Для разработчика/автоматизатора:

  • Используйте Apps Script для больших объёмов.
  • Логируйте операции генерации.
  • Добавьте проверку границ и обработку ошибок в скрипт.

Методика: быстрый SOP для случайной выборки из таблицы (5 шагов)

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

Критерии приёмки (тесты)

  • Формула возвращает значение в заданных границах для 100 подряд запусков.
  • При задании non-integer границ результат остаётся целым и не выходит за пределы приведённых границ.
  • При пересчёте листа значения изменяются, если не зафиксированы.
  • При использовании скрипта значения остаются стабильными до следующего запуска скрипта.

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

  • Не используйте RANDBETWEEN для генерирования паролей, ключей API или других секретов.
  • Если вы рандомизируете персональные данные, соблюдайте правила обработки персональных данных (GDPR/локальное законодательство).

Шаблонный лист чек‑шитов и формул (шпаргалка)

  • Случайное целое в 1..10:
=RANDBETWEEN(1, 10)
  • Случайное десятичное в 0..1:
=RAND()
  • Случайное десятичное в lower..upper:
=RAND()*(upper-lower)+lower
  • Выбрать случайный элемент из A2:A100:
=INDEX(A2:A100, RANDBETWEEN(1, COUNTA(A2:A100)))
  • Перетасовать список через вспомогательный столбец:
  1. В B2: =RAND() и протянуть.
  2. Данные → Сортировка диапазона по столбцу B.

Примеры ошибок и советы по их исправлению

  • Ошибка “#VALUE!” — проверьте, что lower и upper — числа и что lower ≤ upper.
  • Похожая формула не возвращает уникальные значения — используйте вспомогательную колонку с RAND() и сортировку.
  • Файл стал медленным — уменьшите количество волатильных функций или используйте Apps Script для генерации данных вне формул.

Быстрый взгляд: когда использовать RANDBETWEEN

  • Тестовые данные и мок‑сервисы.
  • Случайные выборки из небольших списков.
  • Простейшие игры и розыгрыши в пределах листа.

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

Краткое резюме

RANDBETWEEN — простой и удобный инструмент для генерации случайных целых чисел в Google Sheets. Он полезен для множества повседневных задач, но обладает ограничениями: волатильность, отсутствие управления seed и отсутствие поддержки весов. Для больших или воспроизводимых задач лучше применять Apps Script или комбинировать RANDBETWEEN с RAND(), COUNTA и INDEX.

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

Полезные ресурсы: встроенные справки Google Sheets по функциям RAND и INDEX, документация Apps Script.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

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

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро