Как посчитать заполненные формы в Excel: от СЧЁТЗ до Power Query

Почему стандартный подсчёт строк не работает с формами

Вы скачали данные из Google Forms, 1С или CRM-системы, а в Excel оказались сотни строк — но как понять, сколько из них реально заполнены? Простое выделение мышкой или функция СЧЁТ даст неверный результат: они посчитают все строки, включая пустые или с одним ответом. А вам нужны только те, где заполнено хотя бы 3 из 5 полей или где выбрана конкретная опция.

Проблема в том, что формы часто экспортируются с "дырами": пользователь мог пропустить вопросы, а система всё равно создаёт строку. Например, в опросе из 10 вопросов респондент ответил только на 2 — но в Excel это будет полноценная строка с 8 пустыми ячейками. Здесь нужны специальные приёмы, о которых мы расскажем ниже.

Способ 1: Функция СЧЁТЗ для подсчёта непустых ячеек

Самый простой метод — использовать СЧЁТЗ (COUNTIF в английской версии). Она считает количество непустых ячеек в диапазоне. Например, если у вас форма с 5 вопросами (столбцы A:E), формула =СЧЁТЗ(A2:E2) покажет, сколько полей заполнил респондент в строке 2.

Чтобы посчитать все строки с хотя бы одним ответом, протяните формулу вниз и используйте её внутри СЧЁТЕСЛИ:

=СЧЁТЕСЛИ(F2:F100;">=1")

где F2:F100 — столбец с результатами СЧЁТЗ для каждой строки.

  • ✅ Подходит для форм с обязательным заполнением хотя бы одного поля
  • ❌ Не учитывает качество заполнения (может посчитать строку с 1 ответом из 20)
  • ⚠️ Не работает, если в пустых ячейках стоят формулы (даже если они возвращают "")

Способ 2: СЧЁТЕСЛИМН для форм с обязательными полями

Допустим, в вашей форме есть 3 обязательных вопроса (столбцы B, D и F). Чтобы посчитать только те строки, где заполнены все три, используйте:

