Процентили — это статистический инструмент, который делит упорядоченный набор данных на 100 равных частей. Если вы работаете с большими массивами чисел в Microsoft Excel или Google Sheets, умение правильно рассчитывать процентили поможет выявить выбросы, оценить распределение значений или построить рейтинговые системы. Например, в HR-аналитике 90-й процентиль зарплат показывает пороговое значение, выше которого зарабатывают только 10% сотрудников, а в финансах 25-й процентиль помогает определить квартиль доходности портфеля.
Многие пользователи ошибочно считают, что для расчёта процентилей достаточно функции =ПЕРСЕНТИЛЬ(). Однако в реальности существует 5 различных методов интерполяции, которые дают разные результаты на одних и тех же данных. Более того, в Excel 2010 и новее появилась функция =ПЕРСЕНТИЛЬ.ВКЛ(), которая работает иначе, чем её предшественник. Если вы не учитываете эти нюансы, ваши выводы могут быть искажены — особенно при работе с небольшими выборками или неравномерными распределениями.
В этой статье мы разберём:
- 🔢 Топ-3 функции Excel для расчёта процентилей (с примерами кода)
- 📊 Какой метод интерполяции выбрать для вашей задачи (сравнительная таблица)
- ⚠️ Типичные ошибки, из-за которых процентили считаются неправильно
- 📈 Практические кейсы: зарплаты, тесты, финансовые показатели
1. Базовые функции Excel для процентилей: =ПЕРСЕНТИЛЬ() vs =ПЕРСЕНТИЛЬ.ВКЛ()
В Excel есть две основные функции для расчёта процентилей, и их отличие кроется в методе интерполяции. Функция =ПЕРСЕНТИЛЬ(массив; k) (англ. =PERCENTILE) использует алгоритм, основанный на формуле:
P = (n − 1) × k + 1, где n — количество элементов в массиве, а k — желаемый процентиль (от 0 до 1). Эта функция доступна во всех версиях Excel, но в Excel 2010 и новее её дополнила =ПЕРСЕНТИЛЬ.ВКЛ() (англ. =PERCENTILE.INC), которая работает по другой логике:
P = (n + 1) × k.
Разница кажется незначительной, но на практике она ведёт к разным результатам. Например, для массива {10, 20, 30, 40, 50}:
- 🔹
=ПЕРСЕНТИЛЬ(A1:A5; 0,25)вернёт 17,5 (25-й процентиль) - 🔹
=ПЕРСЕНТИЛЬ.ВКЛ(A1:A5; 0,25)вернёт 20
Кроме того, в Excel 2010+ появилась функция вернёт 30 (медиана без учёта крайних значений), тогда как классическая медиана была бы 30 (но для чётного количества элементов метод differed). Какой функцией пользоваться? Это зависит от вашей задачи:
=ПЕРСЕНТИЛЬ.ИСКЛ() (англ. =PERCENTILE.EXC), которая исключает минимальное и максимальное значения из расчёта. Она полезна, если вам нужно проигнорировать выбросы. Например, для того же массива {10, 20, 30, 40, 50}:
=ПЕРСЕНТИЛЬ.ИСКЛ(A1:A5; 0,5)
подходит =ПЕРСЕНТИЛЬ.ВКЛ().=ПЕРСЕНТИЛЬ().=ПЕРСЕНТИЛЬ.ИСКЛ().
2. Ручное вычисление процентилей: когда формулы не подходят
Иногда стандартные функции Excel не справляются с задачей. Например, если вам нужно рассчитать процентиль для несортированных данных или применить кастомный метод интерполяции. В таких случаях приходится писать формулу вручную. Рассмотрим пошаговый алгоритм:
Допустим, у нас есть массив данных в столбце A1:A10, и мы хотим найти 75-й процентиль. Порядок действий:
- Отсортируйте данные по возрастанию (используйте
Сортировка от минимального к максимальному). - Рассчитайте позицию процентиля по формуле:
Позиция = (n − 1) × k + 1, где
n = 10(количество элементов),k = 0,75. - Если позиция — целое число, процентиль равен значению в этой строке.
- Если позиция дробная (например, 7,75), используйте линейную интерполяцию между соседними значениями.
Для нашего примера:
=ИНДЕКС(A1:A10; 7,75) → требует ручной интерполяции между 7-й и 8-й строками.
Чтобы автоматизировать интерполяцию, используйте комбинацию функций:
=ИНДЕКС(A1:A10; ЦЕЛОЕ(7,75)) + (7,75 - ЦЕЛОЕ(7,75)) * (ИНДЕКС(A1:A10; ЦЕЛОЕ(7,75)+1) - ИНДЕКС(A1:A10; ЦЕЛОЕ(7,75)))
Такой подход даёт больше контроля над расчётами, но требует аккуратности. Например, если в данных есть повторяющиеся значения, интерполяция может дать неожиданный результат. Для упрощения можно использовать надстройку Analysis ToolPak (вкладка Данные → Анализ данных → Описательная статистика), которая автоматически рассчитывает процентили по методу ПЕРСЕНТИЛЬ.ВКЛ().
Данные отсортированы по возрастанию|
Проверено отсутствие пустых ячеек|
Формула позиций адаптирована под размер выборки|
Учтена интерполяция для дробных позиций-->
3. Сравнение методов интерполяции: какая формула точнее?
В статистике существует 9 стандартных методов расчёта процентилей (гиды NIST и Hyndman-Fan описывают их подробно). Excel использует только два из них:
- 📉 Метод 7 (Excel ПЕРСЕНТИЛЬ): P = (n − 1) × k + 1
- 📈 Метод 8 (Excel ПЕРСЕНТИЛЬ.ВКЛ): P = (n + 1) × k
Но какие ещё варианты бывают и когда их применять?
В таблице ниже сравнены результаты для массива {5, 10, 15, 20, 25, 30} (6 элементов) при расчёте 25-го процентиля:
| Метод | Формула | Результат | Применение |
|---|---|---|---|
Excel ПЕРСЕНТИЛЬ() |
(n−1)×k + 1 | 11,25 | Консервативная оценка |
Excel ПЕРСЕНТИЛЬ.ВКЛ() |
(n+1)×k | 10 | Классический подход |
| Метод Hyndman-Fan (тип 6) | (n+1)×k − 1 + (m − f) | 12,5 | Для больших выборок |
| Метод NIST (тип 2) | (n+1)×k (округление вверх) | 15 | Инженерные расчёты |
Как видно, разброс результатов достигает 45% (от 10 до 15)! Это критично, если процентили используются для:
- 💰 Бонусирования сотрудников (пороговые значения KPI).
- 📉 Оценки рисков в финансах (Value-at-Risk).
- 🏥 Медицинских норм (рост/вес по возрасту).
Если вам нужна максимальная точность, используйте надстройку Real Statistics Resource Pack (бесплатная для Excel), которая поддерживает все 9 методов. Альтернатива — Python с библиотекой scipy.stats, где можно задать тип интерполяции явно:
from scipy.stats import percentileofscore
data = [5, 10, 15, 20, 25, 30]
percentileofscore(data, 12.5, kind='linear') # kind='weak', 'strict' и др.
4. Типичные ошибки при расчёте процентилей и как их избежать
Даже опытные пользователи Excel допускают ошибки при работе с процентилями. Вот топ-5 ловушек, которые искажают результаты:
⚠️ Внимание: Функция=ПЕРСЕНТИЛЬ()в Excel 2007 и старше может давать ошибку#ЧИСЛО!, если значениеkвыходит за пределы[0; 1]. В Excel 2010+ это исправлено, но проверяйте входные данные!
Распространённые ошибки:
- 🚫 Неотсортированные данные: функции
ПЕРСЕНТИЛЬавтоматически не сортируют массив. Если исходные данные в беспорядке, результат будет неверным. Всегда используйте=СОРТ()(в Excel 365) или сортируйте вручную. - 🚫 Пустые ячейки: если в диапазоне есть пустые клетки, Excel игнорирует их, но это может сместить позицию процентиля. Очищайте данные функцией
=ФИЛЬТР()или=ЕНД(). - 🚫 Дробные позиции без интерполяции: если вы используете ручной расчёт и забываете про интерполяцию, процентиль "прилипает" к ближайшему значению, что искажает анализ.
- 🚫 Смешение методов: не пытайтесь сравнивать результаты
ПЕРСЕНТИЛЬ()иПЕРСЕНТИЛЬ.ВКЛ()— они основаны на разных алгоритмах. - 🚫 Игнорирование выбросов: один аномально большой или маленький элемент может сильно сместить процентили. Используйте
=ПЕРСЕНТИЛЬ.ИСКЛ()или предварительную очистку данных.
Пример ошибки: если в массиве {100, 200, 300, 400, 10000} рассчитать 90-й процентиль, =ПЕРСЕНТИЛЬ.ВКЛ() вернёт 10000, хотя интуитивно ожидается значение ближе к 400. Решение — либо исключить выброс, либо использовать =ПЕРСЕНТИЛЬ.ИСКЛ(), который вернёт 400.
Ещё одна ловушка — округление. Если вы округляете процентили до целых чисел (например, для отчётности), это может привести к потере точности. Например, 89,6-й процентиль после округления станет 90-м, что исказит рейтинг. Чтобы избежать этого, используйте формат ячеек с двумя знаками после запятой или функцию
Функции =ПЕРСЕНТИЛЬ() в Excel реализуют только два метода из девяти стандартных, так как они покрывают большинство практических задач. Для специализированных расчётов (например, в метрологии или фармацевтике) используют внешние инструменты, такие как R, Python или STATISTICA, где поддерживаются все варианты интерполяции.=ОКРУГЛ() с большим количеством десятичных знаков.
Почему в Excel нет функции для метода NIST?
5. Практическое применение: процентили в HR, финансах и науке
Процентили — это не абстрактная статистика, а инструмент для решения реальных задач. Рассмотрим 3 кейса с формулами и примерами:
Кейс 1: Анализ зарплат в компании
Допустим, у вас есть данные о зарплатах 50 сотрудников в столбце A1:A50. Вам нужно определить:
- 💵 25-й процентиль (нижняя граница "средней" зарплаты):
=ПЕРСЕНТИЛЬ.ВКЛ(A1:A50; 0,25) - 💵 Медиану (50-й процентиль):
=МЕДИАНА(A1:A50)или=ПЕРСЕНТИЛЬ.ВКЛ(A1:A50; 0,5) - 💵 90-й процентиль (порог для топ-10% сотрудников):
=ПЕРСЕНТИЛЬ.ИСКЛ(A1:A50; 0,9)
Эти значения помогут выстроить зарплатную сетку или выявить дисбаланс между отделами.
Кейс 2: Оценка результатов тестирования
Если у вас есть баллы 200 студентов по тесту (столбец B1:B200), процентили покажут распределение успеваемости:
- 📚 Квартили (25%, 50%, 75%): используйте
=КВАРТИЛЬ.ВКЛ(B1:B200; 1)для Q1,=КВАРТИЛЬ.ВКЛ(B1:B200; 3)для Q3. - 📚 Децили (10%, 20%, ..., 90%):
=ПЕРСЕНТИЛЬ.ВКЛ(B1:B200; 0,1),=ПЕРСЕНТИЛЬ.ВКЛ(B1:B200; 0,2)и т. д.
На основе этих данных можно выделить группы "отстающих" (ниже 25-го процентиля) и "отличников" (выше 75-го).
Кейс 3: Финансовый риск-менеджмент (Value-at-Risk)
В инвестиционном портфеле с доходностями за 100 дней (столбец C1:C100) 5-й процентиль покажет максимальный убыток с вероятностью 95%:
=ПЕРСЕНТИЛЬ.ВКЛ(C1:C100; 0,05)
Это значение (Value-at-Risk, VaR) помогает оценить потенциальные потери. Для консервативной оценки используйте =ПЕРСЕНТИЛЬ.ИСКЛ(), чтобы исключить экстремальные выбросы.
6. Автоматизация: как рассчитать процентили для динамических данных
Если ваши данные обновляются регулярно (например, ежемесячные продажи), ручной расчёт процентилей становится неэффективным. В этом случае поможет автоматизация с помощью:
- 📊 Динамических массивов (в Excel 365):
- 🤖 Макросов VBA.
- 🔄 Power Query.
Пример с динамическим массивом:
Допустим, у вас есть данные в A1:A100, и вы хотите автоматически рассчитывать процентили для любых значений k (заданных в B1:B3):
=ПЕРСЕНТИЛЬ.ВКЛ(A1:A100; B1:B3)
Эта формула вернёт массив из трёх процентилей сразу. Если данные в A1:A100 изменятся, результаты обновятся автоматически.
Для более сложных задач (например, расчёт процентилей по группам) используйте Power Query:
- Импортируйте данные в
Power Query(Данные → Получить данные → Из таблицы/диапазона). - Добавьте столбец с процентилями:
Таблица → Добавить столбец → Пользовательский. - Используйте формулу на языке M:
List.Percentile({[Column1]}, 0.25)
Если вам нужно рассчитать процентили для сводных таблиц, добавьте вычисляемое поле с формулой:
=ПЕРСЕНТИЛЬ.ВКЛ(диапазон_значений; 0,75)
Это позволит анализировать процентили по категориям (например, по регионам или продуктам).
7. Альтернативы Excel: процентили в Google Sheets, Python и R
Если Excel не справляется с вашей задачей (например, нужно обработать миллионы строк), рассмотрите альтернативы:
Google Sheets
Функции аналогичны Excel, но с небольшими отличиями:
- 🔹
=PERCENTILE(range; k)— аналог=ПЕРСЕНТИЛЬ(). - 🔹
=PERCENTILE.INC(range; k)— аналог=ПЕРСЕНТИЛЬ.ВКЛ(). - 🔹
=QUARTILE.INC(range; q)— для квартилей.
В Google Sheets также есть функция =PERCENTRANK(), которая показывает ранг значения в процентах (обратная задача процентилю).
Python (библиотека NumPy/SciPy)
Для больших данных используйте:
import numpy as np
data = [10, 20, 30, 40, 50]
p25 = np.percentile(data, 25) # 25-й процентиль
Для гибкой настройки метода интерполяции:
from scipy.stats import percentileofscore
percentileofscore(data, 30, kind='linear') # kind='weak', 'strict', 'mean'
R
В R процентили рассчитываются функцией quantile() с указанием типа:
data <- c(10, 20, 30, 40, 50)
quantile(data, probs = c(0.25, 0.5, 0.75), type = 7) # тип 7 = метод Excel
Преимущества альтернатив:
- 🚀 Производительность: Python и R справляются с миллионами строк за секунды.
- 🎛️ Гибкость: можно задать любой метод интерполяции.
- 📊 Визуализация: в R и Python легко строить графики распределений с процентилями.
FAQ: Ответы на частые вопросы о процентилях в Excel
🔍 Почему мои процентили не совпадают с данными из статистических программ?
Это связано с разными методами интерполяции. Excel использует методы 7 и 8 (для ПЕРСЕНТИЛЬ и ПЕРСЕНТИЛЬ.ВКЛ соответственно), тогда как R по умолчанию применяет тип 7, а SciPy в Python — линейную интерполяцию. Чтобы результаты совпали, настройте одинаковый метод расчёта в обеих программах.
🔍 Можно ли рассчитать процентили для несортированных данных?
Технически да, но не рекомендуется. Функции ПЕРСЕНТИЛЬ в Excel автоматически не сортируют данные, поэтому если массив не упорядочен, результат будет неверным. Всегда сортируйте данные перед расчётом или используйте формулу массива:
=ПЕРСЕНТИЛЬ.ВКЛ(СОРТ(A1:A100); 0,75)
(в Excel 365).
🔍 Как рассчитать процентили по группам (например, по отделам)?
Используйте сводные таблицы или Power Query:
- Создайте сводную таблицу с полем "Отдел" в строках и суммой/средним в значениях.
- Добавьте вычисляемое поле с формулой
=ПЕРСЕНТИЛЬ.ВКЛ(диапазон_значений_группы; 0,9).
Альтернатива — функция =АГРЕГАТ() с условиями, но это сложнее.
🔍 Почему процентили меняются при добавлении новых данных?
Процентили зависят от размера выборки и распределения данных. Если вы добавляете значения, которые смещают медиану или крайние точки, процентили пересчитываются. Например, добавление одного очень большого числа может сильно увеличить 90-й процентиль. Чтобы стабилизировать результаты, используйте =ПЕРСЕНТИЛЬ.ИСКЛ() или предварительную очистку выбросов.
🔍 Как визуализировать процентили на графике?
Создайте ящик с усами (box plot):
- Рассчитайте Q1 (
=КВАРТИЛЬ.ВКЛ(;1)), медиану (=КВАРТИЛЬ.ВКЛ(;2)), Q3 (=КВАРТИЛЬ.ВКЛ(;3)). - Найдите минимальное и максимальное значения (с учётом выбросов:
=Q1 - 1.5*(Q3-Q1)и=Q3 + 1.5*(Q3-Q1)). - Постройте график "Ящик с усами" в
Вставка → Диаграмма → Статистическая(в Excel 2016+).
Для более гибкой визуализации используйте Power BI или Python (matplotlib или seaborn).