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

Как использовать функцию RANK в Google Sheets

8 min read Google Таблицы Обновлено 03 Jan 2026
Функция RANK в Google Sheets — подробное руководство
Функция RANK в Google Sheets — подробное руководство

Логотип Google Sheets на фоне реки

Что такое функция RANK?

Функция RANK возвращает место (ранг) заданного значения в пределах набора чисел. Пример: у вас есть оценки студентов — RANK покажет, какое место занял конкретный студент. Ранг может отражать порядок по убыванию (по умолчанию) или по возрастанию, если указать соответствующий параметр.

Кратко о вариантах:

  • RANK — историческая версия (существует для совместимости). Не рекомендуется для новых проектов, так как она может быть помечена как устаревшая в будущих версиях.
  • RANK.EQ — функционально эквивалентна RANK и безопасна для использования между Google Sheets и современным Excel.
  • RANK.AVG — при одинаковых значениях возвращает средний ранг (полезно, когда дубликаты логичнее трактовать через усреднение).

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

Синтаксис функции RANK

Синтаксис в Google Sheets одинаков для всех трёх функций:

=RANK(val, dataset, ascending)
=RANK.EQ(val, dataset, ascending)
=RANK.AVG(val, dataset, ascending)

Параметры:

  • val — число или ссылка на ячейку с числом, ранг которого нужно определить.
  • dataset — диапазон или массив чисел для сравнения (например, B2:B10 или {66,88,75}).
  • ascending — необязательный параметр: 0 или FALSE (по умолчанию) — ранжирование по убыванию (большие значения получают ранг 1); 1 или TRUE — ранжирование по возрастанию (меньшие значения получают ранг 1).

Если третий параметр пропустить, будет принято FALSE.

Пример:

=RANK(B2, $B$2:$B$10)

В этом примере B2 — значение для ранжирования, а $B$2:$B$10 — абсолютный диапазон, используемый при автозаполнении.

Как использовать RANK в Google Sheets

Ниже — подробная рабочая инструкция с примерами, автозаполнением и вариантами для дубликатов.

Пример: базовое использование RANK

Предположим, у вас есть таблица с именами учеников и их оценками в столбиках A и B (A2:A10 — имена, B2:B10 — оценки). Мы хотим в столбце C показать ранг каждого ученика по убыванию (1 — лучший результат).

Шаги:

  1. Кликните ячейку C2.
  2. Введите =RANK(B2, $B$2:$B$10)
  3. Нажмите Enter.
  4. Примените автозаполнение: перетащите маркер в правом нижнем углу ячейки C2 вниз до C10.

Обратите внимание: использование абсолютных ссылок $B$2:$B$10 гарантирует, что диапазон не сдвинется при автозаполнении.

Пояснение базового использования функции RANK с таблицей оценок

Автозаполнение и абсолютные ссылки

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

Автозаполнение результатов ранжирования в Google Sheets

Совет: если вы добавляете новые строки в середину таблицы, рассмотрите использование динамических диапазонов (например, с помощью функции INDIRECT или именованных диапазонов), чтобы диапазон автоматически включал новые значения.

Когда использовать RANK.EQ

RANK.EQ возвращает верхний (наименьший числовой) ранг для повторяющихся значений. Это тот же результат, что и RANK в большинстве случаев. Применяйте RANK.EQ если вам важна совместимость с современным Excel и вы не хотите неожиданных изменений при переносе файлов.

Пример работы функции RANK.EQ с одинаковыми значениями

Пример:

=RANK.EQ(B2, $B$2:$B$10)

Если два значения равны и занимают места 2 и 3, RANK.EQ даст обеим строкам ранг 2.

Когда использовать RANK.AVG

RANK.AVG усредняет позиции одинаковых значений. Это полезно, когда одинаковые значения логичнее интерпретировать как «разделённый» ранг.

Пример:

=RANK.AVG(B2, $B$2:$B$10)

Если два ученика набрали одинаковые 90 баллов, и эти баллы стоят на 1 и 2 местах, RANK.AVG вернёт 1.5 для обоих.

