Excel проверить есть ли ячейка в диапазоне

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


Вы можете использовать следующие формулы, чтобы проверить, содержит ли диапазон в Excel определенное значение:

Способ 1: проверить, содержит ли диапазон значение (возвратить TRUE или FALSE)

=COUNTIF( A1:A10 ,"this_value")>0

Способ 2: проверить, содержит ли диапазон частичное значение (возвратить TRUE или FALSE)

=COUNTIF( A1:A10 ,"*this_val*")>0

Способ 3: проверить, содержит ли диапазон значение (возврат пользовательского текста)

=IF(COUNTIF( A1:A10 ,"this_value"),"Yes","No")

В следующих примерах показано, как использовать каждую формулу на практике со следующим набором данных в Excel:

Пример 1: проверьте, содержит ли диапазон значение (возврат TRUE или FALSE)

Мы можем использовать следующую формулу, чтобы проверить, содержит ли диапазон названий команд значение «Mavericks»:

=COUNTIF( A2:A15 ,"Mavericks")>0

На следующем снимке экрана показано, как использовать эту формулу на практике:

Формула возвращает FALSE , так как значение «Mavericks» не существует в диапазоне A2:A15 .

Пример 2. Проверка того, содержит ли диапазон частичное значение (возврат TRUE или FALSE)

Мы можем использовать следующую формулу, чтобы проверить, содержит ли диапазон названий команд частичное значение «avs» в любой ячейке:

=COUNTIF( A2:A15 ,"*avs*")>0

На следующем снимке экрана показано, как использовать эту формулу на практике:

Формула возвращает TRUE , поскольку частичное значение «avs» встречается по крайней мере в одной ячейке в диапазоне A2:A15 .

Пример 3. Проверка наличия значения в диапазоне (возврат пользовательского текста)

Мы можем использовать следующую формулу, чтобы проверить, содержит ли диапазон названий команд значение «Шершни» в какой-либо ячейке, и вернуть в результате «Да» или «Нет»:

=IF(COUNTIF( A2:A15 ,"Hornets"),"Yes","No") 

На следующем снимке экрана показано, как использовать эту формулу на практике:

Формула возвращает Нет , так как значение «Шершни» не встречается ни в одной ячейке в диапазоне A2:A15 .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:

Как подсчитать частоту текста в Excel
Как проверить, содержит ли ячейка текст из списка в Excel
Как рассчитать среднее значение, если ячейка содержит текст в Excel

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Описание

В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.

Создание образца листа

В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.

Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.

A

B

C

D

E

1

Имя

Правитель

Возраст

Поиск значения

2

Анри

501

Плот

Иванов

3

Стэн

201

19

4

Иванов

101

максималь

5

Ларри

301

составляет

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Термин

Определение

Пример

Массив таблиц

Вся таблица подстановки

A2: C5

Превышающ

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

E2

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

A2: A5

Номер_столбца

Номер столбца в аргументе инфо_таблица, для которого должно быть возвращено совпадающее значение.

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

C2: C5

Интервальный_просмотр

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

ЛОЖЬ

Топ_целл

Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.

Оффсет_кол

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

   = Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)


Следующая формула находит возраст Марии на листе «образец».

   = ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:
 

Использование функции Просмотр в Excel

ВПР ()

Функция ВПР или вертикальный просмотр используется, если данные указаны в столбцах. Эта функция выполняет поиск значения в левом столбце и сопоставляет его с данными в указанном столбце в той же строке. Функцию ВПР можно использовать для поиска данных в отсортированных или несортированных таблицах. В следующем примере используется таблица с несортированными данными.

Ниже приведен пример синтаксиса формулы ВПР :

    = ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе «образец».

   = ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
 

Как найти точное совпадение с помощью функций ВПР или ГПР

INDEX () и MATCH ()

Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

    = Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе «образец».


= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:

Поиск данных в таблице с помощью функции индекс

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.

   = СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе «образец».

   = СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:
 

