Как определить является ли содержимое ячейки формулой в microsoft excel

Обновлено: 04.07.2024

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

Выделить ячейки, которые содержат формулы можно воспользовавшись стандартным инструментом EXCEL Выделение группы ячеек… или через меню: на вкладке Главная в группе Редактирование щелкните стрелку рядом с командой Найти и выделить , а затем выберите в списке пункт Формулы .

Выделить ячейки, которые содержат НЕ формулы, т.е. содержат константы можно аналогичным образом, только вместо Формулы нужно выбрать Константы .

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

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

Допустим значения вводятся в диапазон A1:A10 (см. файл примера ) . Для настройки Условного форматирования для этого диапазона необходимо сначала создать Именованную формулу , для этого:

  • выделите ячейку A1 ;
  • вызовите окно Создание имени из меню Формулы/ Определенные имена/ Присвоить имя ;
  • в поле Имя введите название формулы, например Формула_в_ячейке ;
  • в поле Диапазон введите =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1)
  • нажмите ОК.


Теперь настроим правило Условного форматирования , для этого:

  • выделите диапазон A1:A10 ;
  • вызовите инструмент Условное форматирование ( Главная/ Стили/ Условное форматирование/ Создать правило );
  • выберите Использовать формулу для определения форматируемых ячеек;
  • в поле « Форматировать значения, для которых следующая формула является истинной » введите =Формула_в_ячейке ;
  • выберите требуемый формат, например, красный цвет фона;


Теперь все ячейки из диапазона A 1: A 10 , содержащие формулы, выделены красным.


В этом примере мы использовали макрофункцию ПОЛУЧИТЬ.ЯЧЕЙКУ() . Это набор функций к EXCEL 4-й версии, которые нельзя напрямую использовать на листе EXCEL 2007, а можно использовать только в качестве Именованной формулы , что мы и сделали.

Чтобы, наоборот, выделить все непустые ячейки, содержащие константы (или НЕ содержащие формулы), нужно изменить формулу на =И(НЕ(ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1));НЕ(ЕПУСТО(Лист1!A1)))

Совет : Чтобы показать все формулы, которые имеются на листе нужно на вкладке Формулы в группе Зависимости формул щелкните кнопку Показать формулы .

Чтобы выделить все ячейки, содержащие формулы, нужно на вкладке Главная , в группе Редактирование выбрать команду Формулы .

Чтобы найти все ячейки на листе, имеющие Условное форматирование необходимо:

Начиная с версий Excel 2013 среди стандартных функция появилась функция ЕФОРМУЛА (ISFORMULA) , которая позволяет определить наличие формулы в ячейке. Единственный аргумент функции - ссылка на ячейку: =ЕФОРМУЛА( A1 ) .
Функция возвращает ИСТИНА (TRUE) , если в ячейке есть формула и ЛОЖЬ (FALSE) если в ячейке константа.
Статья была написана ранее и описанные в ней способы применимы к любой версии Excel

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

Способ первый
Создание именованной формулы(без применения VBA - Visual Basic for Application)

  • Выделяете ячейку B1
  • жметe Ctrl+F3(вызов диспетчера имен) Если по каким-то причинам Ctrl+F3 не работает, то Диспетчер имен можно вызвать через меню:
    Excel 2003 :Вставка-Имя-Присвоить.
    Excel 2007-2010 :вкладка Формулы-Диспетчер имен.
  • в поле имя пишем - HasFormula(или любое понравившееся название, но не противоречащее правилам создания имен в Excel. Подробнее можно прочитать в статье: Именованные диапазоны)
  • в поле Диапазон пишем формулу: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1)

если изменить первый параметр на 6 =ПОЛУЧИТЬ.ЯЧЕЙКУ( 6 ;Лист1!A1) , то результатом будет текст формулы из ячейки, которая указана в функции ПОЛУЧИТЬ.ЯЧЕЙКУ

Теперь, записав в ячейку В1 : =HasFormula Вы узнаете, есть ли в ячейке А1 формула или же там константа.

Так же при помощи функций листа макросов можно получить и сам текст формулы(если в ячейке записана формула СЕГОДНЯ() , то ПОЛУЧИТЬ.ЯЧЕЙКУ вернет именно текст СЕГОДНЯ()). Для этого достаточно поменять формулу в поле Диапазон на такую:
=ПОЛУЧИТЬ.ФОРМУЛУ(Лист1!A1)