Пример работы функции RANK.AVG демонстрирующий средний ранг

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

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

=RANK(67, {66,88,75,86,67,65,81,90,71})

Результат покажет позицию числа 67 в этом массиве. Такой приём годится для быстрых вычислений без отдельного диапазона.

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

Частые ошибки и как их исправить

  • Невнимательное использование относительных ссылок вместо абсолютных. Симптом: при автозаполнении диапазон смещается.
    • Исправление: используйте $B$2:$B$10 или именованный диапазон.
  • Вхождение текста или пустых ячеек в dataset. Симптом: #N/A или некорректные ранги.
    • Исправление: убедитесь, что во всех клетках числовые значения или используйте функцию IFERROR/IF/ISNUMBER для фильтрации.
  • Неправильное направление ранжирования (ascending). Симптом: наивысшее значение получает ранг не 1.
    • Исправление: проверьте значение третьего аргумента (TRUE для возрастания, FALSE для убывания).
  • Путаница между RANK, RANK.EQ и RANK.AVG при дубликатах.
    • Исправление: выберите RANK.AVG если хотите средние позиции, RANK.EQ если нужно верхний ранг.

Когда RANK не подойдёт (контрпример)

  • Задачи с подсчётом относительного процента или нормированного ранга. RANK даёт целочисленные или усреднённые позиции, но не процентный ранг (например, 90-е перцентиль).
  • Нужны сложные правила разрыва равенств (tie-breakers) по дополнительным колонкам. RANK обрабатывает только один числовой столбец.

Альтернатива: для процентного ранга используйте PERCENTRANK или PERCENTRANK.INC; для разбиения равенств применяйте вспомогательные колонки с дополнительными критериями (например, дата сдачи, время или ID) и комбинированную формулу SORT/INDEX/ROW.

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

  • PERCENTRANK/PERCENTRANK.INC — если нужен процентный ранг.
  • RANK в сочетании с COUNTIF — для реализации нестандартных правил распределения рангов.
  • SORT + MATCH/INDEX/ROW — когда нужен строгий порядок с tie-breakers по второму столбцу.
  • Использование QUERY для динамической фильтрации и сортировки перед ранжированием.

Пример tie-breaker (ранг по оценке, при равенстве — по времени сдачи в столбце C):

=ARRAYFORMULA(RANK(B2:B10 + (C2:C10/1000000), B2:B10 + (C2:C10/1000000), 0))

Идея: добавить очень маленькое приращение на основе второго критерия, чтобы разорвать равенства. Будьте осторожны с точностью и масштабом приращения.

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

  • «Ранг — это порядок, не значение»: RANK не меняет исходные данные, он лишь говорит, какое место занимает элемент.
  • «Используй абсолютные диапазоны, пока таблица статична»: если таблица не динамическая, фиксируй диапазоны.
  • «Дубликаты — это сигнал к решению»: если в наборе много одинаковых значений, заранее решите: усреднять (RANK.AVG), давать одинаковый верхний ранг (RANK.EQ) или вводить tie-breaker.
  • «Для визуализации используй сводные таблицы»: если нужно агрегировать ранги по категориям, сводная таблица часто удобнее.

Шаблон и пошаговый Playbook для внедрения RANK в отчёт

  1. Определите столбец с числовыми значениями.
  2. Уберите/преобразуйте нечисловые значения: ISNUMBER, VALUE или фильтруйте.
  3. Выберите стратегию обработки дубликатов (EQ или AVG).
  4. Вставьте формулу в первую строку с относительной ссылкой на значение и абсолютной ссылкой на диапазон.
  5. Протяните формулу или примените ARRAYFORMULA для автоматического заполнения.
  6. Проверка: создайте тестовые случаи с уникальными и дублированными значениями, сравните ожидаемый ранг со значением формулы.
  7. Зафиксируйте диапазон или используйте именованный диапазон/динамический диапазон.
  8. Документируйте решение рядом с формулой (комментарий к ячейке) — почему выбран RANK.EQ или RANK.AVG.