Использование функции СМЕЩ

Нужна дополнительная помощь?

Поиск нужных данных в диапазоне

Как использовать функцию ВПР (VLOOKUP) для поиска и выборки нужных значений из списка мы недавно разбирали. Если вы еще с ней не знакомы — загляните сюда, не пожалейте пяти минут, чтобы сэкономить себе потом несколько часов.

Если же вы знакомы с ВПР, то — вдогон — стоит разобраться с похожими функциями: ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), владение которыми весьма облегчит жизнь любому опытному пользователю Excel. Гляньте на следующий пример:

index1.gif

Необходимо определить регион поставки по артикулу товара, набранному в ячейку C16.

Задача решается при помощи двух функций:

=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)

Функция ПОИСКПОЗ ищет в столбце D1:D13 значение артикула из ячейки C16. Последний аргумент функции 0 — означает поиск точного (а не приблизительного) соответствия. Функция выдает порядковый номер найденного значения в диапазоне, т.е. фактически номер строки, где найден требуемыый артикул.

Функция ИНДЕКС выбирает из диапазона A1:G13 значение, находящееся на пересечении заданной строки (номер строки с артикулом выдает функция ПОИСКПОЗ) и столбца (нам нужен регион, т.е. второй столбец). 

Ссылки по теме

  • Использование функции ВПР (VLOOKUP) для поиска и подстановки значений.
  • Улучшенная версия функции ВПР (VLOOKUP)
  • Многоразовый ВПР

Если существует огромный диапазон и каждая ячейка содержит несколько данных, и как вы можете быстро проверить, содержит ли он некоторые значения в столбце, как показано на скриншоте ниже? В этой статье я расскажу о некоторых приемах решения этой проблемы.
документ проверьте, содержит ли диапазон значения 1

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


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

Выберите пустую ячейку рядом со значением, которое вы хотите проверить, отображается ли оно в диапазоне, введите эту формулу = СЧЁТЕСЛИ ($ A $ 2: $ A $ 6, «*» & B2 & «*»)> 0 и перетащите дескриптор автоматического заполнения вниз чтобы проверить другие значения. Смотрите скриншот:
документ проверьте, содержит ли диапазон значения 2

Примечание:

1. В формуле A2: A6 — это диапазон, который вы хотите использовать, B2 — это значение, которое вы хотите проверить, появляется ли в этом диапазоне.

2. Эта формула также может использоваться для диапазона, в котором каждая ячейка содержит одни данные.



Относительные статьи:

  • Как проверить, пустой ли лист в Excel?
  • Как проверить, существует ли лист в книге?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

У меня есть диапазон (A3:A10), который содержит имена, и я хотел бы проверить, совпадает ли содержимое другой ячейки (D1) с одним из имен в моем списке.

Я назвал диапазон A3:A10 «some_names», и я хотел бы получить формулу Excel, которая даст мне True/False или 1/0 в зависимости от содержимого.

= СЧЕТЕСЛИ (some_names, D1)

должно работать (1, если имя присутствует — больше, если более одного экземпляра).

Мой предпочтительный ответ (модифицированный от Яна):

=COUNTIF(some_names,D1)>0

который возвращает TRUE, если D1 найден в диапазоне some_names хотя бы один раз, или FALSE в противном случае.

(COUNTIF возвращает целое число от того, сколько раз критерий найден в диапазоне)

ответ дан joseph.hainline1k

Я знаю, что в ОП специально указывалось, что список составлен из ряда ячеек, но другие могут наткнуться на это при поиске определенного диапазона значений.

Вы также можете искать определенные значения, а не диапазон, используя функцию MATCH . Это даст вам номер, где это соответствует (в данном случае второе место, так 2). Он вернет # N/A, если нет совпадений.

=MATCH(4,{2,4,6,8},0)

Вы также можете заменить первые четыре ячейкой. Поместите 4 в ячейку A1 и введите это в любую другую ячейку.

=MATCH(A1,{2,4,6,8},0)

Если вы хотите превратить показатель в какой-либо другой вывод (например, логический), вы также можете сделать:

= IF(COUNTIF(some_names, D1)> 0, TRUE, FALSE)

Наслаждайтесь!

ответ дан Ian McClellan542

Для разнообразия можно использовать МАТЧ, например

=ISNUMBER(MATCH(D1,A3:A10,0))

ответ дан barry houdini10k

есть изящный маленький трюк, возвращающий логическое значение в случае, если диапазон some_names может быть задан явно, например, "purple","red","blue","green","orange":

=OR("Red"={"purple","red","blue","green","orange"})

Обратите внимание, что это НЕ формула массива

Вы можете вкладывать --([range]=[cell]) в аргумент IF , SUMIFS или COUNTIFS . Например, IF(--($N$2:$N$23=D2),"in the list!","not in the list") . Я считаю, что это может использовать память более эффективно.

Кроме того , вы можете обернуть ISERROR вокруг VLOOKUP все обернутые вокруг оператора IF Как, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" )

ответ дан John Skilbeck129

Версия формулы массива (введите с помощью Ctrl + Shift + Enter):

=OR(A3:A10=D1)

В таких ситуациях я только хочу получать уведомления о возможных ошибках, поэтому я бы разрешил ситуацию таким образом …

=if(countif(some_names,D1)>0,"","MISSING")

Затем я скопировал бы эту формулу с E1 на E100 . Если значение в столбце D отсутствует в списке, я получу сообщение MISSING, но если значение существует, я получу пустую ячейку. Это делает пропущенные значения более заметными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками microsoft-excel worksheet-function.

I want to test if a given cell is within a given range in Excel VBA. What is the best way to do this?

Fionnuala's user avatar

Fionnuala

90.1k7 gold badges110 silver badges148 bronze badges

asked Mar 3, 2011 at 16:12

loveforvdubs's user avatar

1

From the Help:

Set isect = Application.Intersect(Range("rg1"), Range("rg2"))
If isect Is Nothing Then
    MsgBox "Ranges do not intersect"
Else
    isect.Select
End If

answered Mar 3, 2011 at 16:45

iDevlop's user avatar

iDevlopiDevlop

24.6k11 gold badges89 silver badges147 bronze badges

1

If the two ranges to be tested (your given cell and your given range) are not in the same Worksheet, then Application.Intersect throws an error. Thus, a way to avoid it is with something like

Sub test_inters(rng1 As Range, rng2 As Range)
    If (rng1.Parent.Name = rng2.Parent.Name) Then
        Dim ints As Range
        Set ints = Application.Intersect(rng1, rng2)
        If (Not (ints Is Nothing)) Then
            ' Do your job
        End If
    End If
End Sub

answered Jan 8, 2015 at 11:11

sancho.s ReinstateMonicaCellio's user avatar

Determine if a cell is within a range using VBA in Microsoft Excel:

From the linked site (maintaining credit to original submitter):

VBA macro tip contributed by Erlandsen Data Consulting
offering Microsoft Excel Application development, template customization,
support and training solutions

Function InRange(Range1 As Range, Range2 As Range) As Boolean
    ' returns True if Range1 is within Range2
    InRange = Not (Application.Intersect(Range1, Range2) Is Nothing)
End Function


Sub TestInRange()
    If InRange(ActiveCell, Range("A1:D100")) Then
        ' code to handle that the active cell is within the right range
        MsgBox "Active Cell In Range!"
    Else
        ' code to handle that the active cell is not within the right range
        MsgBox "Active Cell NOT In Range!"
    End If
End Sub

Brian Burns's user avatar

Brian Burns

19.9k8 gold badges82 silver badges76 bronze badges

answered Mar 3, 2011 at 16:20

mwolfe02's user avatar

mwolfe02mwolfe02