Недостатки данного метода - Вы привязаны к "левостороннему" определению формулы. Т.е. таким методом Вы можете узнать есть ли формула(или какая формула) в ячейке, расположенной слева от ячейки с именованной формулой. Для того, чтобы "узнать формулу справа" именованная формула должна выглядеть так: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!C1) ;для работы формулы обязательно должны быть разрешены макросы. Чтобы не зависеть от левостороннего или правостороннего определения можно закрепить столбцы(выделяете ссылку на ячейку - А1 и нажимаете F4. Ссылка будет меняться, появятся знаки доллара $. Если знак стоит перед именем столбца - $А1 - то смещение по столбцу происходить не будет. Так же со строками)
Для ПОЛУЧИТЬ.ФОРМУЛУ есть еще недостаток: формула будет отображаться в стиле ссылок R1C1, что не совсем удобно.
.

Для работы такой функции должны быть разрешены макросы.

Способ второй
Еще один метод определения(на мой взгляд более удобный в использовании) - создание пользовательской функции:

Function IsFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False) 'Application.Volatile True If ShowFormula Then If Cell.HasFormula Then IsFormula = "Формула: " & IIf(Cell.HasArray, "", Cell.FormulaLocal) Else IsFormula = "Значение: " & Cell.Value End If Else IsFormula = Cell.HasFormula End If End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA( Alt + F11 ) -создать стандартный модуль(Insert -Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Shift + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .

Теперь в ячейку записываем созданную формулу
=IsFormula( A2 )
Данная функция имеет два аргумента:

  • Cell - ссылка на проверяемую ячейку
  • ShowFormula - необязательный аргумент. Если присвоено значение ЛОЖЬ или 0 или опущен(не указан) - то функция вернет значение ИСТИНА или ЛОЖЬ(в зависимости от наличия или отсутствия формулы в ячейке). Если присвоено значение ИСТИНА или 1, то в функция вернет не просто ИСТИНА или ЛОЖЬ, а еще и текст самой формулы.

