Skip to content
Если ваша задача — заставить Excel подсчитывать пустые ячейки на листе, прочтите эту статью, чтобы найти 3 способа для этого. Узнайте, как искать и выбирать среди них нужные с помощью стандартных инструментов поиска, или же просто использовать формулу.
Примеры в этой статье покажут вам, как можно быстро подсчитать пустые и заполненные ячейки в таблице Excel.
- Стандартный инструмент «Выделить группу ячеек»
- Может пригодиться функция поиска и замены
- Эффективное использование функции СЧИТАТЬПУСТОТЫ
- Применяем СЧЁТЕСЛИ и СЧЁТЕСЛИМН
- Подсчёт пустых ячеек с условием
- Используем число пустых ячеек как условие в формуле
- Как сосчитать пустые строки
- Формула для подсчёта действительно путых ячеек
Предположим, вы поставляете товары в несколько магазинов. У вас есть таблица с названиями магазинов и количеством проданных товаров. Некоторые позиции в столбце «Продажи» не заполнены.
Вам нужно посчитать пустые ячейки на листе или же найти и выбрать их, чтобы увидеть, сколько магазинов не предоставили необходимые данные. Если список большой, то ручной подсчет займет слишком много времени. Поэтому выбирайте один из вариантов, которые я показываю в этой статье.
Инструмент «Выделить группу ячеек»
Если вам нужно быстро найти все пустые ячейки в Excel, используйте эту операцию. Она быстро выделит все незаполненные клетки, чтобы вы могли легко найти их на своем листе. Но вот количество их она не сосчитает.
На ленте меню Главная выбираем Найти и выделить, затем — Bыделить группу ячеек. В открывшемся окне активируем кнопку Пустые ячейки и жмем ОК.
В результате все клетки без значений будут выделены.
Вы можете использовать «Цвет заливки» на вкладке «Главная», чтобы изменить цвет фона пустых ячеек и зафиксировать выделение.
Обратите внимание, что этот инструмент не обнаруживает псевдо-пустые позиции — с формулами, возвращающими пустое значение. То есть, они не будут выделены.
Также имейте в виду то, что если вы вводили какие-то данные за пределами вашей таблицы, а затем их удалили за ненадобностью, то Эксель запомнит это. Теперь он будет искать не только в области ваших данных, но также в диапазоне, ограниченном этими «бывшими в употреблении» ячейками. В результате будет выделено много лишнего на вашем листе. Это вряд ли будет полезно.
Также вы, я думаю, заметили, что аналогичным образом можно выделить и непустые ячейки. Просто нужно выбрать другой объект поиска — либо Константы, либо Формулы.
Функция поиска и замены.
Вы можете использовать стандартный диалог Excel «Найти и заменить» для подсчета пустых ячеек в таблице. Этот инструмент отобразит список найденных ячеек рядом с их адресами на вашем листе. Он также позволяет вам перейти к любой из них, щелкнув ссылку в списке.
- Выберите диапазон, в котором нужно считать пустоты. Если вы не укажете диапазон, то поиск будет идти по всей таблице. Затем нажмите на ленте «Найти и выделить» или же используйте комбинацию клавиш
Ctrl + F
. - Оставьте поле Найти незаполненным.
- Нажмите Параметры и установите флажок Ячейка целиком.
- Выберите формулы или значения из раскрывающегося списка Область поиска:
- Если вы выберете Поиск значений, инструмент будет считать все пустые ячейки, включая псевдо-пустые со значениями типа «».
- Выберите параметр «Формулы» для поиска и подсчёта абсолютно пустых позиций. «Пустые» формулы учтены не будут.
- Нажмите кнопку «Найти все», чтобы увидеть результаты. Вы увидите количество найденного в нижнем левом углу.
При необходимости, используя вкладку Заменить, вы можете заполнить всех их нулями или каким-либо текстом («Нет данных», к примеру).
Как и в предыдущем методе, вы можете найти и сосчитать все непустые ячейки в заранее выделенном диапазоне. Просто в поле Найти введите * (звездочка). Все позиции, в которых есть хоть какие-то данные, будет выделены. Но значения («») будут проигнорированы.
Формулы для подсчета пустых ячеек.
Функция СЧИТАТЬПУСТОТЫ.
Функция СЧИТАТЬПУСТОТЫ предназначена для подсчета пустых ячеек в указанном диапазоне. Она относится к категории статистических функций и доступна во всех версиях Excel начиная с 2007.
Синтаксис этой функции очень прост и требует только одного аргумента:
СЧИТАТЬПУСТОТЫ(диапазон)
Где диапазон — это область вашего рабочего листа, в которой должны подсчитываться позиции без данных.
Вот пример формулы в самой простейшей форме:
=СЧИТАТЬПУСТОТЫ(C2:C17)
Чтобы эффективно использовать эту функцию, важно понимать, что именно она подсчитывает.
- Содержимое в виде текста, чисел, дат, логических значений или ошибок, не учитывается.
- Нули также не учитываются, даже если скрыты форматированием.
- Формулы, возвращающие пустые значения («»), — учитываются.
Глядя на рисунок выше, обратите внимание, что A7, содержащая формулу, возвращающую пустое значение, подсчитывается по-разному:
- СЧИТАТЬПУСТОТЫ считает её пустой, потому что она визуально кажется таковой.
- СЧЁТЗ обрабатывает её как имеющую содержимое, потому что она фактически содержит формулу.
Это может показаться немного нелогичным, но Excel действительно так работает
Как вы видите на рисунке выше, для подсчета непустых ячеек отлично подходит функция СЧЁТЗ:
=СЧЁТЗ(A2:A8)
СЧИТАТЬПУСТОТЫ — наиболее удобный, но не единственный способ подсчета пустых ячеек в Excel. Следующие примеры демонстрируют несколько других методов и объясняют, какую формулу лучше всего использовать в каждом сценарии.
Применяем СЧЁТЕСЛИ или СЧЁТЕСЛИМН.
Другим способом подсчета пустых ячеек в Excel является использование функций СЧЁТЕСЛИ или СЧЁТЕСЛИМН с пустой строкой («») в качестве критериев.
В нашем случае формулы выглядят следующим образом:
=СЧЁТЕСЛИ(B2:D2; «»)
или
=СЧЁТЕСЛИМН(B2:D2; «»)
Возвращаясь к ранее сказанному, вы можете также использовать выражение
=СЧИТАТЬПУСТОТЫ(B2:D2)
Результаты всех трёх формул, представленных выше, будут совершенно одинаковыми. Поэтому какую из них использовать — дело ваших личных предпочтений.
Подсчёт пустых ячеек с условием.
В ситуации, когда вы хотите подсчитать пустые ячейки на основе некоторого условия, функция СЧЁТЕСЛИМН является весьма подходящей, поскольку ее синтаксис предусматривает несколько критериев.
Например, чтобы определить количество позиций, в которых записано «Бананы» в столбце A и ничего не заполнено в столбце C, используйте эту формулу:
=СЧЁТЕСЛИМН(A2:A9; «Бананы» ; C2:C9; «»)
Или введите условие в предопределенную позицию, скажем F1, что будет гораздо правильнее:
=СЧЁТЕСЛИМН(A2:A9; F1; C2:C9; «»)
Количество пустых ячеек как условие.
В некоторых случаях вам может потребоваться не просто пересчитать пустые ячейки в диапазоне, но предпринять некоторые действия в зависимости от того, есть ли таковые, либо нет. Самый популярный случай — подсчитать итоги, только если все данные в таблице заполнены.
Хотя в Excel нет встроенной функции ЕСЛИСЧИТАТЬПУСТОТЫ, вы можете легко создать свою собственную формулу, используя вместе функции ЕСЛИ и СЧИТАТЬПУСТОТЫ. Вот как:
- Создаем условие, что количество пробелов равно нулю, и помещаем это выражение в логический тест ЕСЛИ:
СЧИТАТЬПУСТОТЫ(B2:D2)=0 - Если логический результат оценивается как ИСТИНА, выведите «Нет пустых».
- Если же — ЛОЖЬ, возвращаем «Пустые».
Полная формула принимает такой вид:
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(B2:D2)=0; «Нет пустых»; «Пустые»)
В результате формула определяет все строки, в которых отсутствует одно или несколько значений:
Или вы можете создать другой расчет в зависимости от количества незаполненных позиций. Например, если в диапазоне нет пустот (т.е. если СЧИТАТЬПУСТОТЫ возвращает 0), сложите цифры продаж, в противном случае покажите предупреждение:
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(B2:D2)=0; СУММ(B2:D2); «Пустые»)
То есть, сумма за квартал будет рассчитана только тогда, когда будут заполнены все данные по месяцам.
Как подсчитать пустые строки в Excel.
Предположим, у вас есть таблица, в которой некоторые строки содержат информацию, а другие полностью не заполнены. Возникает вопрос — как получить количество строк, в которых ничего не содержится?
Самое простое решение, которое приходит в голову, — это добавить вспомогательный столбец Е и заполнить его формулой СЧИТАТЬПУСТОТЫ, которая находит количество чистых позиций в каждой строке:
= СЧИТАТЬПУСТОТЫ(A2:E2)
А затем используйте функцию СЧЁТЕСЛИ, чтобы узнать, в каком количестве строк все позиции пусты. Поскольку наша исходная таблица содержит 4 столбца (от A до D), мы подсчитываем строки с четырьмя пустыми клетками:
=СЧЁТЕСЛИ(E2:E10;4)
Вместо жесткого указания количества столбцов вы можете использовать функцию ЧИСЛСТОЛБ (COLUMNS в английской версии) для его автоматического вычисления:
=СЧЁТЕСЛИ(E2:E10;ЧИСЛСТОЛБ(A2:D10))
Если вы не хотите портить структуру красиво оформленного рабочего листа, вы можете добиться того же результата с помощью гораздо более сложной формулы, которая, однако, не требует никаких вспомогательных столбцов:
=СУММ(—(МУМНОЖ(—(A2:D10<>»»); СТРОКА(ДВССЫЛ(«A1:A»&ЧИСЛСТОЛБ(A2:D10))))=0))
Разберём, как это работает:
- Сначала вы проверяете весь диапазон на наличие непустых ячеек с помощью выражения типа A2:D10 <> «», а затем приводите возвращаемые логические значения ИСТИНА и ЛОЖЬ к 1 и 0 с помощью двойного отрицания (—). Результатом этой операции является двумерный массив единиц (означают непустые ячейки) и нулей (пустые).
- При помощи СТРОКА создаётся вертикальный массив числовых ненулевых значений, в котором количество элементов равно количеству столбцов диапазона. В нашем случае диапазон состоит из 4 столбцов (A2:В10), поэтому мы получаем такой массив: {1; 2; 3; 4}
- Функция МУМНОЖ вычисляет матричное произведение вышеупомянутых массивов и выдает результат вида: {7; 10; 6; 0; 5; 6; 0; 5; 6}. В этом массиве для нас имеет значение только нулевые значения, указывающие на строки, в которых все клетки пусты.
- Наконец, вы сравниваете каждый элемент полученного выше массива с нулем, приводите ИСТИНА и ЛОЖЬ к 1 и 0, а затем суммируете элементы этого последнего массива: {0; 0; 0; 1; 0; 0; 1; 0; 0}. Помня, что 1 соответствуют пустым строкам, вы получите желаемый результат.
Если приведенная выше формула кажется вам слишком сложной для понимания, возможно, вам больше понравится эта:
{=СУММ(—(СЧЁТЕСЛИ(ДВССЫЛ(«A»&СТРОКА(A2:A10) & «:D»&СТРОКА(A2:A10));»<>»&»»)=0)) }
Здесь вы используете функцию СЧЁТЕСЛИ, чтобы узнать, сколько значений содержится в каждой строке, а ДВССЫЛ «подает» строки в СЧЁТЕСЛИ одну за другой. Результатом этой операции является массив вида {3; 4; 3; 0; 2; 3; 0; 2; 3}. Проверка на 0 преобразует указанный выше массив в {0; 0; 0; 1; 0; 0; 1; 0; 0}, где единицы представляют пустые строки. Вам остается просто сложить эти цифры.
Обратите также внимание, что это формула массива.
На скриншоте выше вы можете увидеть результат работы этих двух формул.
Также следуем отметить важную особенность работы этих выражений с псевдо-пустыми ячейками. Добавим в C5
=ЕСЛИ(1=1; «»)
Внешне таблица никак не изменится, поскольку эта формула возвращает пустоту. Однако, второй вариант подсчёта обнаружит её присутствие. Ведь если что-то записано, значит, ячейка уже не пустая. По этой причине результат количества пустых строк будет изменён с 2 на 1.
Подсчет действительно пустых ячеек.
Во всех предыдущих примерах мы подсчитывали позиции, включая те, которые кажутся пустыми, но на самом деле содержат пустоту («»), возвращаемую некоторыми формулами. Если вы хотите исключить их из результата подсчета, вы можете использовать эту общую формулу:
ЧСТРОК( диапазон ) * ЧИСЛСТОЛБ( диапазон ) — СЧЁТЗ( диапазон )
Формула умножает количество строк на количество столбцов, чтобы получить общее количество клеток в диапазоне, из которого вы затем вычитаете количество непустых значений, возвращаемых СЧЁТЗ. Как вы помните, функция СЧЁТ в Excel рассматривает значения «» как непустые ячейки. Поэтому они не будут включены в окончательный результат.
Например, чтобы определить количество абсолютно пустых клеток в диапазоне A2: A8, используйте следующую формулу:
=ЧСТРОК(A2:A8)*ЧИСЛСТОЛБ(A2:A8)-СЧЁТЗ(A2:A8)
На скриншоте ниже показан результат:
Как видите, псевдо-пустая ячейка с формулой здесь не учитывается.
Вот как можно сосчитать пустые и непустые ячейки в Excel. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Не стесняйтесь делиться любыми другими подсказками, которые могут у вас возникнуть. Будьте счастливы и преуспевайте в Excel!
Также рекомендуем:
Группа: Пользователи Ранг: Прохожий Сообщений: 8
Замечаний: |
Здравствуйте. Подскажите пожалуйста как выйти из данного положения:
Имеется столбец с цифрами … среди которых имеются пустые строчки (ячейки) либо «0» … Необходимо выписать в другой столбец по порядку (не оставляя между ними пустых и равных «0») все значения >0 исключая пустые и равные нулю…
Фильтр применять в данном случае нельзя.
Пытался найти функцию «найти следующую не пустую ячейку», но не нашел…. аналог имеется или нет?
Заранее благодарен за помощь.
Азат
If you frequently analyze data in Excel, you may come across empty cells before the actual values. Instead of removing these cells, you can get the position or even the value of the first non-blank cell with formulas. In this article, we are going to show you how to find the first non-blank cell in a range in Excel.
Download Workbook
Formula
Finding the position: {=MATCH(FALSE,ISBLANK(range),0)}
Get the value: {=INDEX(range,MATCH(FALSE,ISBLANK(range),0))}
* range is the reference from the work range
How it works
Excel doesn’t have a built-in formula to find the first non-blank cell in a range. However, there is ISBLANK function which checks a cell and returns a Boolean value according to its content. The function returns TRUE if cell is blank, FALSE otherwise. Thus, finding the first FALSE value means to find the first non-blank cell.
MATCH function can help to locate FALSE value. Once the position is in hand, you can use it with INDEX function to get the result.
Although VLOOKUP function can be used with a wild card “*” character, it can return only text values. If you are not familiar with INDEX & MATCH functions, please visit our guide: INDEX & MATCH: A Better Way to Look Up Data
The problem is ISBLANK function only works with a single cell. You need to use a helper column to populate TRUE and FALSE values which doesn’t sound practical. Instead, you can use an array function and not need the helper column.
Use the reference of your range of values in the ISBLANK function. This action will return an array of Boolean values. The first FALSE value indicates the position of the first non-blank cell in the range. Wrap the function with either MATCH or INDEX-MATCH combo to get the position or the value respectively.
Use Ctrl + Shift + Enter key combination instead of regular Enter key to evaluate the formula as an array formula.
Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР
На практике часто возникает необходимость быстро найти значение последней (крайней) непустой ячейки в строке или столбце таблицы. Предположим, для примера, что у нас есть вот такая таблица с данными продаж по нескольким филиалам:
Задача: найти значение продаж в последнем месяце по каждому филиалу, т.е. для Москвы это будет 78, для Питера — 41 и т.д.
Если бы в нашей таблице не было пустых ячеек, то путь к решению был бы очевиден — можно было бы посчитать количество заполненных ячеек в каждой строке и брать потом ячейку с этим номером. Но филиалы работают неравномерно: Москва простаивала в марте и августе, филиал в Тюмени открылся только с апреля и т.д., поэтому такой способ не подойдет.
Универсальным решением будет использование функции ПРОСМОТР (LOOKUP):
У этой функции хитрая логика:
- Она по очереди (слева-направо) перебирает непустые ячейки в диапазоне (B2:M2) и сравнивает каждую из них с искомым значением (9999999).
- Если значение очередной проверяемой ячейки совпало с искомым, то функция останавливает просмотр и выводит содержимое ячейки.
- Если точного совпадения нет и очередное значение меньше искомого, то функция переходит к следующей ячейке в строке.
Легко сообразить, что если в качестве искомого значения задать достаточно большое число, то функция пройдет по всей строке и, в итоге, выдаст содержимое последней проверенной ячейки. Для компактности, можно указать искомое число в экспоненциальном формате, например 1E+11 (1*1011 или сто миллиардов).
Если в таблице не числа, а текст, то идея остается той же, но «очень большое число» нужно заменить на «очень большой текст»:
Применительно к тексту, понятие «большой» означает код символа. В любом шрифте символы идут в следующем порядке возрастания кодов:
- латиница прописные (A-Z)
- латиница строчные (a-z)
- кириллица прописные (А-Я)
- кириллица строчные (а-я)
Поэтому строчная «я» оказывается буквой с наибольшим кодом и слово из нескольких подряд «яяяяя» будет, условно, «очень большим словом» — заведомо «большим», чем любое текстовое значение из нашей таблицы.
Вот так. Не совсем очевидное, но красивое и компактное решение. Для поиска последней непустой ячейки в столбцах работает тоже «на ура».
Ссылки по теме
- Поиск и подстановка по нескольким условиям (ВПР по 2 и более критериям)
- Поиск ближайшего похожего текста (max совпадений символов)
- Двумерный поиск в таблице (ВПР 2D)
Сообщение от DV68
В1:
Код
=ЕСЛИ(A1="";ПРОСМОТР(2;1/(A$1:A1<>"");C$1:C1);D1)
Код
=IF(A1="",LOOKUP(2,1/(A$1:A1<>""),C$1:C1),D1)
У меня английская версия Экселя 2003 года, для меня справедлив второй вариант. Но так как записано, у меня не работает. Отчаился и думал, что предложенное решение совсем неправильно, однако, это не так. Просто проблемы с запятыми ( , ), которые надо заменить на точку с запятой ( ; ). И, о чудо, всё работает. Осталось только понять как.
Предложенная формула второго варианта в рабочем виде для меня выглядит так:
Код
=IF(A1="";LOOKUP(2;1/(A$1:A1<>"");C$1:C1);D1)
У этой задачи есть ещё способ решения, которым я её и решил, — как обычно со мной бывает, но не так как подразумевалось. Он достаточно извращённый и не обладает такой универсальностью, но для меня хоть так было сносно.
Мне понадобилось вводить специальный столбец для обслуживания подобной функциональности: столбец хранит адреса нужных ячеек. Берёт он эти адреса так:
Код
=IF(A2<>"";CELL("address";E2);C1)
Интересующий столбец берёт значения, исходя из адресов в этом спецстолбце так:
Код
=IF(A2<>"";INDIRECT(C2);OFFSET(INDIRECT(C1);;-1))
Почему сразу A2 а не A1 станет понятно, когда обратите внимание, что формула ссылается в одном из условий на значение ячейки строкой выше. Ну и в этом отсутствие универсальности, собственно, — взять значение выше самой первой строки в Экселе не получится. Так что для первых ячеек формулу мультиплицировать нельзя. В общем, я прикладываю оба рабочих решения в Экселе.
Свой способ я уже применил к требуемым данным, и уже наверно, не стану переделывать. Впрочем, не хотел бы когда-то иметь необходимость возвращаться для каких-то изменений в своё решение.
Это совсем несущественно, но интересно, какой из вариантов решения жрёт меньше вычислительной мощьности.
И мой поклон DV68 за такой изящный вариант.