23.5k9 gold badges89 silver badges157 bronze badges

7

@mywolfe02 gives a static range code so his inRange works fine but if you want to add dynamic range then use this one with inRange function of him.this works better with when you want to populate data to fix starting cell and last column is also fixed.

Sub DynamicRange()

Dim sht As Worksheet
Dim LastRow As Long
Dim StartCell As Range
Dim rng As Range

Set sht = Worksheets("xyz")
LastRow = sht.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
Set rng = Workbooks("Record.xlsm").Worksheets("xyz").Range(Cells(12, 2), Cells(LastRow, 12))

Debug.Print LastRow

If InRange(ActiveCell, rng) Then
'        MsgBox "Active Cell In Range!"
  Else
      MsgBox "Please select the cell within the range!"
  End If

End Sub 

answered Dec 8, 2015 at 8:53

Jimit Rupani's user avatar

Here is another option to see if a cell exists inside a range. In case you have issues with the Intersect solution as I did.

If InStr(range("NamedRange").Address, range("IndividualCell").Address) > 0 Then
    'The individual cell exists in the named range
Else
    'The individual cell does not exist in the named range
End If

InStr is a VBA function that checks if a string exists within another string.

https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/instr-function

answered Nov 29, 2017 at 17:00

Roskow's user avatar

RoskowRoskow

1807 bronze badges

1

I don’t work with contiguous ranges all the time. My solution for non-contiguous ranges is as follows (includes some code from other answers here):

Sub test_inters()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim inters As Range

    Set rng2 = Worksheets("Gen2").Range("K7")
    Set rng1 = ExcludeCell(Worksheets("Gen2").Range("K6:K8"), rng2)

    If (rng2.Parent.name = rng1.Parent.name) Then
        Dim ints As Range
        MsgBox rng1.Address & vbCrLf _
        & rng2.Address & vbCrLf _

        For Each cell In rng1
            MsgBox cell.Address
            Set ints = Application.Intersect(cell, rng2)
            If (Not (ints Is Nothing)) Then
                MsgBox "Yes intersection"
            Else
                MsgBox "No intersection"
            End If
        Next cell
    End If
End Sub

answered May 29, 2018 at 20:20

Jeremy H.'s user avatar

Jeremy H.Jeremy H.

591 silver badge11 bronze badges

Если пользователь использует таблицу Excel с небольшим количеством данных, то проблем с не возникает с поиском пустых ячеек. Но когда информации очень много, хорошо было бы автоматизировать этот процесс. Ведь вручную просматривать тысячи ячеек занимает очень много времени, которое можно было бы использовать для других рабочих задач или отдыха. Особенно это важно при работе с документами, где большая часть данных – числовые. Там и без того важно не запутаться.

Также автоматизация поиска пустых ячеек важна в ситуациях, когда на основе полученных данных другая формула выполняет определенные вычисления. Тогда это позволяет сэкономить время сразу на нескольких этапах.

С помощью встроенных средств Excel воплотить эту задачу в жизнь не составит никакого труда. При этом есть целых три способа проверки ячейки на предмет того, есть в ней какая-то информация или нет, каждый из которых должен использоваться в зависимости от ситуации. 

Содержание

  1. Как определить, пустая ячейка или нет (способы)
  2. Процедуры VBA
  3. Код для конкретной ячейки
  4. Код для активной ячейки
  5. Функция ЕПУСТО для проверки пустых ячеек
  6. Примеры использования функции ЕПУСТО
  7. Почему следует использовать функцию ЕПУСТО при проверке пустых ячеек?
  8. Пример проверки на пустую ячейку
  9. Как подсчитать количество пустых ячеек в Эксель
  10. Особенности применения функции ЕПУСТО в Excel
  11. Выводы

Как определить, пустая ячейка или нет (способы)