Формулу можно так же найти в диспетчере функций в категории Определенные пользователем - IsFormula и записывать её в ячейку через мастер функций.
Чтобы при изменении формулы в целевой ячейке сразу же изменялось её отображение в ячейке с данной функцией необходимо убрать апостроф(') перед Application.Volatile True (в файле-примере это уже сделано).

Недостатки данного метода - для работы функции обязательно должны быть разрешены макросы

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

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

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

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

1. Введите эту формулу: = ISFORMULA (A1) (A1 это ячейка, которую вы хотите проверить, является ли это формулой) в пустую ячейку, чтобы проверить, содержит ли конкретная ячейка формулу или нет, затем нажмите Enter ключ к результату, НЕПРАВДА указывает, что это не формула, ИСТИНА обозначает формулу. Смотрите скриншот:

док найти формулы 1

2. Затем вы можете перетащить дескриптор заполнения в диапазон ячеек, в которых вы хотите проверить соответствующие ячейки, если это формулы, см. Снимок экрана:

док найти формулы 2

Найдите и выделите все ячейки с формулами с помощью команды Перейти к специальной

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

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

2. Нажмите Главная > Найти и выбрать > Перейти к специальному, см. снимок экрана:

док найти формулы 3

3. В Перейти к специальному диалоговое окно, выберите Формулы и проверьте все параметры под Формулы, см. снимок экрана:

док найти формулы 4

4. Затем нажмите OK, выделены сразу все ячейки с формулами. Смотрите скриншот:

док найти формулы 5

Выделите все ячейки с формулами с кодом VBA

Следующий код VBA может помочь вам выделить все ячейки формулы, чтобы выделить их.

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модульи вставьте следующий код в Модуль Окно.

Код VBA: выделить все ячейки формулами

3, Затем нажмите F5 ключ для запуска этого кода, а затем выберите диапазон данных, в котором вы хотите найти формулы из окна подсказки, см. снимок экрана:

док найти формулы 6

4. Нажмите OK кнопку, и все ячейки формулы были выделены желтым цветом, как показано на следующем снимке экрана:

док найти формулы 7

Внимание: В приведенном выше коде xRg.Interior.Color = vbYellow , вы можете изменить цвет выделения - желтый на свой вкус, например красный, зеленый, синий и т. д.

Автоматически выделять все формулы во всей книге с помощью Kutools for Excel

Kutools for ExcelАвтора Выделить формулы Эта функция может помочь вам автоматически выделить формулы во всей книге, а выделенные ячейки будут изменяться по мере динамического изменения ячейки.

После установки Kutools for Excel, пожалуйста, сделайте следующее :( Бесплатная загрузка Kutools для Excel сейчас )

1. Нажмите Kutools Plus > Дизайн рабочего листа, И новый Дизайн вкладка будет отображаться на ленте, щелкните Выделить формулы под Дизайн вкладку см. скриншоты:


1

2. И тогда все ячейки формулы на всех листах были выделены сразу.

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

Функция ЕСЛИ в MS Excel с одним условием.

Функцией ЕСЛИ в Excel, первый пример.

Рассмотрим простой пример применения функции ЕСЛИ в MS Excel. У нас есть столбец №1, в котором содержаться числа от 1 до 10.

Функция ЕСЛИ в MS Excel. Описание и примеры использования

Необходимо проверить, соответствует ли числа находящиеся в столбце №1 нашему критерию. Критерий: является ли числа находящиеся в столбце №1 числами, значения которых больше числа 4.

Взываем функцию ЕСЛИ в ячейку С3.

Аргументы функции

В диалоговом окне Аргументы функции видим три поля для заполнения:

Нажимаем ОК в диалоговом окне Аргументы функции.

Функция ЕСЛИ в MS Excel. Описание и примеры использования

Как видим, число содержащиеся в ячейки В3 не является числом, которое больше числа 4. Функция ЕСЛИ вернула значение_если_ложь (неправда). Протянем функцию ЕСЛИ вниз по столбцу, чтобы проверить значения находящиеся в остальных ячейках столбца №1, на соответствие нашему критерию (логическое_выражение).

Функция ЕСЛИ в MS Excel. Описание и примеры использования

Как видно из результата, ячейки в диапазоне В7:В12 содержат в себе числа, которые больше числа 4. Функция ЕСЛИ вернула значение_если_истина (правда).

Функция ЕСЛИ в Excel, второй пример.

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

Функция с одним условием

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

Функция ЕСЛИ в MS Excel с одним условием

Важно: текстовый критерий в поле логическое_выражение должен быть заключен в кавычки. Иначе функция выдаст ошибку.

Если студен сдал зачет, он допущен к экзамену, если нет, то не допущен. Нажимаем ОК в диалоговом окне Аргументы функции и протягиваем функцию ЕСЛИ вниз, по всему столбцу Допуск к экзамену. Получаем:

Функция ЕСЛИ в MS Excel с одним условием

Видим, что в зависимости от результатов сдачи зачета, студент допущен к экзамену, либо не допущен.

Обращаю внимание, что при работе с функцией ЕСЛИ, можно использовать разные варианты равенств: больше (>), меньше(<), больше или равно (>=), меньше или равно (<=), равно (=), не равно (<>).

Функция ЕСЛИ в MS Excel с несколькими условиями.

Предположим, что у нас есть таблица с результатами сдачи контрольной работы студентами ВУЗа. Результаты контрольной работы оцениваются в баллах. От 0 до 100. Где все, что выше 90 баллов, отлично. Выше 80 баллов, это хорошо. Выше 70 баллов, это удовлетворительно. Ниже 70 баллов, это плохо.

Формула функции ЕСЛИ будет выглядеть вот так:


Где ячейка С3, первая из проверяемых ячеек в столбце Оценка. Далее функция протянута вниз по столбцу Результат, до конца таблицы.

Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.

Таблица выглядит вот так:

Функция ЕСЛИ в MS Excel с несколькими условиями

В столбце Результат, в зависимости от количества баллов, функция ЕСЛИ вернула значение, согласно заданному критерию в формуле функции.

Использование операторов «И» и «ИЛИ» в функции ЕСЛИ в MS Excel.

Пример оператором "И"

Формула функции ЕСЛИ выглядит вот так:


Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.

Пример с оператором "ИЛИ"

Формула функции ЕСЛИ выглядит вот так:


Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.

Читайте также: