Трюк №18. Как искать в Excel 2010 формулы при помощи условного форматирования
В Excel не предусмотрено встроенной функции для поиска формул. Когда формула введена в ячейку, узнать, является ячейка постоянным значением или значением, полученным из формулы, можно, только щелкнув ячейку и взглянув на строку формул. Этот трюк заполнит пробел при помощи пользовательской функции.
Код VBA в этой пользовательской функции (также называемой функцией, определенной пользователем) позволяет идентифицировать ячейки, содержащие формулы, не щелкая и не изучая все 10 000 ячеек. Чтобы превратиться в хитрого охотника на формулы, начните с перехода в редактор Visual Basic→Сервис→Макрос→Редактор Visual Basic (Tools→Macro→Visual Basic Editor) — и выберите команду Insert→Module. Введите следующую функцию:
1 2 3 4 | // Листинг 1.19 Function IsFormu1a(Check_Cell As Range) IsFormula = Check_Cell.HasFormula End Function |
Закройте окно (нажмите сочетание клавиш Alt/Apple+Q или кнопку закрытия в строке заголовка окна). Теперь эта функция доступна из любой ячейки на любом листе в этой книге; для этого нужно ввести формулу =IsFormula($A$l). Добавить эту функцию можно также, выбрав команду Вставка→Функция (Insert→Function), для параметра Категория (Category) выберите вариант Определенные пользователем (UserDefined) и в списке функций выберите IsFormula.
Формула возвращает ИСТИНА (TRUE)
, если в соответствующей ячейке содержится формула, и ЛОЖЬ (FALSE)
, если это не так. Этот булевский результат можно использовать совместно с условным форматированием, чтобы автоматически выделить все формулы с применением нужного форматирования.
Одно из основных преимуществ этого метода заключается в том, что возможности идентификации формул на листе динамические. Это означает, что, если вы добавите или удалите формулу, то форматирование изменится соответствующим образом. Вот как это сделать: выделите диапазон ячеек на листе, скажем, A1:J500, и захватите еще несколько ячеек на случай, если формулы будут добавлены позднее.
[stextbox id=»warning»]Не выделяйте весь лист, так как этот метод может увеличить размер и излишне нагрузить электронную таблицу. [/stextbox]
Теперь, когда ячейки выделены, причем ячейка А1
должна быть активной, выберите команду Формат→Условное форматирование (Format→Conditional Formatting). В поле условий выберите Формула (Formula Is) и в поле справа от него введите =IsFormula(A1)
. Щелкните кнопку Формат (Format) и выберите нужное форматирование, которое будет применяться для идентификации ячеек с формулами. Щелкните на кнопке ОК, затем еще раз щелкните на кнопке ОК.
[stextbox id=»warning»]Иногда при вводе формул в окне условного форматирования Excel пытается добавить кавычки вокруг формул после того, как вы щелкаете на кнопке ОК. Это означает, что Excel распознал то, что вы ввели, как текст, а не как формулу. Если это произошло, вернитесь в окно Условное форматирование (Conditional Formatting), удалите кавычки и щелкните на кнопке ОК.[/stextbox]
Теперь указанная формула должна быть применена ко всем ячейкам на листе, содержащим формулы. Если вы удалите или исправите содержимое ячейки с формулой, условное форматирование исчезнет. Схожим образом, если вы введете новую формулу в любую ячейку диапазона, она также будет выделена форматированием.
Этот простой трюк с условным форматированием может сделать ваши электронные таблицы намного проще для работы, когда время дойдет до их поддержки или модификации.