Как посчитать несколько ячеек в Excel: от базовых функций до продвинутых приёмов

Почему подсчёт ячеек в Excel — это не только про сумму

Когда речь заходит о подсчёте данных в Microsoft Excel, большинство пользователей сразу думают о функции СУММ. Но что, если вам нужно узнать не сумму, а количество ячеек, соответствующих определённым критериям? Например, сколько строк содержат продажи выше среднего, сколько сотрудников имеют стаж более 5 лет, или сколько товаров осталось на складе с нулевым остатком? Вот здесь-то и начинается настоящая магия формул.

Excel предлагает более 10 специализированных функций для подсчёта ячеек, каждая из которых решает уникальную задачу. Одни просто считают все непустые ячейки, другие — только числовые, третьи — с учётом нескольких условий одновременно. И если вы до сих пор использовали только СЧЁТ, вы упускаете возможности, которые экономят часы работы. В этой статье разберём все способы — от элементарных до тех, которые знают лишь 5% пользователей.

Важно понимать: выбор функции зависит не только от задачи, но и от типа данных в вашей таблице. Например, подсчёт текстовых значений требует одного подхода, числовых — другого, а дат — третьего. И если перепутать, Excel либо вернёт ошибку, либо (что хуже) даст неверный результат, который вы даже не заметите.

1. Базовый подсчёт: функции СЧЁТ, СЧЁТЗ и СЧИТАТЬПУСТОТЫ

Начнём с азов. Эти три функции покрывают 80% повседневных задач по подсчёту ячеек. Их главное преимущество — простота и скорость работы даже с большими массивами данных (до миллиона строк).

  • 📌 СЧЁТ(диапазон) — считает только ячейки с числами. Игнорирует текст, даты, логические значения (ИСТИНА/ЛОЖЬ) и пустые ячейки.
  • 📌 СЧЁТЗ(диапазон) — считает все непустые ячейки, независимо от типа данных. Подходит для проверки заполненности таблицы.
  • 📌 СЧИТАТЬПУСТОТЫ(диапазон) — считает пустые ячейки, включая те, где формула вернула пустую строку ("").

Пример использования: допустим, у вас таблица продаж с колонками "Дата", "Товар", "Количество" и "Сумма". Чтобы узнать, сколько строк содержат реальные продажи (т.е. где есть числовое значение в колонке "Количество"), используйте:

=СЧЁТ(C2:C100)

А если нужно проверить, сколько строк не заполнено вовсе (например, для выявления пропущенных данных), подойдёт:

=СЧИТАТЬПУСТОТЫ(A2:D100)

2. Подсчёт по условию: СЧЁТЕСЛИ и её продвинутые варианты

Теперь переходим к более сложным задачам. Функция СЧЁТЕСЛИ позволяет считать ячейки, которые соответствуют одному критерию. Например, сколько товаров продано на сумму больше 10 000 рублей, или сколько сотрудников имеют стаж более 3 лет.

Синтаксис:

=СЧЁТЕСЛИ(диапазон; условие)

Где условие может быть:

  • 🔢 Числом: =СЧЁТЕСЛИ(B2:B100; ">5000") — считает ячейки с значениями больше 5000.
  • 📝 Текстом: =СЧЁТЕСЛИ(A2:A100; "Яблоки") — считает ячейки с точным совпадением "Яблоки".
  • 📅 Датой: =СЧЁТЕСЛИ(C2:C100; ">31.12.2023") — считает даты после 31 декабря 2023 года.
  • 🔄 Ссылкой на ячейку: =СЧЁТЕСЛИ(A2:A100; D2), где в D2 записано условие (например, "Вишня").

Обратите внимание на подводные камни:

⚠️ Внимание: Функция СЧЁТЕСЛИ нечувствительна к регистру. То есть условия "яблоки", "ЯБЛОКИ" и "Яблоки" для неё идентичны. Если важен регистр, используйте комбинацию с НАЙТИ или ПОИСК.

Для подсчёта по нескольким условиям одновременно используйте СЧЁТЕСЛИМН (доступна с Excel 2007). Например, чтобы посчитать количество продаж товара "Яблоки" на сумму больше 1000 рублей:

=СЧЁТЕСЛИМН(A2:A100; "Яблоки"; B2:B100; ">1000")
📊 Какую функцию подсчёта вы используете чаще?
СЧЁТ
СЧЁТЕСЛИ
СЧЁТЕСЛИМН
СЧЁТЗ
Другую

3. Подсчёт уникальных значений: почему СЧЁТЕСЛИ не подходит