Это можно сделать с помощью функции ЕПУСТО, которая может использоваться для данных самых разных типов, включая не только числа и текст, но даже логические функции. Давайте более подробно рассмотрим особенности работы с этой формулой.

Эта функция имеет очень простую схему использования. Если в конкретной ячейке нет никакой информации, то возвращается ИСТИНА. Если же в ней содержится определенная информация, то, соответственно, значение оказывается ЛОЖЬ.

Есть и другие способы определения, есть ли информация во всех ячейках определенного диапазона или в конкретной ячейке. Также в некоторых ситуациях разумно применять обычную функцию ЕСЛИ, знакомую почти каждому активному пользователю. Давайте разберем также и правила их использования. 

Процедуры VBA

VBA – это язык программирования, который используется для написания макросов. Это маленькие исполняемые модули, которые выполняют определенную последовательность действий, в том числе, и осуществляют проверку, есть ли внутри ячейки какая-то информация, или нет.

Код для конкретной ячейки

Если перед нами стоит задача указать конкретную ячейку для того, чтобы осуществлялась ее проверка на предмет наличия какой-то информации, то нужно записать такой код.

Sub example()  

 If IsEmpty(Range(«A1»)) = True Then  

 MsgBox «Ячейка пустая»  

 Else  

 MsgBox «Ячейка не пустая»  

 End If  

End Sub  

Этот фрагмент кода проверяет ячейку А1 на предмет того, содержатся ли в ней какие-то данные. И результат выводит в соответствующее окошко.

Код для активной ячейки

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

Sub example()  

 If IsEmpty(ActiveCell) = True Then  

 MsgBox «Ячейка пустая»  

 Else  

 MsgBox «Ячейка не пустая»  

 End If  

End Sub 

Функция ЕПУСТО для проверки пустых ячеек

Как мы уже поняли, функция ЕПУСТО дает возможность определить, пустая ли определенная ячейка. Давайте разберем некоторые практические аспекты использования этой функции.

Примеры использования функции ЕПУСТО

Давайте опишем некоторые способы применения функции ЕПУСТО на практике. Допустим, вы работаете преподавателем и у вас открыта таблица с оценками учеников по последнему тесту. При этом некоторые из баллов не записаны, поскольку ряд студентов плохо сдали его и пошли на пересдачу. И допустим, перед нами стоит задача написать в третьей колонке список тех, кто сдал экзамен с первого раза.

Как определить - пустая ячейка, или в ней содержатся данные

1

Чтобы реализовать поставленные задачи, нам нужно ввести следующую формулу после выделения диапазона C3:C18.

=ЕСЛИ(ИЛИ(ЕПУСТО(B3);B3=2);»На пересдачу»;»Сдал»)

Если пользователь хоть немного понимает, как устроена работа с формулами, то он, основываясь на синтаксисе приведенной выше строки, поймет, что если в ячейке есть балл, то в ячейку будет записано «Сдал». Если же оценки нет, то появится результат «На пересдачу».

После того, как мы введем эту формулу, результат будет следующим:

Как определить - пустая ячейка, или в ней содержатся данные

2

Далее давайте попробуем сделать особое форматирование в зависимости от того, есть ли оценка у человека или нет. Для этого нужно найти параметр «Стили» на вкладке «Главная». Там находится пункт «Условное форматирование». После того, как мы его выберем, нужно нажать кнопку «Создать правило».

Как определить - пустая ячейка, или в ней содержатся данные

3

Появится окно, в котором нам нужно выбрать последнюю опцию, где идет речь об использовании формулы для определения параметров форматирования. В строке ниже нужно написать следующую формулу, которая показывается на скриншоте.

Как определить - пустая ячейка, или в ней содержатся данные

4

После этого нам нужно нажать на кнопку «Формат» и выбрать красный цвет фона. Действия подтверждаются путем нажатия кнопки «ОК». Теперь у нас все ячейки с надписью «На пересдачу» выделяются красным цветом.

Как определить - пустая ячейка, или в ней содержатся данные

