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

Ранжирование элементов в Excel: RANK.EQ, COUNTIF и SUMPRODUCT

• 8 min read • Excel • Обновлено 21 Nov 2025
Ранжирование в Excel: RANK.EQ, COUNTIF, SUMPRODUCT
Ранжирование в Excel: RANK.EQ, COUNTIF, SUMPRODUCT

Обложка: ранжирование в Excel

Что покрывает статья

  • Краткое сравнение RANK.EQ, RANK и RANK.AVG
  • Примеры использования RANK.EQ на наборе данных
  • Как избежать пропуска номеров при равных значениях (COUNTIF)
  • Как получить «плотный» ранжир (SUMPRODUCT + COUNTIF и альтернативы)
  • Практические сценарии, тесты, контроль качества и рекомендации по совместимости

Основные варианты ранжирования и их смысл

Определения в одну строку:

  • Ранг (rank) — порядковый номер элемента по значению относительно списка.
  • Пропуск номеров — когда одинаковым элементам присваивают одинаковый ранг, а следующий ранг «пропускает» номера (например 1, 1, 3).
  • Плотный ранг (dense rank) — одинаковые элементы получают один ранг, следующий ранг — следующий по порядку без пропусков (1, 1, 2).

RANK.EQ, RANK и RANK.AVG

  • RANK.EQ: современная функция (Excel 2010+). Возвращает ранг, равные значения получают одинаковый ранг; следующий ранг пропускает числа (стандартный «competition» rank).
  • RANK: историческая совместимость (Excel 2007 и ранее). Поведение аналогично RANK.EQ; сегодня рекомендуется RANK.EQ.
  • RANK.AVG: при совпадениях возвращает средний ранг для дубликатов (например два одинаковых значения с позициями 2 и 3 получат rank 2.5).

Схема синтаксиса RANK.EQ

Синтаксис RANK.EQ:

  • number — значение, чей ранг нужно узнать.
  • ref — диапазон сравнения (игнорирует нечисловые значения).
  • order — 0 или опущено для убывания (больше = выше ранг 1), 1 для возрастания.

Пример: ранжирование оценок студентов

Используем набор данных: проценты десяти студентов. Для примера возьмём ячейки B2:B11.

Таблица с примерами оценок студентов

Простейшая формула (ранг по убыванию, лучший — 1):

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

Эту формулу вводят в строку рядом с первой записью и копируют вниз.

Применение RANK.EQ к ячейке B2

После выполнения вы получите место Джеймса (например, 5), то есть его процент — 5-й по величине в массиве.

Результат подсчёта ранга RANK.EQ

Important: если несколько студентов имеют одинаковый процент, RANK.EQ присвоит им одинаковый ранг, а следующему студенту даст ранг со «скачком» (например 4, 4, 6).

RANK.EQ + COUNTIF — убрать пропуски, но сделать ранги уникальными

Если вы примените формулу

=RANK.EQ(B2,$B$2:$B$11,0)+COUNTIF($B$2:B2,B2)-1

то пропуск номеров исчезнет — ряды будут подряд 1,2,3… — однако одинаковые значения получат разные ранги в порядке появления. То есть два равных процента, которые логически должны иметь одинаковый ранг, получат разные (например 4 и 5).

Применение RANK.EQ с COUNTIF

Когда это полезно: если вам нужно дать уникальные позиции (например при распределении мест с раздельными наградами, где нельзя иметь две одинаковых позиции).

Когда это не подходит: если принципиально важно, чтобы одинаковые значения делили один и тот же ранг.

SUMPRODUCT + COUNTIF — плотный ранг без пропусков

Чтобы получить одинаковые ранги для равных значений и при этом избежать пропусков в последовательности (плотный ранг), используйте формулу на основе SUMPRODUCT и COUNTIF.

Пример плотного ранга (спад по убыванию — лучший 1):

=SUMPRODUCT(--($B$2:$B$11>B2))+1

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

Альтернативная версия, учитывающая подсчёт уникальных значений (иногда используется для больших наборов или текстов):

=SUMPRODUCT( (B2<$B$2:$B$11)/COUNTIF($B$2:$B$11,$B$2:$B$11) )+1

Разбор формулы шаг за шагом:

  • SUMPRODUCT собирает массивы и суммирует их. Логическое сравнение (B2<$B$2:$B$11) даёт массив TRUE/FALSE; приведённый к числу будет 1 или 0.
  • Деление на COUNTIF(…) распределяет вклад равных значений таким образом, чтобы корректно считать категории, а не отдельные повторения.
  • Прибавляем 1, чтобы ранжирование начиналось с 1.

Формула SUMPRODUCT с COUNTIF

Практические замечания:

  • Для ранжирования в порядке возрастания замените знак > на <.
  • Если в диапазоне содержатся пустые или нечисловые ячейки, приведите диапазон к чистым числам или используйте условие ISNUMBER.

Использование SUMPRODUCT с COUNTIF для плотного ранжирования

Сортировка и представление результатов

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

Сортировка данных по возрастанию на вкладке Данные