Допустим, у вас есть список клиентов, и вы хотите узнать, сколько из них уникальных (без повторений). Функция СЧЁТЕСЛИ здесь бессильна — она просто посчитает все вхождения. Для этой задачи есть два подхода:

  1. Функция ЧАСТОТА + СЧЁТЕСЛИ (для старых версий Excel). Сначала создаём список уникальных значений с помощью ДАННЫЕ → Удалить дубликаты, затем применяем СЧЁТ.
  2. Функция ЕСЛИОШИБКА + ПОИСКПОЗ (универсальный метод). Формула:
    =СУММ(--(ЧАСТОТА(ПОИСКПОЗ(A2:A100; A2:A100; 0); ПОИСКПОЗ(A2:A100; A2:A100; 0))>0))

    Здесь ПОИСКПОЗ возвращает позиции всех элементов, а ЧАСТОТА подсчитывает уникальные.

В Excel 365 и Excel 2019 появилась долгожданная функция УНИК, которая упрощает задачу:

=СЧЁТ(УНИК(A2:A100))

Но что, если нужно посчитать уникальные значения с учётом условия? Например, сколько уникальных товаров было продано в январе? Здесь поможет комбинация УНИК и ФИЛЬТР:

=СЧЁТ(УНИК(ФИЛЬТР(A2:A100; (B2:B100="Январь"))))
Почему ЧАСТОТА требует ввода как формула массива?

В версиях Excel до 2019 функцию ЧАСТОТА нужно вводить как формулу массива (нажать Ctrl+Shift+Enter). Это связано с тем, что она возвращает не одно значение, а массив результатов. В новых версиях Excel это делается автоматически.

4. Подсчёт по цвету ячейки: обходим ограничения Excel

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

  • 🎨 Фильтрация по цвету. Выделите диапазон → Данные → Фильтр → откройте фильтр по цвету → отфильтруйте нужный цвет → посчитайте видимые строки с помощью ПРОМЕЖУТОЧНЫЕ.ИТОГИ.
  • 📊 VBA-скрипт. Нажмите Alt+F11, вставьте этот код:
    Function CountByColor(rng As Range, color As Range) As Long
    

    Dim cl As Range, cnt As Long

    cnt = 0

    For Each cl In rng

    If cl.Interior.Color = color.Interior.Color Then cnt = cnt + 1

    Next cl

    CountByColor = cnt

    End Function

    Затем используйте в ячейке: =CountByColor(A1:A100; C1), где C1 — ячейка с образцом цвета.

  • 🔍 Условное форматирование + вспомогательный столбец. Создайте правило условного форматирования, которое будет закрашивать ячейку в другой столбец, если основная ячейка имеет нужный цвет. Затем посчитайте закрашенные ячейки во вспомогательном столбце.
⚠️ Внимание: VBA-скрипты не работают в Excel Online и мобильных версиях. Если вы делитесь файлом с коллегами, использующими эти версии, выберите другой метод.

5. Подсчёт с несколькими критериями: СЧЁТЕСЛИМН vs. СУММПРОИЗВ

Когда нужно посчитать ячейки, соответствующие нескольким условиям одновременно, у вас есть два основных инструмента: СЧЁТЕСЛИМН и СУММПРОИЗВ. Какой выбрать?

КритерийСЧЁТЕСЛИМНСУММПРОИЗВ
Простота использования⭐⭐⭐⭐⭐⭐⭐ (требует знания массивов)
Поддержка диапазонов разного размера❌ Нет (все диапазоны должны быть одинакового размера)✅ Да
Работа с массивами❌ Нет✅ Да (можно использовать условия типа A1:A10="Яблоки")
Производительность на больших данных⭐⭐⭐⭐ (быстрее)⭐⭐⭐ (медленнее из-за массивов)
Гибкость условий⭐⭐⭐ (только простые условия)⭐⭐⭐⭐⭐ (можно комбинировать логические выражения)

Пример с СЧЁТЕСЛИМН (подсчёт продаж "Яблок" в "Январе" на сумму > 5000):

=СЧЁТЕСЛИМН(A2:A100; "Яблоки"; B2:B100; "Январь"; C2:C100; ">5000")

Тот же пример с СУММПРОИЗВ:

=СУММПРОИЗВ(--(A2:A100="Яблоки"); --(B2:B100="Январь"); --(C2:C100>5000))

Обратите внимание на двойной минус (--) — он преобразует логические значения (ИСТИНА/ЛОЖЬ) в 1/0 для подсчёта.

Убедитесь, что все диапазоны имеют одинаковый размер|Проверьте отсутствие пустых ячеек в критериальных столбцах|Используйте абсолютные ссылки ($A$2:$A$100) для копирования формулы|Тестируйте формулу на небольшом диапазоне перед применением ко всей таблице-->

6. Подсчёт ячеек с ошибками: #Н/Д, #ЗНАЧ! и другие