=СЧЁТЕСЛИМН(B2:B100;"<>"""; D2:D100;"<>"""; F2:F100;"<>"""

Эта формула проверяет, что в каждом из указанных столбцов есть ненулевое значение. Если хоть в одном поле пусто — строка не считается.

СтолбецВопрос формыТип данныхПример условия
BEmail респондентаТекст"<>"""
DВозрастЧисло17"
FСогласие на обработку данныхДа/Нет"=Да"
⚠️ Внимание: Если в обязательном поле могут быть разные корректные значения (например, "Да"/"Согласен"/"1"), перечислите их через массив: =СЧЁТЕСЛИМН(F2:F100;{"Да";"Согласен";1})

Способ 3: Power Query для сложных форм с вложенными данными

Когда данные экспортируются в виде "одна строка — один ответ" (типично для Google Forms с повторяющимися блоками), обычные формулы бессильны. Здесь поможет Power Query (в Excel 2016+ или как надстройка Get & Transform).

Алгоритм:

  1. Выделите исходную таблицу → Данные → Из таблицы/диапазона
  2. В редакторе Power Query добавьте условный столбец (например, "Статус"), который отмечает строки с заполненными ключевыми полями
  3. Отфильтруйте строки по этому столбцу
  4. Сгруппируйте данные по ID респондента (если есть) с операцией Count Rows
Пример M-кода для фильтрации пустых строк

let

Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

#"Добавлен статус" = Table.AddColumn(Source, "Заполнено", each if [Email] <> null and [Возраст] <> null then "Да" else "Нет"),

#"Отфильтровано" = Table.SelectRows(#"Добавлен статус", each ([Заполнено] = "Да"))

in

#"Отфильтровано"

Преимущество метода: обрабатывает многомерные данные (например, когда один респондент заполнил несколько блоков формы) и позволяет очищать данные "на лету".

📊 Какой инструмент вы чаще используете для работы с формами?
Google Forms
Excel
1C
CRM-системы
Другой

Способ 4: Условное форматирование для визуального контроля

Если вам нужно не только посчитать, но и визуально выделить заполненные формы, используйте условное форматирование:

  1. Выделите диапазон с данными (например, A2:Z100)
  2. Перейдите в Главная → Условное форматирование → Создать правило
  3. Выберите Использовать формулу... и введите:
    =СЧЁТЗ($A2:$Z2)>3

    (где 3 — минимальное количество заполненных полей)

  4. Задайте формат (например, зелёную заливку)

Теперь все строки, где заполнено больше 3 полей, будут подсвечены. Чтобы посчитать их количество, используйте:

=СЧЁТЕСЛИ(А2:А100;">"")-СЧЁТЕСЛИ(ЦветЯчейки;16777215)

(где ЦветЯчейки — имя диапазона с условным форматированием, а 16777215 — код белого цвета)

✓ Удалите служебные строки (заголовки, итоги)

✓ Замените "N/A" или "нет данных" на пустые ячейки (=ПОДСТАВИТЬ(A2;"N/A";""))

✓ Проверьте формат ячеек (текст/число/дата)

✓ Убедитесь, что нет объединённых ячеек

-->

Способ 5: VBA-макрос для автоматизации подсчёта

Если вам регулярно приходится обрабатывать формы, напишите простой макрос. Например, этот код считает строки, где заполнено хотя бы 50% полей:

Sub CountFilledForms()

Dim ws As Worksheet

Dim lastRow As Long, i As Long, count As Long

Dim cols As Long, filled As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.count, "A").End(xlUp).Row

cols = ws.Cells(1, ws.Columns.count).End(xlToLeft).Column

For i = 2 To lastRow 'пропускаем заголовок

filled = Application.WorksheetFunction.CountA(ws.Rows(i))

If filled >= cols / 2 Then count = count + 1

Next i

MsgBox "Заполненных форм: " & count & " из " & (lastRow - 1)

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA
  2. Вставьте код в новый модуль (Insert → Module)
  3. Запустите макрос через F5 или кнопку на панели
⚠️ Внимание: Перед запуском макроса сохраните файл как .xlsm (с поддержкой макросов) и проверьте, что в Файл → Параметры → Центр управления безопасностью разрешено выполнение макросов.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при подсчёте форм. Вот самые распространённые:

  • 🔹 Пустые ячейки с формулами: Функция СЧЁТЗ посчитает ячейку с =ЕСЛИ(A1="";"";A1) как пустую, хотя там может быть скрытое значение. Решение: используйте ЕПУСТО или ДЛСТР для проверки.
  • 🔹 Скрытые символы: В данных из веб-форм часто встречаются неразрывные пробелы (CHAR(160)) или символы табуляции. Очистите их через =ПЕЧСИМВ(A2).
  • 🔹 Дубликаты строк: Если форма позволяла отправлять данные несколько раз, используйте Удалить дубликаты (Данные → Удалить дубликаты) перед подсчётом.
  • 🔹 Несоответствие типов данных: Даты в текстовом формате ("01.01.2023") не будут распознаны как числа. Преобразуйте их через ДАТАЗНАЧ.

Проверьте свои данные на эти проблемы с помощью контрольного листа:

=ЕСЛИ(ИЛИ(ЕОШ(ДАТАЗНАЧ(B2)); ЕПУСТО(B2)); "Проблема"; "OK")

FAQ: Ответы на частые вопросы

Как посчитать формы, где выбрана конкретная опция (например, "Да" в вопросе о согласии)?

Используйте СЧЁТЕСЛИ для одного условия или СЧЁТЕСЛИМН для нескольких. Пример:

=СЧЁТЕСЛИ(D2:D100; "Да")

Если варианты ответа могут быть разными ("Да", "Согласен", "1"), используйте:

=СУММ(СЧЁТЕСЛИ(D2:D100; {"Да";"Согласен";1}))
Можно ли посчитать формы по дате заполнения?

Да, если в данных есть столбец с датой. Например, чтобы посчитать формы, заполненные в январе 2026:

=СЧЁТЕСЛИМН(B2:B100; ">="&ДАТА(2026;1;1); B2:B100; "<="&ДАТА(2026;1;31))

Для динамического диапазона дат используйте таблицы Excel с фильтрами.

Как исключить тестовые отправки формы?

Если тестовые данные имеют уникальные признаки (например, email test@example.com или слово "Тест" в комментариях), используйте:

=СЧЁТЕСЛИМН(A2:A100; "<>test@example.com"; C2:C100; "Тест"; D2:D100; "<>Тест")

Где A — столбец с email, C — с комментариями, D — с именем.

Что делать, если данные в формате JSON или XML?

Для JSON:

  1. Импортируйте данные через Данные → Получение данных → Из файла → Из JSON
  2. В Power Query разверните вложенные структуры (кнопка в заголовке столбца)
  3. Преобразуйте в таблицу и используйте методы из этой статьи

Для XML используйте Импорт XML (может потребовать XSD-схему).

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

Если в данных есть уникальный идентификатор (email, телефон или ID сессии), используйте:

=СЧЁТЕСЛИ(УникальныйСтолбец; УникальныйСтолбец) - СЧЁТПУСТО(УникальныйСтолбец)

Или для точного подсчёта:

=СУММ(1/СЧЁТЕСЛИ(УникальныйСтолбец; УникальныйСтолбец & ""))

Внимание: вторая формула должна вводиться как массивная (нажмите Ctrl+Shift+Enter в старых версиях Excel).