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

Хитрости »

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


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

Начиная с версий 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
ссылки
статистика

Отображение текста формул

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

Для пользователя Excel всегда встаёт вопрос: как же узнать где в ячейке есть формула, а где нет? 

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

Способ №1

Определить есть ли формула в ячейке нам поможет функция =ЕФОРМУЛА.

Отображение текста формул

Результатом вычислений будет два значения: ИСТИНА — формула в ячейке есть; ЛОЖЬ — формулы в ячейке нет.

Ячейки с формулами найдены. Преобразовать формулу в текст поможет функция =Ф.ТЕКСТ. Она возвращает формулу в виде строки. Есть и минус: её можно использовать только с версии Excel 2013 и выше.

отображение текста формул

Способ №2

Воспользуемся гибкими возможностями именованных диапазонов в Excel. Переходим на вкладку «Формулы», в блоке кнопок «Определенные имена» нажимаем «Диспетчер имён».

Щёлкаем «Создать», далее вводим имя диапазона (например, ПОЛУЧИТЬФОРМУЛУ), область оставим «Книга», поле «Примечание» можно оставить пустым, в поле «Формула» напишем =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист2!C1). В примере формула находится в ячейке С1, у вас она может быть где угодно, но важно помнить одно — такой способ работает только в ячейке правее ячейки с формулой!

отображение текста формул

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

отображение текста формул

Как только оно появилось сразу щелкаем по нему два раза.

отображение текста формул

Подтверждаем ввод. Видим результат.

отображение текста формул

Способ №3

Воспользуемся созданием пользовательской функции на VBA.

Добавим новый модуль (как это сделать можно прочитать ЗДЕСЬ):

  1. Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
  2. Далее «Insert» — > «Module».

Вставляем код:

Function FFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False)
‘Application.Volatile True
If ShowFormula Then
If Cell.HasFormula Then
FFormula = «Текст формулы: » & IIf(Cell.HasArray, «{» & Cell.FormulaLocal & «}», Cell.FormulaLocal)
Else
FFormula = «Значение ячейки: » & Cell.Value
End If
Else
FFormula = Cell.HasFormula
End If
End Function

Разбор функции будет в видео ниже. Теперь нам остаётся ввести созданную функцию. Обязательно ввести через точку с запятой «Истина», чтобы активировать возможность показа формулы переменной «ShowFormula«.

отображение текста формул

Подтверждаем ввод, смотрим на результат.

отображение текста формул

Если вы знаете ещё варианты решения этой задачи — оставляйте комментарии под статьёй!

Видео:

Как быстро просмотреть формулу в ячейке Excel

Если вы часто работаете с Excel, то кропотливость работы с разбором не работающих формул вам точно знакома. Теперь работать с ними будет проще…

Вместо того, чтобы смотреть в строку формул при наведении на ячейку или делать дабл-клик на ячейке, для просмотра формулы, просто нажмите сочетание Ctrl + ‘. Вам тут же будет показана формула. Для живущих в Excel людей — это крайне нужное сочетание!

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

Автор Василий Алибабаевич, 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

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

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше

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

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

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

  2. Щелкните Главная > найти & Выберите >Перейти к специальным.

  3. Щелкните Формулыи при необходимости счистите любой из флажков под кнопкой Формулы.

Параметры поиска формул в окне «Выделение группы ячеек»

4. Нажмите кнопку ОК.

Подробнее о поиске в Excel

  • Поиск или замена текста и чисел на листе

  • Поиск объединенных ячеек

  • Поиск диапазонов с использованием определенных имен

  • Удаление или разрешение циклической ссылки

  • Поиск скрытых ячеек на листе

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

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

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

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

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

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

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

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

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

‘ —————

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

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

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

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

Пишем в C1:

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

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

=C1

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

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

По умолчанию в Excel во всех ячейках показываются значения выполнения формул вместо самих формул.
Если мы хотим отобразить формулу в конкретной ячейке, то достаточно будет нажать F2 или посмотреть в строку формул, однако для просмотра всех формул листа такой способ не подходит.
Для включения режима отображения формул в Excel необходимо перейти на панель вкладок и выбрать Формулы -> Зависимости формул -> Показать формулы:

Показать формулы на панели вкладок
Также показать формулы можно воспользовавшись сочетанием клавиш Ctrl + `.
Пример отображения формул в ячейках в Excel:

Пример отображения формул

Удачи вам и до скорой встречи на страницах блога Tutorexcel.ru!

Поделиться с друзьями:
Поиск по сайту:

Понравилась статья? Поделить с друзьями:
  • Как узнать что word открыть
  • Как узнать что word открыт
  • Как узнать число ячеек в excel
  • Как узнать число строк в таблице excel
  • Как узнать число символов в тексте word