Ошибки в Excel (#Н/Д, #ЗНАЧ!, #ДЕЛ/0! и др.) могут искажать результаты подсчёта. Например, если в диапазоне есть ячейка с #Н/Д, функция СЧЁТ её проигнорирует, а СРЗНАЧ вернёт ошибку. Как посчитать ячейки с ошибками или, наоборот, исключить их?

Для подсчёта ячеек с ошибками используйте:

=СУММПРОИЗВ(--ЕОШИБКА(A2:A100))

Для подсчёта ячеек без ошибок:

=СЧЁТЗ(A2:A100) - СУММПРОИЗВ(--ЕОШИБКА(A2:A100))

Если нужно посчитать ячейки с конкретной ошибкой (например, только #Н/Д), используйте:

=СУММПРОИЗВ(--(ЕНД(A2:A100)))

Для игнорирования ошибок при подсчёте используйте ЕСЛИОШИБКА:

=СЧЁТ(ЕСЛИОШИБКА(A2:A100; ""))

Эта формула заменяет все ошибки на пустые строки, которые СЧЁТ игнорирует.

7. Динамические диапазоны: подсчёт в таблицах с изменяющимся размером

Что делать, если ваши данные постоянно обновляются, и диапазон для подсчёта нужно расширять вручную? В Excel есть несколько способов работать с динамическими диапазонами:

  • 📏 Именованные диапазоны с СМЕЩ. Создайте именованный диапазон:
    =СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A:$A);1)

    Теперь при добавлении новых строк в столбец A диапазон будет автоматически расширяться.

  • 🖼️ Умные таблицы (Ctrl+T). Преобразуйте диапазон в таблицу, и все формулы внутри неё будут автоматически расширяться. Для подсчёта используйте столбец "Итоги".
  • 🔄 Функция ДВССЫЛ. Создайте формулу:
    =СЧЁТ(ДВССЫЛ("A2:A" & СЧЁТЗ(A:A)))

    Здесь СЧЁТЗ(A:A) определяет последнюю непустую строку.

Пример с умной таблицей:

  1. Выделите диапазон данных (например, A1:C100).
  2. Нажмите Ctrl+T и подтвердите создание таблицы.
  3. Включите "Строку итогов" в параметрах таблицы (Конструктор → Строка итогов).
  4. В ячейке итога выберите функцию "Количество" (или введите свою формулу).

Преимущество умных таблиц — они автоматически обновляют все формулы при добавлении новых строк, включая подсчёты, суммы и средние значения.

FAQ: Ответы на частые вопросы о подсчёте ячеек в Excel

Можно ли посчитать ячейки, содержащие часть текста (например, "ябл")?

Да, используйте подстановочные знаки в СЧЁТЕСЛИ:

=СЧЁТЕСЛИ(A2:A100; "ябл")

Звёздочка () заменяет любое количество символов. Для точного совпадения начала или конца слова используйте "ябл" или "*ябл".

Как посчитать ячейки, где значение между двумя числами (например, от 100 до 500)?

Используйте СЧЁТЕСЛИМН с двумя условиями:

=СЧЁТЕСЛИМН(A2:A100; ">100"; A2:A100; "<500")

Или более компактный вариант с СУММПРОИЗВ:

=СУММПРОИЗВ(--(A2:A100>100); --(A2:A100<500))
Почему СЧЁТЕСЛИ не считает даты правильно?

Excel хранит даты как числа (количество дней с 1 января 1900 года). При сравнении дат всегда используйте функцию ДАТА или ссылки на ячейки с датами. Например:

=СЧЁТЕСЛИ(A2:A100; ">="&ДАТА(2026;1;1))

Если писать просто ">=01.01.2026", Excel может интерпретировать это как текст, а не как дату.

Как посчитать ячейки, где формула вернула пустую строку?

Функция СЧИТАТЬПУСТОТЫ не учитывает ячейки с формулами, возвращающими "". Чтобы их посчитать, используйте:

=СУММПРОИЗВ(--(A2:A100=""))

Если нужно посчитать истинно пустые ячейки (без формул), комбинируйте с ЕПУСТО:

=СУММПРОИЗВ(--(ЕПУСТО(A2:A100)))
Можно ли посчитать ячейки по цвету шрифта, а не фона?

Да, но только через VBA. В стандартных функциях Excel нет возможности работать с цветом шрифта. Пример кода:

Function CountByFontColor(rng As Range, color As Range) As Long

Dim cl As Range, cnt As Long

cnt = 0

For Each cl In rng

If cl.Font.Color = color.Font.Color Then cnt = cnt + 1

Next cl

CountByFontColor = cnt

End Function

Используйте в ячейке: =CountByFontColor(A1:A100; C1), где C1 — ячейка с образцом цвета шрифта.