Пример формулы с ARRAYFORMULA (для автоматического применения на весь столбец):

=ARRAYFORMULA(IF(ISNUMBER(B2:B), RANK.EQ(B2:B, FILTER(B2:B, B2:B<>"")), ""))

Эта формула применяет RANK.EQ ко всем числовым ячейкам столбца B и оставляет пустые строки без ранга.

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

  • Для тестового набора (с уникальными и дублированными значениями) результаты RANK.EQ совпадают с ожидаемыми верхними рангами.
  • При использовании RANK.AVG значения для дубликатов возвращают средние позиции.
  • Автозаполнение не сдвигает диапазон (используются абсолютные ссылки или динамический диапазон).
  • Нет ошибок #N/A в ячейках ранга при корректных числах в исходных данных.

Тестовые случаи и приёмочные примеры

  1. Набор без дубликатов: [90, 85, 78, 67] — ранги по убыванию: [1,2,3,4].
  2. Набор с двумя одинаковыми значениями: [90, 90, 85, 78] — RANK.EQ: [1,1,3,4], RANK.AVG: [1.5,1.5,3,4].
  3. Набор с пустыми строками: [90, ,85,78] — ранги только для чисел, пустая ячейка остаётся пустой.
  4. Массив в формуле: =RANK(67, {66,88,75,86,67,65,81,90,71}) — ожидаемый ранг 6 (для примера, проверьте последовательность).

Проверьте каждый случай вручную и автоматическими тестами (если таблица подключена к системам тестирования).

Совместимость и миграция Excel ↔ Google Sheets

  • RANK.EQ поддерживается в современных версиях Excel и Google Sheets — лучший выбор при переносе файлов.
  • RANK (без .EQ) — устаревшая нотация в некоторых средах; при совместной работе используйте RANK.EQ для предсказуемости.
  • RANK.AVG работает одинаково в большинстве случаев, но тестируйте крайние случаи с форматами чисел и локализацией (запятые/точки).

Совет по локали: при миграции таблиц между странами проверьте формат чисел (десятичный разделитель) и формат дат, если tie-breaker использует дату/время.

Проверка безопасности и приватности

Функции RANK работают локально в документе и не отправляют данные извне. Тем не менее, при работе с персональными данными (оценки студентов, зарплаты) убедитесь, что доступ к таблице ограничен и соблюдены правила конфиденциальности вашей организации.

Небольшой набор готовых сниппетов (cheat sheet)

  • Ранг по убыванию (типично):
=RANK.EQ(B2, $B$2:$B$100)
  • Ранг по возрастанию (меньшее = 1):
=RANK.EQ(B2, $B$2:$B$100, 1)
  • Ранг с усреднением дубликатов:
=RANK.AVG(B2, $B$2:$B$100)
  • Автоматический ранг для всего столбца (с фильтром пустых):
=ARRAYFORMULA(IF(LEN(B2:B), RANK.EQ(B2:B, FILTER(B2:B, LEN(B2:B))), ""))

Короткий словарь (1 строка)

  • Ранг — позиция элемента в упорядоченном наборе; tie-breaker — правило разрыва равенств; абсолютная ссылка — $A$1.

Итоги

RANK, RANK.EQ и RANK.AVG — простые, но мощные инструменты для ранжирования данных в Google Sheets. Выбирайте RANK.EQ для совместимости с Excel, RANK.AVG если вам важны средние позиции при дублях, и всегда используйте абсолютные диапазоны при автозаполнении. Тестируйте на контрольных наборах и документируйте выбранную стратегию обработки дубликатов.

Важно: если задача выходит за рамки «одночисловой колонки» (процентный ранг, tie-breakers, динамические таблицы), комбинируйте RANK с другими функциями: PERCENTRANK, SORT, FILTER, ARRAYFORMULA или вспомогательными колонками.

Заметка: практика ускоряет понимание — скопируйте пример таблицы, измените значения и сравните результаты RANK.EQ и RANK.AVG.

Поделиться: 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 — руководство