Введение: почему подсчёт повторяющихся значений важен
Работа с большими массивами данных в Microsoft Excel часто требует анализа частотности значений. Например, вам может понадобиться узнать, сколько раз в отчёте встречается название конкретного продукта, сколько сотрудников имеют одинаковую должность или сколько заказов пришло из одного региона. Вручную пересчитывать такие данные неэффективно — особенно если речь идёт о тысячах строк.
К счастью, в Excel есть несколько инструментов для автоматического подсчёта ячеек с одинаковым значением: от простых функций вроде СЧЁТЕСЛИ до продвинутых методов с использованием СЧЁТЕСЛИМН, СУММПРОИЗВ или даже Power Query. В этой статье мы разберём все актуальные способы с учётом версий Excel 2010–2023 и Office 365, а также покажем, как избежать типичных ошибок при работе с повторяющимися данными.
Способ 1: функция СЧЁТЕСЛИ — базовый метод для одного критерия
Функция СЧЁТЕСЛИ (англ. COUNTIF) — самый простой и универсальный инструмент для подсчёта ячеек с заданным значением. Она работает в всех версиях Excel, включая Excel Online и мобильные приложения. Синтаксис функции:
=СЧЁТЕСЛИ(диапазон; критерий)
Где:
- 📌 диапазон — столбец или строка, в которой нужно искать совпадения (например,
A2:A100). - 🔍 критерий — значение, которое вы ищете (может быть текстом, числом или ссылкой на ячейку).
Пример: чтобы посчитать, сколько раз в столбце B встречается слово "Да", используйте:
=СЧЁТЕСЛИ(B2:B50; "Да")
⚠️ Внимание: ФункцияСЧЁТЕСЛИнечувствительна к регистру. То есть "да", "Да" и "ДА" будут восприняты как одно значение. Если важен регистр, используйте комбинациюСУММПРОИЗВсТОЧНОЕ(см. Способ 4).
Способ 2: СЧЁТЕСЛИМН — подсчёт по нескольким условиям
Если вам нужно посчитать ячейки, соответствующие нескольким критериям одновременно, используйте функцию СЧЁТЕСЛИМН (англ. COUNTIFS). Она появилась в Excel 2007 и доступна во всех последующих версиях. Синтаксис:
=СЧЁТЕСЛИМН(диапазон1; критерий1; [диапазон2; критерий2]; ...)
Пример: подсчитаем, сколько заказов со статусом "Выполнен" пришло от клиента "Иванов":
=СЧЁТЕСЛИМН(B2:B100; "Иванов"; C2:C100; "Выполнен")
| Столбец B (Клиент) | Столбец C (Статус) | Результат |
|---|---|---|
| Иванов | Выполнен | ✅ Подходит |
| Петров | Выполнен | ❌ Не подходит |
| Иванов | Отменён | ❌ Не подходит |
Функция вернёт количество строк, где одновременно выполняются оба условия. Максимальное количество пар "диапазон-критерий" — 127 (в Excel 365).
Способ 3: Сводные таблицы — визуализация частотности
Если вам нужно не только посчитать повторяющиеся значения, но и визуализировать их распределение, сводные таблицы — идеальный инструмент. Они автоматически группируют данные и показывают количество уникальных значений.
Инструкция:
- Выделите исходный диапазон данных (включая заголовки столбцов).
- Перейдите на вкладку
Вставка→Сводная таблица. - В открывшемся окне выберите, куда поместить таблицу (на новый лист или в текущий).
- В области
Строкиперетащите столбец, по которому нужно посчитать повторения (например, "Название продукта"). - В область
Значенияперетащите тот же столбец — Excel автоматически посчитает количество вхождений.
Убедитесь, что в данных нет пустых строк|Проверьте, что заголовки столбцов уникальны|Удалите объединённые ячейки (они могут нарушить работу сводной)|Преобразуйте диапазон в таблицу (Ctrl+T) для автоматического обновления-->
Преимущество сводных таблиц — интерактивность: вы можете добавлять фильтры, группировать данные по датам или числовым диапазонам, а также обновлять результаты одним кликом при изменении исходных данных.
⚠️ Внимание: Если в исходных данных есть скрытые строки или столбцы, сводная таблица их проигнорирует. Перед созданием сводной удалите фильтры или покажите все данные (Главная → Формат → Скрыть/отобразить → Отобразить строки).
Способ 4: СУММПРОИЗВ + ТОЧНОЕ — учёт регистра и точные совпадения
Как упоминалось ранее, СЧЁТЕСЛИ игнорирует регистр символов. Если вам нужно посчитать ячейки с точным совпадением (включая заглавные/строчные буквы), используйте комбинацию функций СУММПРОИЗВ и ТОЧНОЕ:
=СУММПРОИЗВ(--(ТОЧНОЕ(диапазон; критерий)))
Пример: подсчёт ячеек со словом "Да" (только с большой буквы) в диапазоне A2:A10:
=СУММПРОИЗВ(--(ТОЧНОЕ(A2:A10; "Да")))
Разберём формулу:
- 🔄
ТОЧНОЕ(A2:A10; "Да")возвращает массивИСТИНА/ЛОЖЬдля каждой ячейки. - 📉 Двойной минус
--преобразуетИСТИНАв1, аЛОЖЬв0. - ➕
СУММПРОИЗВсуммирует все единицы, давая итоговое количество совпадений.
Почему не работает формула массива?
Если после ввода формулы вы видите ошибку или неверный результат, убедитесь, что вы подтвердили её как формулу массива:
- В Excel 2019 и старше: просто нажмите Enter.
- В Excel 2016 и младше: завершите ввод комбинацией Ctrl+Shift+Enter. Формула автоматически обернётся в фигурные скобки {...}.
Способ 5: Условное форматирование — визуальный анализ повторений
Если вам нужно быстро найти и выделить повторяющиеся значения, а не считать их, используйте Условное форматирование. Этот метод не даст точного числа, но поможет визуально оценить распределение данных.
Инструкция:
- Выделите диапазон для анализа (например,
B2:B100). - Перейдите на вкладку
Главная→Условное форматирование→Правила выделения ячеек→Повторяющиеся значения. - В открывшемся окне выберите формат для дубликатов (например, светло-красную заливку).
- Нажмите
ОК— все повторяющиеся значения будут выделены.
Чтобы посчитать количество выделенных ячеек, используйте фильтр по цвету:
- Выделите заголовок столбца.
- Нажмите
Данные→Фильтр. - Откройте выпадающий список фильтра и выберите
Фильтр по цвету→ нужный цвет заливки. - Количество оставшихся строк после фильтрации — это количество дубликатов.
Способ 6: Power Query — обработка больших массивов данных
Для работы с очень большими таблицами (десятки тысяч строк) или если данные нужно предварительно очистить, используйте Power Query (доступен в Excel 2016+ и Excel 365). Этот инструмент позволяет группировать данные и считать количество вхождений без формул.
Пошаговая инструкция:
- Выделите исходную таблицу и перейдите на вкладку
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - В открывшемся редакторе Power Query выделите столбец, по которому нужно посчитать повторения.
- На вкладке
ПреобразованиенажмитеГруппировка. - В окне группировки выберите:
- 📌
Группировать по: ваш столбец. - 🔢
Новое имя столбца: например, "Количество". - 📊
Операция:Количество строк.
ОК → Закрыть и загрузить.Результат — новая таблица с уникальными значениями и их количеством. Преимущество Power Query: вы можете обновлять данные одним кликом (Данные → Обновить все), не переписывая формулы.
Способ 7: VBA-макрос — автоматизация для продвинутых пользователей
Если вам нужно регулярно обрабатывать данные по одному шаблону, напишите простой макрос на VBA. Например, этот код посчитает количество вхождений заданного значения в выбранном диапазоне:
Sub CountOccurrences()
Dim searchRange As Range
Dim searchValue As Variant
Dim count As Long
' Задаём диапазон и значение для поиска
Set searchRange = Selection
searchValue = InputBox("Введите значение для подсчёта:", "Поиск повторений")
' Подсчёт вхождений
count = Application.WorksheetFunction.CountIf(searchRange, searchValue)
' Вывод результата
MsgBox "Значение """ & searchValue & """ встречается " & count & " раз(а).", vbInformation
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в Excel, выделите диапазон и запустите макрос (
Alt + F8→ выберитеCountOccurrences→Выполнить). - Введите искомое значение в появившемся окне.
- 🔍 В критерии есть лишние пробелы (попробуйте
=СЧЁТЕСЛИ(A2:A10; СЖПРОБЕЛЫ(" ваше значение "))). - 📏 Диапазон указан неверно (проверьте, что он включает все нужные ячейки).
- 📝 Значение в ячейке выглядит одинаково, но хранится по-разному (например, число "10" и текст "10"). Используйте
ТИПдля проверки. =COUNTIF(диапазон; критерий)— аналогСЧЁТЕСЛИ.=COUNTIFS(диапазон1; критерий1; диапазон2; критерий2)— аналогСЧЁТЕСЛИМН.- Для точного совпадения с учётом регистра используйте
=SUMPRODUCT(--(EXACT(диапазон; критерий))).
⚠️ Внимание: Макросы работают только в файлах с расширением.xlsm(с поддержкой макросов). Если вы сохраните файл как.xlsx, код будет удалён. Также убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов).
FAQ: ответы на частые вопросы
Можно ли посчитать количество уникальных значений в Excel?
Да, для этого используйте функцию =СЧЁТЕСЛИ(диапазон; диапазон) (в английской версии — =SUMPRODUCT(1/COUNTIF(range; range))). Или проще: преобразуйте диапазон в таблицу и используйте сводную таблицу с группировкой по нужному столбцу — количество уникальных значений будет равно количеству строк в сводной.
Почему СЧЁТЕСЛИ возвращает 0, хотя значение есть в таблице?
Вероятные причины:
Как посчитать количество ячеек с ошибками (#Н/Д, #ЗНАЧ! и т.д.)?
Используйте функцию =СЧЁТЕСЛИ(диапазон; "#Н/Д") для конкретной ошибки или комбинацию:
=СУММПРОИЗВ(--(ЕОШ(диапазон)))
Эта формула вернёт количество всех ошибочных ячеек в диапазоне.
Можно ли посчитать повторения в Google Таблицах?
Да, в Google Sheets работают те же функции:
Также в Google Таблицах есть функция =UNIQUE для извлечения уникальных значений.
Как посчитать количество ячеек с формулами (не значениями)?
Excel не предоставляет прямой функции для этого, но можно использовать VBA:
Function CountFormulas(rng As Range) As Long
Dim cell As Range
For Each cell In rng
If cell.HasFormula Then CountFormulas = CountFormulas + 1
Next cell
End Function
После добавления этого кода в модуль используйте в ячейке как обычную функцию: =CountFormulas(A1:A100).