Как в таблице Excel найти все ячейки с формулами
Достаточно часто в таблицах бывает такая ошибка, когда формула случайно заменяется значением. Этот тип ошибок обычно трудно определяется, особенно если лист содержит большое количество формул. В этом приеме описывается два способа быстро идентифицировать формулы в листе, выделяя их. Затем при уменьшении масштаба вы могли бы определить пробелы в группах формул.
Использование окна Выделение группы ячеек
Этот метод выявления ячеек с формулами легкий, но не динамический. Другими словами, он хорош для единичной проверки.
- Выберите одну ячейку в листе.
- Выберите Главная ► Редактирование ► Найти и выделить ► Выделение группы ячеек для открытия диалогового окна Выделение группы ячеек.
- В окне Выделение группы ячеек установите переключатель в положение формулы и убедитесь, что все флажки ниже установлены.
- Нажмите кнопку ОК. Excel выберет все ячейки с формулами.
- Нажмите кнопку Цвет заливки в группе Шрифт вкладки Главная. Выберите любой цвет, который еще не используется.
- Используйте элемент управления Масштаб и задайте для своего листа небольшой масштаб (например, 25%).
- Внимательно проверьте лист и посмотрите, какие ячейки остались невыделенными. Возможно, это формула, которая была перезаписана значением.
Если вы не делали никаких изменений, то можете нажать кнопку Отменить (или нажать Ctrl+Z) для отмены цветовой заливки, которую применили в шаге 6.
Использование условного форматирования
Этот метод определения ячеек с формулами потребует небольшой настройки, но он имеет явное преимущество по сравнению с предыдущим, так как является динамическим. Ячейки с формулами определяются сразу, как только заполняются.
Чтобы настроить условное форматирование, выполните следующие действия.
- Выберите Формулы ► Определенные имена ► Присвоить имя для открытия диалогового окна Создание имени.
- В окне Создание имени введите следующую строку в поле Имя: CellHasFormula .
- Введите такую формулу в поле Диапазон: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;ДВССЫЛ(«rc»;ЛОЖЬ)) .
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно Создание имени.
- Выделите все ячейки, к которым хотите применить условное форматирование. Как правило, они составляют диапазон от А1 до правого нижнего угла используемой области листа.
- Выберите Главная ► Стили ► Условное форматирование ► Создать правило для открытия диалогового окна Создание правила форматирования.
- В верхней части окна выберите пункт Использовать формулу для определения форматируемых ячеек.
- Введите следующую формулу в поле диалогового окна (рис. 196.1): =CellHasFormula .
- Нажмите кнопку Формат для открытия диалогового окна Формат ячеек и выберите тип форматирования для ячеек, содержащих формулу.
- Нажмите кнопку OК, чтобы закрыть окно Формат ячеек, и снова нажмите OК, чтобы закрыть окно Создание правила форматирования.
Рис. 196.1. Окно для установки условного форматирования для выделения ячеек с формулами
После выполнения этих шагов каждая ячейка, которая содержит формулу и находится в пределах выбранного в шаге 5 диапазона, будет отформатирована по вашему выбору. Кроме того, при вводе формулы в диапазон, для которого задано условное форматирование, ячейка немедленно поменяет вид. Это форматирование позволяет вам легко определить ячейку, которая должна содержать формулу, но не содержит.
Формула, которую вы вводили в шаге 3, — макрос XLM. Следовательно, вам необходимо сохранить книгу с расширением с поддержкой макросов (используя расширение XLSM). Если вы сохраните книгу в виде XLSX-файла, Excel удалит имя CellHasFormula.
Поиск формул в Excel


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

Показать формулы
На вкладке Формулы в группе Зависимости формул нажмите кнопку Показать формулы.

В ячейках, который содержат в себе формулы вместо результата расчета отобразится формула:

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

Условное форматирование
Выделите таблицу с данными. На вкладка Главная выберите Условное форматирование – Создать правило.
Здесь необходимо добавить правило с использованием формулы:
Функция ЕФОРМУЛА определяет, содержит ли ячейка формулу, а условной форматирование оформляет такие ячейки так, как вы настроите.

Расписание ближайших групп:
Прятки с формулами

