Excel не пусто
Функция ЕПУСТО() в MS EXCEL
Задача функции ЕПУСТО() , английский вариант ISBLANK(), — проверять есть ли в ячейке число, текстовое значение, формула или нет. Если в ячейке А1 имеется значение 555, то формула = ЕПУСТО(А1) вернет ЛОЖЬ, а если ячейка А1 пуста, то ИСТИНА.
Синтаксис функции ЕПУСТО()
ЕПУСТО(значение)
Значение — значением может быть все что угодно: текст, число, ссылка, имя, пустая ячейка, значение ошибки, логическое выражение.
Использование функции
В файле примера приведены несколько вариантов проверок:
1. Если в проверяемой ячейке содержится число, текстовое значение, формула, то функция вернет логическое значение ИСТИНА.
2. Если проверяемая ячейка пуста, то функция также вернет логическое значение ЛОЖЬ.
Проверка диапазона ячеек
Функция ЕПУСТО() проверяет содержимое только одной ячейки. Чтобы подсчитать количество пустых ячеек в диапазоне, то используйте функцию СЧИТАТЬПУСТОТЫ() , но если ячейки содержат значение Пустой текст («»), то функция СЧИТАТЬПУСТОТЫ() будет подсчитывать также и эти ячейки наряду с действительно пустыми. Об этом читайте в статье Подсчет пустых ячеек.
Чтобы ответить на вопрос «Есть ли хотя бы 1 пустая ячейка в B6:B11?» используйте формулу массива
Чтобы ответить на вопрос «Есть ли хотя бы 1 заполненная ячейка в B6:B11?» используйте формулу массива
Пустая ячейка определяется Excel-ем как не пустая. Что за глюк?
Эта статья будет близка тем, кому приходится часто работать с отчетами, выгруженными в Excel из программ вроде 1С, SAP и им подобных. Хотя, справедливости ради, надо отметить, что и в обычных файлах Excel такая проблема может так же встречаться, особенно, если в файле использовались различные формулы.
Вводные данные: есть отчет который выкачивается из сторонней программы. В нем есть ячейки, с виду пустые: в них нет пробелов, нет переносов на строки, никаких символов, нет объектов, условного форматирования, в настройках не стоит скрывать нули(Файл —Параметры —Дополнительно —Показывать нули в ячейках, которые содержат нулевые значения). Даже если перейти в режим редактирования ячейки — там пусто.
Если попробовать найти такие «пустые» ячейки(выделить все ячейки листа — F5 — Выделить — Пустые ячейки ) — они не выделяются. Но фильтр при этом их видит как пустые и фильтрует как пустые.
Любые математические действия(умножение на ячейку, сложение, деление и т.п.) внутри формул с такими ячейками выдают ошибку #ЗНАЧ! (#VALUE!) , а функция ЕПУСТО (ISBLANK) считает ячейку не пустой. Формулы вроде СУММ (SUM) и СЧЁТ (COUNT) игнорируют такие ячейки, а СЧЁТЗ (COUNTA) считает их заполненными.
И самое удивительное — если выделить такую ячейку вручную и нажать Delete (или вкладка Главная -группа Редактирование —Очистить содержимое) — то ячейка становится действительно пустой и с ней начинают работать формулы и другие функции Excel как с реально пустой.
Здесь возникает главный вопрос: что с этой ячейкой не так, если там и до Delete ничего не было?
А не так с ней вот что: практически во всех программах есть такое понятие строковых(текстовых) данных, как строка нулевой длины(еще её часто называют нулевая строка. В Visual Basic for Application такая строка обозначается константой vbNullString , в ячейках её можно встретить как сочетание двух кавычек подряд — «» ). Визуально такой текст себя никак не проявляет, однако это все же текст. А любой текст это уже не пусто, но и не число.
Откуда может появится такой текст в ячейках? Здесь несколько вариантов:
- Он есть в ячейках изначально, потому что именно так настроена выгрузка и создание файлов в сторонней программе(вроде 1С). В некоторых случаях такие выгрузки настроены таким образом, что как таковых пустых ячеек нет — они просто заполняются строкой нулевой длины.
- в ячейке была записана формула, результатом которой стал текст нулевой длины. Самый простой пример такой формулы:
=ЕСЛИ( A1 =1;10;»»)
=IF(A1=1,10,»»)
в итоге, если в ячейке A1 записано любое значение, отличное от 1 формула вернет строку нулевой длины. И если впоследствии формулу заменять значением(Как удалить в ячейке формулу, оставив значения?), то получим нашу псевдо пустую ячейку.
Если формулы создаются Вами и в дальнейшем планируются производить с этими ячейками математические действия, то лучше вместо «» ставить 0. Тогда проблем не будет. Нули всегда можно заменить или скрыть: Файл —Параметры —Дополнительно —Показывать нули в ячейках, которые содержат нулевые значения
А если такой файл делали не Вы — он достался «по наследству» или это выгрузка из другой программы, что делать тогда? Я предлагаю такой вот нехитрый код, который во всех выделенных ячейках заменит строки нулевой длины на нормальные пустые ячейки:
Sub ReplaceNullString() Dim rR As Range, rF As Range, rC As Range Dim avR, lr As Long, lc As Long Set rR = Intersect(ActiveSheet.UsedRange, Selection) On Error Resume Next Set rR = rR.SpecialCells(xlCellTypeConstants) On Error GoTo 0 If rR Is Nothing Then MsgBox «В выделенных ячейках нет значений!», vbInformation, «www.excel-vba.ru» Exit Sub End If Set rF = rR.Find(vbNullString, , xlFormulas, xlWhole) If Not rF Is Nothing Then avR = rR.Value For lr = 1 To UBound(avR, 1) For lc = 1 To UBound(avR, 2) If avR(lr, lc) = «» Then rR.Item(lr, lc).Value = Empty Next lc Next lr MsgBox «Строки нулевой длины заменены», vbInformation, «www.excel-vba.ru» Exit Sub End If MsgBox «Строк нулевой длины на листе нет или лист защищен», vbInformation, «www.excel-vba.ru» End Sub
Как это работает:
если раньше никогда не работали с макросами, то рекомендую ознакомиться со статьями:
Что такое макрос и где его искать?
Что такое модуль? Какие бывают модули?
- создаем в книге новый стандартный модуль: Alt+F11 —Insert —Module()
- копируем в созданный модуль приведенный выше код
- выделяем нужный диапазон(если надо заменить на всем листе — то можно выделить все ячейки листа или целиком нужные столбцы — программа сама определить нужные данные)
- нажимаем Alt+F8 и в появившемся окне выбираем ReplaceNullString
Короткая видеоинструкция:
Статья помогла? Поделись ссылкой с друзьями!
Использование функции ЕСЛИ для проверки ячейки на наличие символов
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Иногда требуется проверить, пуста ли ячейка. Обычно это делается, чтобы формула не выводила результат при отсутствии входного значения.
В данном случае мы используем ЕСЛИ вместе с функцией ЕПУСТО:
Эта формула означает: ЕСЛИ(ячейка D2 пуста, вернуть текст «Пустая», в противном случае вернуть текст «Не пустая»). Вы также можете легко использовать собственную формулу для состояния «Не пустая». В следующем примере вместо функции ЕПУСТО используются знаки «». «» — фактически означает «ничего».
Эта формула означает: ЕСЛИ(в ячейке D3 ничего нет, вернуть текст «Пустая», в противном случае вернуть текст «Не пустая»). Вот пример распространенного способа использования знаков «», при котором формула не вычисляется, если зависимая ячейка пуста:
Если (D3 — Nothing, возвращается Nothing, в противном случае вычисляется формула).
Автоматическая заливка цветом пустых (не заполненных) ячеек.
Предположим такую ситуацию:
Вы создали опросник (чек-лист) в программе «Excel» и хотите, чтобы люди, которым Вы отправили чек-лист для заполнения, внесли данные во все ячейки.
Проверка исправности инженерных систем
Чтобы обратить внимание человека на незаполненные (пустые) ячейки нужно их покрасить в яркий привлекающий внимание цвет (выполнить заливку пустых ячеек).
Хотя, такая заливка является частным случаем условного форматирования, не каждый пользователь «Excel» может сразу сориентироваться и выполнить требуемую операцию.
Рассмотрим, каким образом выполняется такое условное форматирование для пустых ячеек «Эксель».
-
Необходимо выделить ячейки, которые должен заполнить человек.
Выделение ячеек в чек-листе
Кликнуть по кнопке «Условное форматирование» на вкладке «Главная» панели инструментов.
Правила выделения ячеек
Создание нового правила заливки
После нажать «ОК»
Результат заливки пустых ячеек
Теперь незаполненные (пустые) ячейки таблицы будут залиты красным цветом, и человек вносящий данные в чек-лист обязательно обратит на них внимание.
Как в Excel использовать функцию «ЕПУСТО»
В данной заметке мы расскажем о том, что означает функция Excel «ЕПУСТО» (ISBLANK) и как ее можно использовать в работе.
В Excel есть отдельная категория функций, которые называются «Е», то есть, «Если». Она означает условие, при котором содержимое ячейки соответствует либо не соответствует истине.
Как это работает
Итак, чтобы узнать, является ли конкретная ячейка таблицы занятой или пустой, в Excel есть функция «ЕПУСТО».
Синтаксис этой функции довольно прост:
- после «=» и «ЕПУСТО» задайте в скобках ту ячейку, которую хотите проверить;
- нажмите Enter, чтобы подтвердить выполнение команды. Теперь функция вернет значение «Ложь», если ячейка содержит какие-либо данные, или «Истина», если ячейка пуста.
Если вы хотите заменить значения «Истина» и «Ложь» в своем документе, это не проблема. Можно объединить «ЕПУСТО» с функцией «ЕСЛИ» — это позволит задавать собственные значения.
Синтаксис функции «ЕСЛИ», как известно, состоит из трех частей: «Логическое выражение», «Значение_если_истина» и «Значение_если_ложь».
Логическое выражение =ЕСЛИ (ЕПУСТО (C3). C3 — это проверяемая строка. 0 соответствует «Значение_если_истина», а 1 соответствует «Значение_если_ложь».
Если ячейка C3 пуста, функция выводит значение 0, в противном случае 1.
После точки с запятой вы можете ввести в «Значение_если_истина» то значение, которое должна вывести программа, если ячейка пуста. В «Значение_если_ложь» введите значение, которое должно появиться, если соответствующая ячейка заполнена.
Внимательно следите за тем, чтобы все скобки были поставлены правильно. В противном случае Excel не сможет выполнить эту функцию.
Нажмите Enter, чтобы просмотреть результат.