5

Почему следует использовать функцию ЕПУСТО при проверке пустых ячеек?

Тот человек, который уже немного разбирается в Excel, может задать вопрос: почему нельзя использовать банальную функцию ЕСЛИ для этой цели? Да, можно. Достаточно просто записать такую формулу:

=ЕСЛИ(ИЛИ(B3=»»;B3=2);»На пересдачу»;»Сдал»)

Видим, что мы здесь использовали кавычки для определения ячеек без никаких значений. И в описанном выше случае эта формула также бы работала. Но не во всех случаях это возможно. Если содержатся определенные типы значений, этот трюк работать не будет. Давайте обратим внимание на этот скриншот.

Как определить - пустая ячейка, или в ней содержатся данные

6

Видим, что в первой ячейке содержится знак ‘. Этот символ не отображается в листе, и он также не может быть обнаружен функцией ЕСЛИ. Все потому, что это специальный символ Excel, который необходим для того, чтобы показывать текстовую информацию, если ячейка находится в числовом формате, например. Это часто используется, если необходимо в ячейку вставить плюс. Если не использовать одинарную кавычку, программа будет думать, что это мы собираемся вводить формулу. В этом основное отличие. 

Если использовать функцию ЕПУСТО для этой цели, пользователь получает возможность узнать реальную картину, какие ячейки действительно пустые, а не только отображаются, как пустые. 

Пример проверки на пустую ячейку

У нас есть таблица, в которой указана определенная информация. Перед нами стоит задача проверить заполненность полей. Наша исходная таблица выглядит следующим образом.

Как определить - пустая ячейка, или в ней содержатся данные

7

Чтобы понять, есть ли пустые ячейки, нужно использовать именно формулу массива. Ее основное отличие в том, что она работает одновременно с большим количеством данных. Чтобы сделать формулу массива, нужно нажать комбинацию Ctrl + Shift + Enter после того, как формула будет введена в соответствующую строку.

=ЕСЛИ(СУММ(—ЕПУСТО(B3:B17));ИСТИНА;ЛОЖЬ)

В примере, которое описывается нами сейчас, функция СУММ применяется с целью определения количества всех значений, которые возвращаются функцией ЕПУСТО. Если же после вычисления по этой формуле окажется значение, превышающее ноль, то вернется значение «Истина».

Как следствие, мы получим следующую таблицу.

Как определить - пустая ячейка, или в ней содержатся данные

8

Видим, что в рассматриваемом примере есть те ячейки, не содержащие никаких значений.

Внимание. Были использованы символы «–-» в формуле, приводимой выше. На это надо обратить особое внимание. Эти символы означают двойное отрицание. В нашем примере его нужно использовать, чтобы превратить логический тип данных в числовой.

Ряд экселевских функций не поддерживают автоматическое превращение типов данных, поэтому нужно делать все своими руками. Наиболее часто для этой цели используется умножение на единицу или прибавление нуля к получившемуся значению. Но также можно использовать любую другую арифметическую операцию, которая вернет то же самое значение. 

Но практика показывает, что наиболее удобно использовать двойной минус. Это не только более удобно на этапе набора, но еще и ускоряет работу таблицы. Причем прирост производительности может достигать 15 процентов, что очень много, когда имеется большое количество функций. 

Как подсчитать количество пустых ячеек в Эксель

Теперь давайте разберем еще один пример, который больше всего подходит под нашу ситуацию. Предположим, у нас есть список работников офиса, каждый из которых обозначен определенным кодом, а также их возрастом. Но в таблице еще не все поля указаны. Наша задача – осуществить проверку, все ли поля заполнены и вывести сообщение с количеством полей, которые не были заполнены. 

Сама таблица выглядит так.

Как определить - пустая ячейка, или в ней содержатся данные

9

Чтобы реализовать поставленную задачу, нам нужна такая формула. 

