Excel как проверить что в ячейке формула или значение

Хитрости »

1 Май 2011              81482 просмотров


Как узнать есть ли формула в ячейке?

Начиная с версий 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 & "}", Cell.FormulaLocal)
        Else
            IsFormula = "Значение: " & Cell.Value
        End If
    Else
        IsFormula = Cell.HasFormula
    End If
End Function

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

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

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

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

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

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

Скачать пример

  Tips_All_HasFormula.xls (31,0 KiB, 4 353 скачиваний)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Как узнать, что в ячейке формула?

Автор Василий Алибабаевич, 02.06.2008, 17:51

« назад — далее »

Задача отфильтровать ячейки с формулами.
Допустим в столбце протянута формула, затем в результате ручного труда часть результатов формулы заменяется на значения, ну или просто есть большая таблица, где-то у нее значения, а где-то подитоги. Вспомогательных столбцов справа можно делать столько сколько нужно.
Как выяснить, что в ячейке не значение, не текст, а именно формула.
Причем формула может быть, как =впр(A1;Лист2!A:C;3;0) , так и =С131+С13 .
;)


очень просто:
1. выделить диапазон
2. нажать Ctrl+G (одновременное нажатие клавишь Ctrl и G)
3. в диалоговом окне нажать «Выделить…»
4. поставить точку «формулы» (третье сверху слово в первом столбце)
5. нажать «Ок»


Есть ещё сочетание клавиш Ctrl+` (Показать формулы)


Цитата: DaniilK от 02.06.2008, 18:27
очень просто:
1. выделить диапазон
2. нажать Ctrl+G (одновременное нажатие клавишь Ctrl и G)
3. в диалоговом окне нажать «Выделить…»
4. поставить точку «формулы» (третье сверху слово в первом столбце)
5. нажать «Ок»

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

Я сейчас использую такой способ: Он требует создания вспомогательного столбца (справа).
Создается вспомогательный столбец, в который простым копированием копируется содержимое искомого столбца. Затем запускается автозамена: Заменить =* на «Здесь формула»  . Таким образом все ячейки с формулами меняются на текст «здесь формула», а все ячейки со значениями остаются как и были.
Вот как-бы автоматизировать процесс… ну да ладно..  ;D Т.е. есть ли такая функция, которая бы работала не с результатом ячейки, прямо с тем содержанием, которое в строке формул у этой чейки…?  ???


http://www.msoffice.nm.ru/faq/formula2.htm#faq43
Как с помощью формул определить содержит ли ячейка формулу?
В меню Вставка выберите пункт Имя, далее выберите команду Присвоить. В диалоговом окне Присвоение имени в поле Имя введите нужное имя, например ЕФОРМУЛА, а в поле Формула введите следущую формулу :
=ПОЛУЧИТЬ.ЯЧЕЙКУ(48;$A$1)
и нажмите кнопку ОК. Затем, выберите нужную ячейку и введите именованную формулу =ЕФОРМУЛА
Эта формула возвратит логическое значение ИСТИНА — если в указанной ячейке находится формула, и ЛОЖЬ — если ячейка пустая или содержит константу.


Спасибо и за пример и за ссылку — ЭТО ПРОСТО КЛАДЕЗЬ!



Цитата: DaniilK от 03.06.2008, 11:06
В меню Вставка выберите пункт Имя, далее выберите команду Присвоить. В диалоговом окне Присвоение имени в поле Имя введите нужное имя, например ЕФОРМУЛА

Если кто-то через поиск зайдёт в эту тему, то в свежем Excel такая формула есть по умолчанию. Так и называется, ЕФОРМУЛА.


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Как узнать, что в ячейке формула?

Для версий старше Exel-2013 такого функционала (без использования VBA), к сожалению, нет.
Но вариант есть — использование макрофункций.

Не VBA, но макросы должны быть разрешены. На листе не используются, но применимы в именах.
С помощью функции ПОЛУЧИТЬ.ЯЧЕЙКУ можно определить содержимое ячейки, ее адрес, заливку…

Ctrl+F3 — мы в Диспетчере_имен. Создать имя (пусть будет «тестформула»), в поле Диапазон вписать формулу:

 =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист1!$A$1)

На листе в любой ячейке:

=тестформула

Если в ячейке А1 константа, результат — константа, если формула — отобразится формула. А что такое формула? Текст, который начинается знаком «=». Отлично! Можно научиться определять, что находится в А1:

=ЕСЛИ(ЛЕВСИМВ(тестформула)="=";"формула";"значение")

‘ —————

Чем это может помочь при контроле вводимых данных?

Имя у нас уже есть. Доработаем:

=ЛЕВСИМВ(ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист1!$A$1)="="

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

Пишем в C1:

=тестформула

В проверке данных ячейки А1:

=C1

Порядок, получили замену для ЕФОРМУЛА :)

Помогаю со студенческими работами здесь

Формула в EXCEL которая бы искала значение в одной ячейке
Помогите составить формулу в EXCEL которая бы искала значение в одной ячейке (в данной ячейке…

Как определить формула произвела расчет или вернула ошибку в ячейке
Имеется формула, которая подставляет данные из справочника, при отсутствии необходимых данных в…

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

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

нужно проверить ячейки массива,
что в первой…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

2

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

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

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

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

Автоматически выделять все формулы во всей книге с помощью Kutools for 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: выделить все ячейки формулами

Sub FindFormulaCells()
'Updateby Extendoffice
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Application.InputBox("please select a range:", "Kutools for Excel", Application.ActiveSheet.UsedRange.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xRg = xRg.SpecialCells(xlCellTypeFormulas, 23)
    If xRg Is Nothing Then Exit Sub
    xRg.Interior.Color = vbYellow
End Sub

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

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

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

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

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


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

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

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

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

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

Как выделить / условное форматирование ячеек с формулами в Excel?

Бесплатная загрузка Kutools for Excel Теперь


Статьи по теме:

Как выделить / условное форматирование ячеек с формулами в Excel?

Как выделить всю / целую строку при прокрутке на листе 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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