Сравните три подхода (RANK.EQ, RANK.EQ+COUNTIF, SUMPRODUCT+COUNTIF) в соседних колонках, чтобы выбрать тот, что соответствует требованиям бизнес-логики.

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

  • Power Query: импортируйте таблицу в Power Query и используйте группировку/индексацию, чтобы получить плотные ранги (подходит для больших наборов и повторяемых задач).
  • Пивот-таблицы: для агрегации и ранжирования по группам можно создать сводную таблицу и использовать поля ранжирования (в некоторых версиях через вычисляемые поля или сортировку значений).
  • Формулы Excel 365: функции SORT, UNIQUE и SEQUENCE совместно могут дать гибкие варианты ранжирования и нумерации уникальных значений.
  • VBA: если вам нужна полностью автоматизированная логика ранжирования с дополнительной обработкой, используйте макросы.

Когда какой метод выбирать — эвристика

  • Нужны уникальные места (никакой равенства): RANK.EQ + COUNTIF.
  • Нужен стандартный «соревновательный» ранг (duplicates имеют одинаковый ранг, следующий пропускает номера): RANK.EQ.
  • Нужен плотный ранг (dense): SUMPRODUCT-методы или Power Query.
  • Большие таблицы и повторяемые процессы: Power Query или VBA для скорости и поддержки.
  • Excel 365 с динамическими массивами: используйте UNIQUE/SORT для предварительной обработки перед ранжированием.

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

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

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

Примеры тестов:

  1. Набор [90, 85, 85, 80] — ожидаемые плотные ранги: [1,2,2,3].
  2. Набор [5, 5, 5] — плотные ранги: [1,1,1].
  3. Набор с пустыми ячейками и текстом — формула не падает с ошибкой; ранг считается только для чисел.

Чек-лист ролей (учитель, аналитик, администратор)

Учитель:

  • Проверить, что одинаковые оценки получают одинаковые ранги (если это важно для журнала).
  • Выбрать плотный ранг, если нужно присваивать одинаковые места без пропусков.
  • Зафиксировать диапазоны с помощью $ и протестировать добавление новых строк.

Аналитик:

  • Выбрать метод в зависимости от задачи: плотный или конкурентный ранг.
  • Если данные изменяются часто — использовать Power Query для воспроизводимости.
  • Убедиться, что формулы корректно работают с отсутствующими/NULL значениями.

Администратор таблицы:

  • Документировать используемую формулу в отдельной ячейке/примечании.
  • При совместной работе учитывать версию Excel у коллег (RANK может отсутствовать в старых версиях).

Совместимость и локализация

  • RANK.EQ и RANK.AVG доступны в Excel 2010 и новее.
  • В Excel 2007 и старше используется RANK (совместимость).
  • В Excel 365 доступны динамические массивы; некоторые шаблоны ранжирования можно переписать с использованием UNIQUE и SORT.
  • Локаль: если у вас в системе разделитель дробной части — запятая, используйте локальный формат в числовых данных; формулы работают одинаково, но отображение чисел может отличаться.

Примеры готовых формул (шпаргалка)

  • Классический ранг (лучшее = 1, допускает пропуски при дубликатах):
=RANK.EQ(B2,$B$2:$B$11,0)
  • Уникальные ранги по порядку появления (нет повторов):
=RANK.EQ(B2,$B$2:$B$11,0)+COUNTIF($B$2:B2,B2)-1
  • Плотный ранг (duplicates — один ранг, последовательность без пропусков):
=SUMPRODUCT(--($B$2:$B$11>B2))+1
  • Плотный ранг (альтернативная версия с COUNTIF для устойчивости):
=SUMPRODUCT((B2<$B$2:$B$11)/COUNTIF($B$2:$B$11,$B$2:$B$11))+1
  • Плотный ранг по возрастанию (меньшее значение = 1):
=SUMPRODUCT(--($B$2:$B$11

Important: при использовании формул на больших диапазонах SUMPRODUCT может быть медленнее; в таком случае рассмотрите Power Query или вспомогательные столбцы.

Ошибки и кейсы, когда методы не работают

  • SUMPRODUCT работает медленно на десятках тысяч строк — переходите на Power Query.
  • Если диапазон содержит текстовые представления чисел, формула может считать их как текст — приведите данные к числовому формату.
  • COUNTIF и сравнения нечувствительны к точностям плавающей точки; при вычислениях с плавающей точкой возможно значение, близкое к другому, не будет считаться равным. Решение: округление (ROUND).

Рекомендации по оформлению и документированию

  • Добавьте комментарий рядом с формулой, описывающий выбранную логику ранжирования (плотный/конкурентный/уникальный).
  • Зафиксируйте диапазоны с $ или используйте именованные диапазоны для удобства.
  • Проведите контрольные тесты на небольшом наборе данных перед развёртыванием на реальный файл.

Быстрая методика внедрения (мини-SOP)

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

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

  • Для быстрого ранжирования используйте RANK.EQ.
  • Если дубликаты допустимы и должны иметь одинаковый ранг без пропусков — применяйте SUMPRODUCT (или Power Query для больших данных).
  • RANK.EQ+COUNTIF полезен, когда вам нужны уникальные позиции.
  • Выбор зависит от бизнес-правил: важно заранее определить требование к обработке совпадающих значений.

Summary:

  • RANK.EQ даёт «соревновательный» ранг и доступен в Excel 2010+.
  • COUNTIF помогает делать ранги уникальными, но это не для случаев, где равенство должно означать одинаковый ранг.
  • SUMPRODUCT позволяет получить плотный ранг — одинаковые значения, последовательные номера.

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

Поделиться: 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 быстро