=ЕСЛИ(СУММ(—ЕПУСТО(B3:B12));СЧИТАТЬПУСТОТЫ(B3:B12)&» поля не заполнены»;СРЗНАЧ(B3:B12))

Функция ЕСЛИ дает возможность осуществить проверку набора ячеек на предмет того, есть ли среди них пустые значения (для этого используется функция —ЕПУСТО с соответствующими аргументами). Если в итоге суммирования было возвращено положительное значение, то будет показан текст, в котором записано, сколько ячеек без значения. Для этого используется функция СЧИТАТЬПУСТОТЫ. А с помощью знака & мы соединяем несколько значений. 

Получается такой документ.

Как определить - пустая ячейка, или в ней содержатся данные

10

При этом нужно помнить про все особенности и ограничения применения функции ЕСЛИ, описанные выше. 

Особенности применения функции ЕПУСТО в Excel

Есть несколько типов функций, и ЕПУСТО принадлежит к категории логических. Простыми словами, она проверяет какое-то выражение на предмет соответствия определенному критерию. Таких функций насчитывается еще огромное количество, и это не только указанная выше ЕСЛИ. Также к таким функциям относятся такие операторы, как ЕССЫЛКА, ЕЧИСЛО и так далее. Все они возвращают одно из двух возможных значений: истинное или ложное. 

Если записать функцию, ее синтаксис будет следующим.

=ЕПУСТО(значение)

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

Есть ряд особенностей, которые берутся в учет, когда пользователь собирается работать с этой функцией:

  1. Нельзя указывать конкретное значение, как параметр, поскольку тогда будет автоматически возвращено значение «ЛОЖЬ». Все дело в том, что такое значение априори не может содержат никаких значений. 
  2. Если перед нами стоит задача сделать так, чтобы было возвращена «ИСТИНА» в случае заполненности ячейки любой информацией, то нужно использовать сразу две функции: НЕ и ЕПУСТО. Тогда сначала нужно использовать первую, а потом вторую в качестве аргумента. 
  3. Использование функции АДРЕС, как параметр функции ЕПУСТО. бесполезно. Тогда всегда будет возвращаться результат, что критерию значение не соответствует. Все потому, что функцией АДРЕС осуществляется возвращение ссылки, которая сама по себе уже является разновидностью информации даже в том случае, если в ячейке, на которую она ссылается, нет никаких данных. 
  4. Значение «ЛОЖЬ» будет в качестве итога даже в той ситуации, когда есть ошибка. Все потому, что какая-то информация содержится в ней в любом случае, пусть даже неверная. А если речь идет об информации про ошибку, то это еще и полезная информация. А ссылка уже может считаться полноценным типом данных. 
  5. Очень часто пользователи забывают о формуле массива, чтобы осуществить проверку сразу большого количества ячеек. Иначе значение, возвращаемое функцией, будет неправильным. 

Выводы

Простыми словами, найти пустые ячейки в документе или конкретном листе не так уж и сложно. Это делается несколькими способами, каждый из которых имеет свои особенности. Поэтому нужно использовать те, которые лучше всего подходят под конкретную ситуацию. 

Кроме двух функций, также возможно использование и макросов для того, чтобы понять, есть ли информация в определенной ячейке, или нет. выше были приведены примеры кода, которые позволяют самостоятельно написать подобную подпрограмму. Правда. нужно ее адаптировать под себя. заменив соответствующие ячейки на свои. Эту проблему можно решить с помощью использования макроса на активную ячейку. В таком случае просто достаточно нажать на ту ячейку, которую нужно проверить, после чего программа все сделает за вас. 

Оцените качество статьи. Нам важно ваше мнение:

Понравилась статья? Поделить с друзьями:
  • Excel проверить есть ли содержимое в ячейке
  • Excel проверить есть ли значение в массиве
  • Excel проверить если в ячейке число
  • Excel проверка на заполнение ячейки в excel
  • Excel проверить вхождение значения