Пример из жизни. Есть большая таблица с кучей формул и значений. Известно, что при вводе данных в таблицу оператор ошибся (с кем не бывает) и кое-где ввел в ячейки вместо формулы значения с клавиатуры. Задача — найти все ячейки с формулами и проверить — нет ли константы там, где должно быть вычисление. Или. Вам прислали большую таблицу-расчет. Вы хотите разобраться — как он работает, что и как в нем считается. Видеть — где в ячейках формулы, а где введенные с клавиатуры значения — очень помогло бы, правда? Нажмите клавишу F5, далее в окне — кнопка Выделить(Special) . Откроется очень полезное (жаль, что так глубоко «зарыто») диалоговое окно, при помощи которого можно выделять ячейки по определенному признаку: Например:
- только ячейки с константами (т.е. с введенными с клавиатуры значениями)
- только ячейки с формулами и функциями
- только видимые ячейки (без скрытых, например, при фильтрации или в свернутых итогах)
- только пустые ячейки и т.д.
В последних версиях Excel 2007/2010 это окно доступно на вкладке Главная (Home) в группе Редактирование (Edit) — в выпадающем списке Найти и выделить (Find & Select) . Команда называется Выделение группы ячеек (Go to special) :

Ссылки по теме:
- Как одновременно видеть и формулы и их результаты в ячейках
- Цветовая карта для подсветки ячеек с разными типами содержимого в надстройке PLEX
11.11.2012 01:04:25
Ctrl+~ . В ячейках отображаются формулы и становится видно, что вычислено, а что введено вручную.
11.11.2012 01:05:08
Также сочетание Ctrl+G открывает это окно.
11.11.2012 01:05:39
Очень хорошая опция, спасибо.
формула или число стоит в ячейке еще можно увидеть в меню Сервис-Параметры- вкладка «Вид» и в «параметры окна» поставить галочку напротив «формулы». Но это не даст выделения ячеек. Будут видны все ячейки с содержимым.
11.11.2012 01:06:17
Каким образом можно создать формулу, чтобы она проверяла в ячейке константа или формула?
11.11.2012 01:06:42
можно путем создания пользовательской функции:
Public Function ЕФОРМУЛА(target As Range) As Boolean
ЕФОРМУЛА = target.HasFormula
End Function
использование — обычное
=ЕФОРМУЛА(адрес_ячейки)
результат ИСТИНА означает, что ячейка содержит формулу, ЛОЖЬ — нет

21.06.2013 15:42:31
Отличная вещь. Теперь можно и через условное отслеживать где формулы.
25.11.2013 18:11:03
У Вас получилось использовать данную функцию в условном форматировании?
У меня нет.
Я на листе могу использовать функцию только в таком виде: =PERSONAL.XLSB!ЕФОРМУЛА(A1).
При попытке ввести данную формулу в условное форматирование — выдает ошибку, что нельзя использовать такую ссылку.

26.11.2013 01:43:09
26.11.2013 09:57:17
Спасибо, но это решение предполагает, что модуль должен находиться в каждой книге, где надо использовать эту функцию. я же хотел бы решение универсальное, чтобы вызывать функцию из личной книги макросов, т.е. для любой книги.

27.11.2013 07:34:30
О! Я сам интересуюсь такого рода личной книгой макросов — было бы весьма удобно каждый раз не копировать это добро. Если найдете решение раньше меня — пожалуйста, дайте знать )
Как выделить ячейки с формулами в Excel
В Excel не предусмотрено встроенной функции для поиска формул. Когда формула введена в ячейку, узнать, является ячейка постоянным значением или значением, полученным из формулы, можно, только щелкнув ячейку и взглянув на строку формул или же нажав Ctrl+~ (тильда; чтобы отменить режим показа формул, нажмите Ctrl+~ еще раз). Предлагаемый трюк позволит вам выделить ячейки с формулами при помощи трех строчек кода VBA и условного форматирования. [1]
Если вы никогда не создавали пользовательской фунции при помощи VBA, рекомендую начать с заметки Сумма по цвету ячеек в Excel, в которой поясняются первые шаги.
Если вы представляете, о чем речь, пройдите по меню Разработчик –> Visual Basic и в открывшемся окне Microsoft Visual Basic for Applications пройдите по меню Insert –> Module (рис. 1). В окне нового модуля наберите следующий код:
Function IsFormula(Check_Cell As Range)
IsFormula = Check_Cell.HasFormula
End Function

