Применим средства
EXCEL
для поиска и выделения ячеек, содержащих и НЕ содержащих формулы.
Представим, что в части ячеек листа имеются формулы, а в других – значения. Нужно определить, что в каких находится.
Выделить ячейки, которые содержат формулы можно воспользовавшись стандартным инструментом EXCEL
Выделение группы ячеек…
или через меню: на вкладке
Главная
в группе
Редактирование
щелкните стрелку рядом с командой
Найти и выделить
, а затем выберите в списке пункт
Формулы
.
Выделить ячейки, которые содержат НЕ формулы, т.е. содержат константы можно аналогичным образом, только вместо
Формулы
нужно выбрать
Константы
.
Если в ячейке введено
=11
, то это выражение считается формулой, хотя оно и не может быть изменено. Если у ячейки установлен текстовый формат, то введенная в нее формула будет интерпретирована как текст, т.е. константа.
Вышеуказанный подход требует вмешательства пользователя, т.е. необходимо вручную выбирать пункты меню. Можно настроить
Условное форматирование
так, чтобы после ввода формулы происходило автоматическое выделение, содержащей ее ячейки.
Допустим значения вводятся в диапазон
A1:A10
(см.
файл примера
)
.
Для настройки
Условного форматирования
для этого диапазона необходимо сначала создать
Именованную формулу
, для этого:
-
выделите ячейку
A
1
; -
вызовите окно
Создание имени
из меню
;
-
в поле
Имя
введите название формулы, например
Формула_в_ячейке
; -
в поле
Диапазон
введите
=ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1)
- нажмите ОК.
Теперь настроим правило
Условного форматирования
, для этого:
-
выделите диапазон
A
1:
A
10
; -
вызовите инструмент
Условное форматирование
();
-
выберите
Использовать формулу для определения форматируемых ячеек;
-
в поле «
Форматировать значения, для которых следующая формула является истинной
» введите
=Формула_в_ячейке
; - выберите требуемый формат, например, красный цвет фона;
- Нажмите ОК, затем еще раз ОК.
Теперь все ячейки из диапазона
A
1:
A
10
, содержащие формулы, выделены красным.
В этом примере мы использовали макрофункцию
ПОЛУЧИТЬ.ЯЧЕЙКУ()
. Это набор функций к EXCEL 4-й версии, которые нельзя напрямую использовать на листе EXCEL 2007, а можно использовать только в качестве
Именованной формулы
, что мы и сделали.
Чтобы, наоборот, выделить все непустые ячейки, содержащие константы (или НЕ содержащие формулы), нужно изменить формулу на
=И(НЕ(ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1));НЕ(ЕПУСТО(Лист1!A1)))
Совет
:
Чтобы показать все формулы, которые имеются на листе нужно на вкладке
Формулы
в группе
Зависимости формул
щелкните кнопку
Показать формулы
.
Чтобы выделить все ячейки, содержащие формулы, нужно на вкладке
Главная
, в группе
Редактирование
выбрать команду
Формулы
.
Чтобы найти все ячейки на листе, имеющие
Условное форматирование
необходимо:
-
на вкладке
Главная
в группе
Редактирование
щелкните стрелку рядом с командой
Найти и выделить
; -
выберите в списке пункт
Условное форматирование;
-
будут выделены все ячейки, которым применено
Условное форматирование
.
Достаточно часто в таблицах бывает такая ошибка, когда формула случайно заменяется значением. Этот тип ошибок обычно трудно определяется, особенно если лист содержит большое количество формул. В этом приеме описывается два способа быстро идентифицировать формулы в листе, выделяя их. Затем при уменьшении масштаба вы могли бы определить пробелы в группах формул.
Использование окна Выделение группы ячеек
Этот метод выявления ячеек с формулами легкий, но не динамический. Другими словами, он хорош для единичной проверки.
- Выберите одну ячейку в листе.
- Выберите Главная ► Редактирование ► Найти и выделить ► Выделение группы ячеек для открытия диалогового окна Выделение группы ячеек.
- В окне Выделение группы ячеек установите переключатель в положение формулы и убедитесь, что все флажки ниже установлены.
- Нажмите кнопку ОК. Excel выберет все ячейки с формулами.
- Нажмите кнопку Цвет заливки в группе Шрифт вкладки Главная. Выберите любой цвет, который еще не используется.
- Используйте элемент управления Масштаб и задайте для своего листа небольшой масштаб (например, 25%).
- Внимательно проверьте лист и посмотрите, какие ячейки остались невыделенными. Возможно, это формула, которая была перезаписана значением.
Если вы не делали никаких изменений, то можете нажать кнопку Отменить (или нажать Ctrl+Z) для отмены цветовой заливки, которую применили в шаге 6.
Использование условного форматирования
Этот метод определения ячеек с формулами потребует небольшой настройки, но он имеет явное преимущество по сравнению с предыдущим, так как является динамическим. Ячейки с формулами определяются сразу, как только заполняются.
Чтобы настроить условное форматирование, выполните следующие действия.
- Выберите Формулы ► Определенные имена ► Присвоить имя для открытия диалогового окна Создание имени.
- В окне Создание имени введите следующую строку в поле Имя:
CellHasFormula
. - Введите такую формулу в поле Диапазон:
=ПОЛУЧИТЬ.ЯЧЕЙКУ(48;ДВССЫЛ("rc";ЛОЖЬ))
. - Нажмите кнопку ОК, чтобы закрыть диалоговое окно Создание имени.
- Выделите все ячейки, к которым хотите применить условное форматирование. Как правило, они составляют диапазон от А1 до правого нижнего угла используемой области листа.
- Выберите Главная ► Стили ► Условное форматирование ► Создать правило для открытия диалогового окна Создание правила форматирования.
- В верхней части окна выберите пункт Использовать формулу для определения форматируемых ячеек.
- Введите следующую формулу в поле диалогового окна (рис. 196.1):
=CellHasFormula
. - Нажмите кнопку Формат для открытия диалогового окна Формат ячеек и выберите тип форматирования для ячеек, содержащих формулу.
- Нажмите кнопку OК, чтобы закрыть окно Формат ячеек, и снова нажмите OК, чтобы закрыть окно Создание правила форматирования.
Рис. 196.1. Окно для установки условного форматирования для выделения ячеек с формулами
После выполнения этих шагов каждая ячейка, которая содержит формулу и находится в пределах выбранного в шаге 5 диапазона, будет отформатирована по вашему выбору. Кроме того, при вводе формулы в диапазон, для которого задано условное форматирование, ячейка немедленно поменяет вид. Это форматирование позволяет вам легко определить ячейку, которая должна содержать формулу, но не содержит.
Формула, которую вы вводили в шаге 3, — макрос XLM. Следовательно, вам необходимо сохранить книгу с расширением с поддержкой макросов (используя расширение XLSM). Если вы сохраните книгу в виде XLSX-файла, Excel удалит имя CellHasFormula.
This macro will highlight all of the cells in a worksheet which contain a formula. The first one listed will highlight all of the cells with formulas within the active worksheet. The second macro listed will highlight all of the cells which contain a formula which are also within a predefined range of cells; to change this range simply change the cell references in this line of code For Each Rng In Range(«A1:B25»).
These macros, when run, will remove any previous color from the worksheet. So, if you have a very colorful worksheet and want to keep it that way, do not use this macro.
This macro is best used for when you have a large number of formulas and you’re not sure if you know where they all are or if you inherit or receive worksheets from other people and you want to quickly locate all formulas.
To change the color of the highlight for the first macro, change the number in this line of code If r.HasFormula Then r.Interior.ColorIndex = 6 ‘yellow.
To change the color of the highlight for the second macro, change the number in this line of code Rng.Interior.ColorIndex = 3 ‘red.
Where to install the macro: Module
Highlight Cells with Formulas — Works on entire active worksheet
Sub Highlight_Formulas()
'Highlights all cells with formulas on the active sheet
'Will remove color from cells without formulas
Dim r As RangeWith ActiveSheet.UsedRange
.Interior.ColorIndex = xlNone
For Each r In .Cells
If r.HasFormula Then r.Interior.ColorIndex = 6 'yellow
Next
End With
End Sub
Highlight Cells with Formulas — Works on Predefined Range of Cells
Sub Highlight_ Formulas_Range()
'Highlights all cells with formulas within a selected range
'Will remove color from cells without formulas
Dim Rng As RangeFor Each Rng In Range("A1:B25") 'Range to highlight cells
If Rng.HasFormula Then
Rng.Interior.ColorIndex = 3 'red
Else
Rng.Interior.ColorIndex = 0 'blank
End If
Next Rng
End Sub
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Highlight Cells with Text or Formulas (non-empty cells)
Macro: This macro will highlight all cells in excel which are not empty. This means that if a cel…
Count the Number of Cells that Contain Specific Text in Excel
Tutorial: How to count the number of cells that contain specific text within a spreadsheet in Excel….
Reverse Cell Contents (Mirror)
Macro: This macro will completely reverse the contents of any cell. This means that if you have a…
Highlight Rows that Meet a Certain Condition in Excel
Tutorial: In this tutorial I am going to cover how to highlight rows that meet a certain condition. …
Understanding Formulas and Functions in Excel
Tutorial: In this tutorial I will cover the basic concepts of Formulas and Functions in Excel.
A for…
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
Or For other ways to get there, Click Here. - On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
В 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
На чтение 5 мин Просмотров 1.9к. Опубликовано 22.05.2022
Итак, бывают ситуации, когда вы хотите обратить внимание читателя (вашей таблички) на какие-то особо важные моменты. Например, на те строки, значения в которых кажутся вам неправильными.
Допустим, у нас есть такая табличка. Я подсветил те строки, в которых продавец — Боб.
Сейчас я продемонстрирую вам, как можно сделать также и не только.
Итак, давайте начнём!
Содержание
- Подсвечиваем строки с нужным нам текстом
- Подсвечиваем строки с нужным нам числами
- Подсвечиваем строки с одновременно несколькими нужными нам значениями
- Подсвечиваем строки разным форматом в зависимости от значения
- Подсвечиваем строки с пустыми ячейками
- Подсвечивание разных строк в зависимости от вашего выбора в списке
Подсвечиваем строки с нужным нам текстом
Допустим, у нас есть такая табличка:
Нам нужно подсветить все строки, в которых продавцом является Боб.
Как это сделать?
Пошаговая инструкция:
- Выделите вашу табличку;
- Щелкните на «Главная»;
- Щелкните на «Условное форматирование»;
- Щелкните на «Создать правило…»;
- В открывшемся окне, выберите указанную на картинке опцию;
- В поле «Форматировать значения, для которых следующая формула является истинной» введите =$C2=»Bob»;
- А теперь настроим формат, щелкните на «Формат…»;
- И, в открывшемся окне, формат, которым нужно выделить ячейки;
- Подтвердите.
Итак, у нас получилось:
Как это работает?
Условное форматирование — функция, которая проверяет ячейки на наличие заданных нами параметров. В этом примере, мы задали следующее — выделять все строки, в ячейках которых содержится слово Боб. Этим и занимается функция.
Итак, строки выделены.
Подсвечиваем строки с нужным нам числами
Итак, как подсветить строку с определенным текстовым значением мы разобрались.
Теперь давайте разберемся с численным значением. В принципе, тут все почти тоже самое.
Допустим, у нас есть та же табличка. Только теперь нам нужно выделить те строки, в которых количество товара больше или равно 15-ти.
Как это сделать?
Пошаговая инструкция:
- Выделите вашу табличку;
- Щелкните на «Главная» -> «Условное форматирование» -> «Создать правило…»;
- В открывшемся окне, из списка выберите последнюю опцию;
- В поле для описания функции введите =$D2>=15;
- Щелкните на «Формат…» и укажите цвет подсветки;
- Подтвердите.
Взглянем на результат:
Как видно, все получилось.
Точно также, кстати, и с датами.
Например, вам нужно выделить строки где дата — позже первого января 2021 года. Формула будет такой:
=$A2>ДАТА(2021,01,01)
Подсвечиваем строки с одновременно несколькими нужными нам значениями
Те варианты которые мы рассмотрели ранее — лишь основы использования функции «Условное форматирование».
В реальности же, часто бывают ситуации когда нужно выделить те строки, которые обладают сразу несколькими нужными нам критериями.
Итак, давайте разбираться. Допустим, нам нужно выделить все строки в которых продавец Боб и количество товара больше 10-ти.
Как это сделать?
Пошаговая инструкция:
- Выделите вашу табличку;
- Щелкните на «Главная» -> «Условное форматирование» -> «Создать правило…»;
- В открывшемся окне, из списка выберите последнюю опцию;
- В поле для описания функции введите =И($C2=»Боб»;$D2>10)
- Укажите формат;
- Подтвердите.
В этом варианте выделяются те строки, которые обладают всеми указанными критериями.
Но если вам необходимо выделить те строки, которые обладают любым из указанных критериев(даже одним) используйте такую формулу:
=ИЛИ($C2="Bob";$D2>15)
Подсвечиваем строки разным форматом в зависимости от значения
Еще чаще, при составлении отчётов в Excel вам может понадобится выделять «хорошие» и «плохие» строки. Обычно для этого используют зеленый и оранжевый (красный) цвета.
Допустим, нам нужно выделить строки в которых кол-во более 20-ти — зелененьким, а если кол-во менее 20-ти, но более 15-ти — оранжевым.
Как это сделать?
Пошаговая инструкция:
- Выделите вашу табличку;
- Щелкните на «Главная» -> «Условное форматирование» -> «Создать правило…»;
- В открывшемся окне, из списка выберите последнюю опцию;
- В поле для описания функции введите =$D2>15
- Установите оранжевый цвет в опции «Формат»;
- Подтвердите.
- В опции «Управление правилами» функции «Условное форматирование» щелкните «Создать правило»;
- И делаем еще одну проверку, только уже с формулой =$D2>20;
- В опции формат укажите зеленый цвет;
- Подтвердите.
Итак, вот результат:
Понимание порядка правил:
Условное форматирование проверяет правила по порядку. Из-за этого очень важно, в каком порядке они проверяются. Вы можете узнать это в диспетчере правил (открывается в «Условное форматирование» -> «Управление правилами…»).
У нас все правильно, но если бы правила проверялись наоборот, возникли бы ошибки. Из-за чего?
Потому что сначала ячейки окрашивались бы в зеленый цвет, а потом, при проверке второго правила, перекрашивались бы обратно в оранжевый.
Порядок проверки можно менять с помощью стрелки, идущей вниз. Как на картинке:
Подсвечиваем строки с пустыми ячейками
Такие ситуации тоже часто имеют место быть. Как выделить строки с пустыми ячейками?
Пошаговая инструкция:
- Выделите вашу табличку;
- Щелкните на «Главная» -> «Условное форматирование» -> «Создать правило…»;
- В открывшемся окне, из списка выберите последнюю опцию;
- В поле для описания функции введите =СЧЁТЕСЛИ($A2:$F2;»»)>0
- Установите оранжевый цвет в опции «Формат»;
- Подтвердите.
Вот результат:
Подсвечивание разных строк в зависимости от вашего выбора в списке
В разделах статьи, рассмотренных ранее, мы указывали формулы и сразу после этого выделялись нужные строки. Но что если нужно чтобы при выборе, например, имени продавца из списка, автоматически подсвечивались все строки с его именем?
Вот пример такого подсвечивания:
Как это сделать?
Пошаговая инструкция:
- Для начала создайте этот список;
- Выделите вашу табличку;
- Щелкните на «Главная» -> «Условное форматирование» -> «Создать правило…»;
- В открывшемся окне, из списка выберите последнюю опцию;
- В поле для описания функции введите =$E2=$A$2
- Установите нужный формат;
- Подтвердите.
Готово! Когда вы будете выбирать имя из списка, функция «Условное форматирование» будет автоматически выделять все строки с этим именем.