Мода — это значение, которое чаще всего встречается в наборе данных. В статистике её используют для анализа распределений, в бизнесе — для выявления самых популярных товаров, а в повседневных расчётах — чтобы быстро определить типичное значение. В Microsoft Excel найти моду можно несколькими способами: от элементарной функции МОДА.ОДН до сложных формул массива для обработки нестандартных случаев.
Многие пользователи ошибочно путают моду с медианой или средним значением. Если медиана делит упорядоченный ряд пополам, а среднее — это арифметическая середина всех чисел, то мода показывает самое "популярное" значение. Например, в ряду 3, 5, 5, 7, 8, 8, 8, 10 модой будет 8, так как оно встречается чаще остальных. В этой статье разберём все актуальные методы поиска моды в Excel — от базовых до профессиональных, с учётом особенностей разных версий программы (2010–2026).
1. Базовый метод: функция МОДА.ОДН для одного результата
Самый простой способ найти моду — использовать встроенную функцию МОДА.ОДН (в английской версии — MODE.SNGL). Она возвращает одно наиболее часто встречающееся значение в диапазоне. Функция появилась в Excel 2010 и работает во всех последующих версиях, включая Excel 365.
Синтаксис функции:
=МОДА.ОДН(число1; [число2]; ...)
Где число1 — обязательный аргумент (может быть числом, ссылкой на ячейку или диапазоном), а [число2] — дополнительные аргументы (до 255).
Пример использования:
- 📌 Введите в ячейку
=МОДА.ОДН(A1:A10), чтобы найти моду в диапазонеA1:A10. - 📌 Для нескольких несвязанных диапазонов:
=МОДА.ОДН(A1:A10; C1:C5; E2). - 📌 Если в данных несколько мод с одинаковой частотой, функция вернёт первую встреченную (в порядке сортировки).
⚠️ Внимание: ФункцияМОДА.ОДНигнорирует пустые ячейки и текстовые значения, но учитывает нули. Если в диапазоне нет повторяющихся чисел, она вернёт ошибку#Н/Д.
Для наглядности рассмотрим пример с данными о продажах обуви по размерам:
| Размер обуви | Количество продаж |
|---|---|
| 36 | 15 |
| 37 | 22 |
| 38 | 30 |
| 39 | 30 |
| 40 | 18 |
Формула =МОДА.ОДН(B2:B6) вернёт 30, так как это значение встречается чаще остальных (для размеров 38 и 39). Однако если нужно получить оба размера, потребуется другой метод (см. раздел 3).
2. Функция МОДА.НСК для нескольких мод (Excel 2013 и новее)
Если в вашем наборе данных несколько мод (например, два значения встречаются одинаково часто), функция МОДА.ОДН вернёт только первую. Для таких случаев в Excel 2013 и новее добавили функцию МОДА.НСК (англ. MODE.MULT). Она возвращает вертикальный массив всех мод.
Синтаксис идентичен:
=МОДА.НСК(число1; [число2]; ...)
Особенности работы:
- 🔢 Результат отображается в нескольких ячейках как динамический массив (в Excel 365 автоматически "проливается" вниз).
- 📊 В старых версиях (2013–2019) нужно выделять диапазон ячеек для вывода и нажимать
Ctrl+Shift+Enter(формула массива). - 🚫 Если мод нет (все значения уникальны), функция вернёт ошибку
#Н/Д.
Пример для данных из предыдущей таблицы:
=МОДА.НСК(B2:B6)
Вернёт два значения: 30 и 30 (так как оба размера 38 и 39 имеют одинаковую частоту). Чтобы получить уникальные моды, потребуется дополнительная обработка (см. раздел 4).
3. Поиск моды с помощью функции ЧАСТОТА + МАКС
Для пользователей Excel 2010 или тех, кто работает с нечисловыми данными (например, текстовыми категориями), подойдёт комбинация функций ЧАСТОТА и МАКС. Этот метод требует предварительной подготовки, но универсален.
Алгоритм действий:
- Создайте вспомогательный столбец с уникальными значениями (используйте
УНИКв Excel 365 илиРасширенный фильтрв старых версиях). - Рядом подсчитайте частоту каждого значения с помощью
СЧЁТЕСЛИ. - Найдите максимальную частоту функцией
МАКС. - Отфильтруйте значения с этой частотой.
Пример для текстового массива (например, список городов):
| Город | Частота |
|---|---|
| Москва | =СЧЁТЕСЛИ(A:A; A2) |
| Санкт-Петербург | =СЧЁТЕСЛИ(A:A; A3) |
| Новосибирск | =СЧЁТЕСЛИ(A:A; A4) |
Затем найдите максимум в столбце "Частота" и используйте ФИЛЬТР (в Excel 365) или ПРОСМОТР для извлечения моды.
⚠️ Внимание: Если в данных есть пробелы или регистровые различия (например, "Москва" и "москва"),СЧЁТЕСЛИпосчитает их как разные значения. ИспользуйтеСЖПРОБЕЛЫиПРОПИСНдля нормализации.
Удалите лишние пробелы функцией СЖПРОБЕЛЫ
Приведите текст к единому регистру (ПРОПИСН или СТРОЧН)
Удалите пустые ячейки
Проверьте данные на опечатки-->
4. Продвинутый метод: формулы массива для сложных случаев
Когда нужно найти моду с учётом условий (например, в отфильтрованном диапазоне) или обработать данные с несколькими критериями, поможет формула массива. Рассмотрим два сценария:
Сценарий 1: Найти моду в диапазоне, где значения больше заданного порога.
=МОДА.ОДН(ЕСЛИ(A1:A100>50; A1:A100))
В Excel 365 формула работает как динамический массив. В Excel 2019 и старше нужно нажимать Ctrl+Shift+Enter.
Сценарий 2: Найти моду с учётом дополнительного критерия (например, только для определённой категории).
=МОДА.ОДН(ЕСЛИ((A1:A100="Категория1")*(B1:B100>0); B1:B100))
Здесь A1:A100 — столбец с категориями, а B1:B100 — числовые данные.
Критичный нюанс: в формулах массива нельзя использовать целые столбцы (например, A:A) — это приведёт к перегрузке вычислений. Всегда указывайте конкретный диапазон (A1:A1000).
5. Поиск моды в сводных таблицах (для больших данных)
Если вы работаете с тысячами строк, ручной подсчёт частот неэффективен. В таких случаях удобно использовать сводные таблицы:
- Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Вставка → Сводная таблица. - В области "Строки" добавьте столбец с значениями, для которых ищете моду.
- В область "Значения" перетащите тот же столбец (или другой для подсчёта). По умолчанию Excel посчитает сумму — измените её на "Количество".
- Отсортируйте сводную таблицу по убыванию частоты — первое значение будет модой.
Преимущества метода:
- ⚡ Быстро обрабатывает миллионы строк (в отличие от формул).
- 📈 Позволяет анализировать моды по нескольким критериям (например, мода продаж по регионам и категориям).
- 🔄 Легко обновляется при изменении исходных данных.
Пример: если у вас данные о продажах по датам, категориям и суммам, сводная таблица покажет самую популярную категорию за выбранный период.
Как обновить сводную таблицу после изменения данных?
Щёлкните правой кнопкой по сводной таблице → "Обновить" или нажмите Аlt + F5. Чтобы обновление происходило автоматически, перейдите в Параметры сводной таблицы → Данные → Обновлять при открытии файла.
6. Ошибки при поиске моды и как их избежать
Даже в простых расчётах пользователи сталкиваются с ошибками. Рассмотрим типичные проблемы и решения:
| Ошибка | Причина | Решение |
|---|---|---|
#Н/Д | Нет повторяющихся значений | Используйте ЕСЛИОШИБКА(МОДА.ОДН(...); "Нет моды") |
#ЗНАЧ! | В диапазоне есть текст или ошибки | Очистите данные или используйте ЕЧИСЛО для фильтрации |
| Неправильная мода | Данные не нормализованы (пробелы, регистр) | Примените СЖПРОБЕЛЫ и ПРОПИСН |
| Формула не обновляется | Включён ручной режим вычислений | Перейдите в Формулы → Вычисление → Автоматически |
Частая ошибка — путать моду с медианой. Помните:
- 📍 Мода — самое частое значение.
- 📍 Медиана — среднее значение в упорядоченном ряду (
=МЕДИАНА()). - 📍 Среднее — арифметическая середина (
=СРЗНАЧ()).
Если вам нужно найти все три показателя, создайте сводную таблицу или используйте комбинацию функций:
={"Мода"; "Медиана"; "Среднее"; МОДА.ОДН(A1:A100); МЕДИАНА(A1:A100); СРЗНАЧ(A1:A100)}
7. Автоматизация: макрос для поиска моды в больших массивах
Если вы регулярно работаете с большими данными, имеет смысл создать макрос на VBA для поиска моды. Ниже приведён код, который находит все моды в выделенном диапазоне и выводит их в новом листе:
Sub FindMode()
Dim rng As Range, dict As Object
Dim cell As Range, maxCount As Long, modeValues As String
Set dict = CreateObject("Scripting.Dictionary")
Set rng = Selection
' Подсчёт частот
For Each cell In rng
If IsNumeric(cell.Value) Then
If dict.exists(cell.Value) Then
dict(cell.Value) = dict(cell.Value) + 1
Else
dict.Add cell.Value, 1
End If
End If
Next cell
' Поиск максимальной частоты
maxCount = 0
For Each Key In dict.keys
If dict(Key) > maxCount Then maxCount = dict(Key)
Next Key
' Формирование результата
modeValues = ""
For Each Key In dict.keys
If dict(Key) = maxCount Then
modeValues = modeValues & Key & ", "
End If
Next Key
modeValues = Left(modeValues, Len(modeValues) - 2)
' Вывод результата
Sheets.Add
Range("A1").Value = "Мода в выделенном диапазоне:"
Range("A2").Value = modeValues
Range("A3").Value = "Частота:" & maxCount
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с данными и запустите макрос (
F5).
Преимущества макроса:
- 🤖 Работает с миллионами строк (в отличие от формул).
- 📋 Выводит все моды, а не только первую.
- 🔄 Можно модифицировать для учёта дополнительных условий.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате.xlsm(с поддержкой макросов) и разрешите их выполнение вФайл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов.
FAQ: Частые вопросы о поиске моды в Excel
Можно ли найти моду для текстовых данных?
Да, но стандартные функции МОДА.ОДН/МОДА.НСК работают только с числами. Для текста используйте комбинацию СЧЁТЕСЛИ + МАКС (см. раздел 3) или сводные таблицы.
Почему функция МОДА.ОДН возвращает ошибку #Н/Д?
Ошибка появляется, если в диапазоне нет повторяющихся значений (все числа уникальны). Чтобы избежать ошибки, оберните функцию в ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(МОДА.ОДН(A1:A100); "Нет моды")
Как найти моду в Google Таблицах?
В Google Sheets используйте ту же функцию =MODE(A1:A100) (аналог МОДА.ОДН). Для нескольких мод применяйте:
=QUERY(A1:A100; "SELECT A, COUNT(A) GROUP BY A ORDER BY COUNT(A) DESC LIMIT 1"; 1)
Или комбинацию =FILTER(A1:A100; A1:A100=MODE(A1:A100)).
Можно ли найти моду с учётом нескольких условий?
Да, используйте формулы массива. Например, чтобы найти моду в диапазоне B1:B100, где значения в A1:A100 равны "Да", а в C1:C100 больше 100:
=МОДА.ОДН(ЕСЛИ((A1:A100="Да")*(C1:C100>100); B1:B100))
В Excel 365 формула работает автоматически, в старых версиях нажмите Ctrl+Shift+Enter.
Как визуализировать моду на графике?
Постройте гистограмму или точечную диаграмму:
- Выделите данные и вставьте гистограмму (
Вставка → Гистограмма). - Добавьте линию тренда или пометьте столбец с максимальным значением вручную.
- Для точечной диаграммы используйте сводную таблицу с группировкой по значениям и частотой.