Рис. 1. Код пользовательской функции IsFormula в окне Microsoft Visual Basic for Applications
Скачать заметку в формате Word или pdf, скачать пример в формате Excel (с встроенным кодом VBA)
Закройте окно Visual Basic, нажав Alt+Q или пройдя по меню File –> Close and Return to Microsoft Excel. Вы создали функцию IsFormula. Если вы создали функцию в модуле, относящемся к этой рабочей книге (как на рис. 1), а не в модуле Личной книги макросов – Personal.xlsb, то функция будет доступна только в этой конкретной книге Excel. Чтобы ваш труд не пропал даром, сохраните Excel-файл командой Сохранить как, и выбрав тип файла Книга Excel с поддержкой макросов (*.xlsm). Ваша пользовательская функция, как и любая встроенная функция, доступна в окне Вставка функции в категории Определенные пользователем (рис. 2).

Рис. 2. Пользовательская функция доступна в окне Вставка функции
Также вы можете вызвать функцию, просто, начав набирать в ячейке =i (рис. 3).

Рис. 3. Функцию можно выбрать через подсказку, начав набирать в ячейке =i
Функция возвращает два значения: ИСТИНА, если в соответствующей ячейке содержится формула, и ЛОЖЬ, если это не так. Этот булевский результат можно использовать совместно с условным форматированием, чтобы автоматически выделить все формулы с применением нужного форматирования.
Одно из основных преимуществ этого метода заключается в том, что возможности идентификации формул на листе динамические. Это означает, что, если вы добавите или удалите формулу, то форматирование изменится соответствующим образом. Вот как это сделать.
Выделите диапазон ячеек, заполненный данными, плюс сделайте запас на случай, если данные будут добавляться. Не выделяйте весь лист, так как это может увеличить размер файла (иногда катастрофически). В нашем примере (рис. 4) я выделил область А1:К28. Причем ячейка А1 должна быть активной.
В качестве примера в диапазон А1:F20 я ввел формулу =СЛЧИС(). Затем выделил весь диапазон, скопировал его в буфер, и вставил как значение. После этого в нескольких ячейках снова вставил формулу =СЛЧИС().

Рис. 4. Создание правила форматирования для выделеной области
Пройдите по меню Главная –> Условное форматирование –> Создать правило (я работаю в Excel2013). В открывшемся окне Создание правила форматирования выберите опцию Использовать формулу для определения форматируемых ячеек. И в поле Форматировать значения, для которых следующая формула является истинной введите =IsFormula(A1). Щелкните кнопку Формат рядом с полем Образец и выберите желтую заливку для идентификации ячеек с формулами. Щелкните ОК (рис. 5).

Рис. 5. С помощью кода VBA и условного форматирования удалось выделить ячейки, содержащие формулы
Получился ножиданный эффект, который можно наблюдать в прикрепленном Excel-файле. Я считал, что функция =СЛЧИС() пересчитывается только при изменении хотя бы одного значения на листе. Так вот, на листе формально не происходит изменения значений. Но, видимо, функция IsFormula, участвующая в условном форматировании, как-то влияет на этот процесс, так что экран оживает, и значения постоянно изменяются.
Иногда при вводе формул в окне условного форматирования Excel пытается добавить кавычки вокруг формул после того, как вы щелкаете на кнопке ОК. Это означает, что Excel распознал то, что вы ввели, как текст, а не как формулу. Если это произошло, вернитесь в окно Условное форматирование, удалите кавычки и щелкните ОК.
Теперь указанная формула применяется ко всем ячейкам выделенного диапазона, содержащим формулы. Если вы удалите или исправите содержимое ячейки с формулой, условное форматирование исчезнет. Схожим образом, если вы введете новую формулу в любую ячейку диапазона, она также будет выделена форматированием.
[1] По материалам книги Р.Холи, Д.Холи. Excel 2007. Трюки, стр. 70–72
