=РАНГ.РВ(B2;$B$2:$B$7) возвращает место B2 среди значений в B2:B7, где наибольшее значение получает ранг 1. Это функция РАНГ.РВ (по-английски RANK.EQ). Чтобы первым шло наименьшее значение, добавьте 1 третьим аргументом: =РАНГ.РВ(B2;$B$2:$B$7;1). В таблицах ниже формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | Sales | Rank (high = 1) | Rank (low = 1) |
| 2 | Ana | 4200 | 3 | 4 |
| 3 | Ben | 3100 | 5 | 2 |
| 4 | Cleo | 5600 | 1 | 6 |
| 5 | Dan | 2800 | 6 | 1 |
| 6 | Eve | 4900 | 2 | 5 |
| 7 | Finn | 3700 | 4 | 3 |
=РАНГ.РВ(B2;$B$2:$B$7)У Cleo самые большие продажи, и она получает ранг 1 в столбце C и 6 в столбце D. Замените продажи Dan на 6000, и все ранги обновятся.
Синтаксис РАНГ.РВ
=RANK.EQ(number, ref, [order])
number(число): значение, которое нужно ранжировать, обычно ячейка в той же строке.ref(ссылка): список, в котором его ранжируют. Сделайте его абсолютным ($B$2:$B$7), чтобы он был одинаковым в каждой строке при протягивании формулы вниз.order(порядок): пропустите его или укажите0для убывания (наибольшее значение это 1), укажите1для возрастания (наименьшее это 1).
Текст и пустые ячейки в ref пропускаются. Если number в ref вообще нет, РАНГ.РВ возвращает #Н/Д (по-английски #N/A).
РАНГ.РВ и РАНГ.СР появились в Excel 2010. Старая функция РАНГ по-прежнему работает и даёт тот же результат, что и РАНГ.РВ; в Google Таблицах есть все три.
Одинаковые значения: РАНГ.РВ и РАНГ.СР
Когда значения равны, РАНГ.РВ даёт им всем один и тот же ранг и пропускает занятые ими места, как в спортивных результатах: два человека на втором месте, затем четвёртое. РАНГ.СР (RANK.AVG) даёт каждому из равных значений среднее мест, которые они делят.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Score | RANK.EQ | RANK.AVG | Unique rank |
| 2 | Ana | 95 | 1 | 1 | 1 |
| 3 | Ben | 88 | 2 | 3 | 2 |
| 4 | Cleo | 88 | 2 | 3 | 3 |
| 5 | Dan | 76 | 5 | 5 | 5 |
| 6 | Eve | 88 | 2 | 3 | 4 |
| 7 | Finn | 64 | 6 | 6 | 6 |
=РАНГ.РВ(B3;$B$2:$B$7)У Ben, Cleo и Eve по 88. РАНГ.РВ даёт всем троим 2, а Dan 5. РАНГ.СР даёт им 3, среднее мест 2, 3 и 4.
Столбец E разбивает равенство по порядку в списке: СЧЁТЕСЛИ($B$2:B2;B2) считает, сколько раз балл встретился до сих пор, сверху до этой строки (при протягивании сдвигается только конец диапазона). Первое 88 прибавляет 0, второе 1, третье 2, поэтому каждый ранг от 1 до 6 встречается ровно один раз. Этот вариант нужен, когда ранг передаётся в поиск вроде «кто на третьем месте», потому что для поиска каждый ранг должен быть уникальным.
Ранг внутри группы
Функции РАНГЕСЛИ нет. Чтобы ранжировать каждого продавца только среди коллег из того же региона, посчитайте, сколько человек в этом регионе продали больше, и прибавьте 1:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | Region | Sales | Rank in region |
| 2 | Ana | North | 4200 | 3 |
| 3 | Ben | South | 3100 | 3 |
| 4 | Cleo | North | 5600 | 1 |
| 5 | Dan | South | 2800 | 4 |
| 6 | Eve | North | 4900 | 2 |
| 7 | Finn | South | 3700 | 1 |
| 8 | Gia | North | 3900 | 4 |
| 9 | Hal | South | 3300 | 2 |
=СЧЁТЕСЛИМН($B$2:$B$9;B2;$C$2:$C$9;">"&C2)+1Cleo лидирует в North, а Finn в South. Замените регион Ana на South: ранги North сомкнутся, а в South появится пятый человек. Для рангов по возрастанию внутри группы используйте "<"&C2. Одинаковые значения ведут себя как в РАНГ.РВ: равные значения делят ранг. Больше о подсчёте с несколькими условиями на странице СЧЁТЕСЛИМН.
Первые 3 по рангу
Столбец рангов отвечает на вопрос «какое место у этого человека»; чтобы ответить «кто на первом месте», найдите ранг поиском. С уникальными рангами в столбце C =ПРОСМОТРX(1;C2:C7;A2:A7) возвращает имя с рангом 1 (в Excel 2019 и более ранних =ИНДЕКС(A2:A7;ПОИСКПОЗ(1;C2:C7;0))). Без столбца рангов =НАИБОЛЬШИЙ(B2:B7;2) сразу возвращает второе по величине значение, а =СОРТПО(A2:B7;B2:B7;-1) выводит всю таблицу от большего к меньшему (Excel 2021 или Microsoft 365; см. СОРТ и СОРТПО).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Sales | Rank | Place | Name | |
| 2 | Ana | 4200 | 3 | 1 | Cleo | |
| 3 | Ben | 3100 | 5 | 2 | Eve | |
| 4 | Cleo | 5600 | 1 | 3 | Ana | |
| 5 | Dan | 2800 | 6 | |||
| 6 | Eve | 4900 | 2 | |||
| 7 | Finn | 3700 | 4 |
=ПРОСМОТРX(E2;$C$2:$C$7;$A$2:$A$7)Столбец C это уникальный ранг из раздела про одинаковые значения, поэтому из-за равенства место никогда не останется пустым. F2, F3 и F4 показывают Cleo, Eve и Ana. Замените продажи Ana на 6000, и она поднимется наверх.
Попробуйте: самый быстрый бегун первым
| A | B | C | |
|---|---|---|---|
| 1 | Runner | Time | Rank |
| 2 | Ana | 58.4 | |
| 3 | Ben | 55.1 | |
| 4 | Cleo | 61.9 | |
| 5 | Dan | 53.7 | |
| 6 | Eve | 57.3 | |
| 7 | Finn | 60.2 |
Ваша очередь: В C2 определите ранг времени Ana из B2 среди всех времён в B2:B7 так, чтобы самое быстрое (наименьшее) время получило ранг 1. Формула протягивается вниз до C7, поэтому используйте абсолютные ссылки на список.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Class | Score | Rank in class |
| 2 | Ana | Red | 81 | |
| 3 | Ben | Red | 92 | |
| 4 | Cleo | Blue | 77 | |
| 5 | Dan | Red | 69 | |
| 6 | Eve | Blue | 95 | |
| 7 | Finn | Red | 85 | |
| 8 | Gia | Blue | 88 |
Ваша очередь: В D2 определите ранг балла Ana только среди учеников её класса (столбец B), наибольший балл получает ранг 1. Формула протягивается вниз до D8.
Частая ошибка: относительный диапазон
Без знаков $ диапазон при каждом протягивании формулы сдвигается на строку вниз, поэтому каждая строка ранжируется по укороченному списку, который начинается с её собственной строки. Ранги выглядят правдоподобно, но неверны:
| A | B | C | |
|---|---|---|---|
| 1 | Name | Sales | Rank |
| 2 | Ana | 4200 | 3 |
| 3 | Ben | 3100 | 4 |
| 4 | Cleo | 5600 | 1 |
| 5 | Dan | 2800 | 3 |
| 6 | Eve | 4900 | 1 |
| 7 | Finn | 3700 | 1 |
=РАНГ.РВ(B4;B4:B9)Щёлкните C4: её диапазон B4:B9, поэтому Cleo сравнивается только с теми, кто стоит от её строки и ниже. Eve показывает ранг 1, хотя Cleo продала больше, а Finn показывает 1, потому что сравнивается только сам с собой. Замените C2 на =RANK.EQ(B2,$B$2:$B$7) (по-русски =РАНГ.РВ(B2;$B$2:$B$7)), и весь столбец исправится. Нажмите F4, когда курсор стоит в диапазоне, чтобы добавить знаки $ (на Mac Cmd+T или Fn+F4); почему так, объясняет страница абсолютные ссылки.
Часто задаваемые вопросы
Как ранжировать числа в Excel?
Используйте =РАНГ.РВ(B2;$B$2:$B$7) и протяните формулу вниз. Наибольшее значение получает ранг 1. Оставьте знаки $ на диапазоне, чтобы он не сдвигался при протягивании.
Как ранжировать от меньшего к большему в Excel?
Добавьте 1 третьим аргументом: =РАНГ.РВ(B2;$B$2:$B$7;1). Так ранжируют время забега, цены и всё, где первым должно идти наименьшее значение.
Чем РАНГ.РВ отличается от РАНГ.СР?
Только одинаковыми значениями. Если два значения делят второе место, РАНГ.РВ даёт обоим 2, а следующему значению 4. РАНГ.СР даёт обоим 2,5, среднее мест 2 и 3.
Как получить ранг без повторов в Excel?
Добавьте нарастающий счётчик значения: =РАНГ.РВ(B2;$B$2:$B$7)+СЧЁТЕСЛИ($B$2:B2;B2)-1. Первое из двух одинаковых значений сохраняет ранг, а второе получает следующий.
Как ранжировать внутри группы в Excel?
Посчитайте значения той же группы, которые больше, и прибавьте 1: =СЧЁТЕСЛИМН($A$2:$A$9;A2;$C$2:$C$9;">"&C2)+1. Функции РАНГЕСЛИ нет.