Как найти моду чисел в Excel: от простых формул до продвинутых методов

Мода — это значение, которое чаще всего встречается в наборе данных. В статистике её используют для анализа распределений, в бизнесе — для выявления самых популярных товаров, а в повседневных расчётах — чтобы быстро определить типичное значение. В 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).
  • 📌 Если в данных несколько мод с одинаковой частотой, функция вернёт первую встреченную (в порядке сортировки).
⚠️ Внимание: Функция МОДА.ОДН игнорирует пустые ячейки и текстовые значения, но учитывает нули. Если в диапазоне нет повторяющихся чисел, она вернёт ошибку #Н/Д.

Для наглядности рассмотрим пример с данными о продажах обуви по размерам:

Размер обувиКоличество продаж
3615
3722
3830
3930
4018

Формула =МОДА.ОДН(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).

📊 Какую версию Excel вы используете?
Excel 2010
Excel 2013-2019
Excel 365/2021
Другую

3. Поиск моды с помощью функции ЧАСТОТА + МАКС

Для пользователей Excel 2010 или тех, кто работает с нечисловыми данными (например, текстовыми категориями), подойдёт комбинация функций ЧАСТОТА и МАКС. Этот метод требует предварительной подготовки, но универсален.

Алгоритм действий:

  1. Создайте вспомогательный столбец с уникальными значениями (используйте УНИК в Excel 365 или Расширенный фильтр в старых версиях).
  2. Рядом подсчитайте частоту каждого значения с помощью СЧЁТЕСЛИ.
  3. Найдите максимальную частоту функцией МАКС.
  4. Отфильтруйте значения с этой частотой.

Пример для текстового массива (например, список городов):

ГородЧастота
Москва=СЧЁТЕСЛИ(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. Поиск моды в сводных таблицах (для больших данных)

Если вы работаете с тысячами строк, ручной подсчёт частот неэффективен. В таких случаях удобно использовать сводные таблицы:

  1. Выделите исходные данные (включая заголовки).
  2. Перейдите на вкладку Вставка → Сводная таблица.
  3. В области "Строки" добавьте столбец с значениями, для которых ищете моду.
  4. В область "Значения" перетащите тот же столбец (или другой для подсчёта). По умолчанию Excel посчитает сумму — измените её на "Количество".
  5. Отсортируйте сводную таблицу по убыванию частоты — первое значение будет модой.

Преимущества метода:

  • ⚡ Быстро обрабатывает миллионы строк (в отличие от формул).
  • 📈 Позволяет анализировать моды по нескольким критериям (например, мода продаж по регионам и категориям).
  • 🔄 Легко обновляется при изменении исходных данных.

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

Как обновить сводную таблицу после изменения данных?

Щёлкните правой кнопкой по сводной таблице → "Обновить" или нажмите А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

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с данными и запустите макрос (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.

Как визуализировать моду на графике?

Постройте гистограмму или точечную диаграмму:

  1. Выделите данные и вставьте гистограмму (Вставка → Гистограмма).
  2. Добавьте линию тренда или пометьте столбец с максимальным значением вручную.
  3. Для точечной диаграммы используйте сводную таблицу с группировкой по значениям и частотой.