На чтение 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
- Установите нужный формат;
- Подтвердите.
Готово! Когда вы будете выбирать имя из списка, функция «Условное форматирование» будет автоматически выделять все строки с этим именем.
Есть похожий вопрос на английском: Highlighting searched words on Vba excel
Единственная разница, в том вопросе ищется одно слово.
Адаптируем код из этого вопроса, выделим его в процедуру, вынесем все искомые значения в массив и будем вызывать процедуру в цикле:
'Выделяет заданный текст в заданном диапазоне
'Адаптирован код из ответа на Stack Overflow: https://stackoverflow.com/questions/35437207/highlighting-searched-words-on-vba-excel
Sub HighlighText(rng As Range, text As String)
Application.ScreenUpdating = False
Dim cellRange As Range
'Ищем текст на листе
Set cellRange = rng.Find(What:=text, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not cellRange Is Nothing Then
Dim cellAddress As String
cellAddress = cellRange.Address
Do
Dim textStart As Integer
textStart = 1
Do
'Ищем текст внутри ячейки
'Если требуется поиск нечувствительный к регистру, то можно привести и искомое значение и текст к нижнему регистру
'textStart = InStr(textStart, LCase(cellRange.Value), LCase(text))
textStart = InStr(textStart, cellRange.Value, text)
If textStart <> 0 Then
'Выделяем текст
cellRange.Characters(textStart, Len(text)).Font.Color = RGB(255, 0, 0)
textStart = textStart + 1
End If
'Выделяем текст пока он находится в этой ячейке
Loop Until textStart = 0
Set cellRange = rng.FindNext(After:=cellRange)
Loop Until cellRange Is Nothing Or cellRange.Address = cellAddress
End If
End Sub
Sub FindAndSelect()
'Массив слов (терминов) для выделения
Dim termsToHighlight As Variant
termsToHighlight = Array("teams", "TechnicalSuit", "Captivate", "Subscription", "Creative Cloud", "renewal", "TLP", "Stock", "Dreamweave", "CLP", _
"Spark", "FrameMaker", "Premiere Pro", "Illustrator", "Fresco", "InCopy", "enterprise", "Audition", "InDesign", "Flash", "Dimension", _
"Lightroom", "Substance", "After Effects", "Photoshop", "XD", "Animate", "Presenter", "RoboHelp")
Dim workRange As Range
Set workRange = ActiveWorkbook.Worksheets("TDSheet").Range("A1:A3000")
For Each term In termsToHighlight
HighlighText workRange, CStr(term)
Next term
End Sub
Если нужно выделять слова вне зависимости от регистра («Teams», «xd» и др.), то можно исправить функцию поиска текста, читайте комментарии.
И наоборот, если нужно искать слова именно с таким регистром, то можно проставить MatchCase:=True
.
В принципе список терминов для выделения можно хранить не в коде, а где-нибудь в самой книге Excel.
Выделяем
ячейки, содержащие искомый текст. Рассмотрим разные варианты: выделение ячеек, содержащих значения в точности совпадающих с искомым текстом; выделение ячеек, которые содержат искомый текст в начале, в конце или середине строки. Также научимся выделять ячейку, в случае если ее значение совпадает с одним из нескольких заданных значений.
Эта статья создана для пользователей, уже уверенно применяющих Условное форматирование. Для тех, кто только начинает использовать этот инструмент, рекомендуется ознакомиться с базовой статьей по этой теме
Условное форматирование в MS EXCEL
.
Исходная таблица с текстовыми значениями
Пусть в диапазоне
А9:A17
имеется список с перечнем инструментов (см.
файл примера
). Список содержит как ячейки с одним словом, так и текстовые строки (несколько строк, разделенных пробелами).
Задача 1 (поиск значений в списке, совпадающих с единственным критерием)
Выделим ячейки, содержащих значения, удовлетворяющих 1 критерию (без
учета РЕгиСТра
). Критерий введем в ячейку
B
6
. Кроме того, зададим 4 Типа поиска:
- Точно совпадает (выделение ячеек, содержащих значения в точности совпадающих с искомым текстом);
- Содержит (выделение ячеек, которые содержат искомый текст в начале, в конце или середине строки);
- Начинается (выделение ячеек, которые содержат искомый текст в начале строки);
- Заканчивается (выделение ячеек, которые содержат искомый текст в конце строки).
В качестве примера Критерия используем текст «
Дрель
», который введем в ячейку
B
6
. Естественно, для критерия можно использовать любой другой текст.
Решение
Выбор Типа поиска организуем с помощью
Элементов управления формы
Группа и Переключатель. Свяжем все
Переключатели
с ячейкой
B9
. Теперь при выборе Типа поиска
Точно совпадает
в этой ячейке будет содержаться число 1, при выборе
Содержит
— 2,
Начинается
— 3,
Заканчивается
— 4 (см.
файл примера
Лист
1 критерий (текст)
).
Настроим
Условное форматирование
для выделения ячеек, удовлетворяющих критерию. Для этого:
-
выделите ячейки, в которые введен перечень инструментов (
А9:A17
); -
вызовите инструмент
Условное форматирование
( Главная/ Стили/ Условное форматирование/ Создать правило ) -
выберите
Использовать формулу для определения форматируемых ячеек;
-
в поле «
Форматировать значения, для которых следующая формула является истинной
» введите
=ВЫБОР($B$9;$A$6=A9;ПОИСК($A$6;A9);ПОИСК($A$6;A9)=1;$A$6=ПРАВСИМВ(A9;ДЛСТР($A$6)))
- выберите требуемый формат, например, красный цвет фона .
Протестируем:
Если в качестве примера Критерия используется текст «
Дрель
», а Тип поиска выбран
Точно совпадает
(1), то красным фоном выделится только ячейка
A14
, содержащая значение
в точности совпадающее
с искомым текстом.
Разберем работу формулы из вышеуказанного правила
Условного форматирования
.
Функция
ВЫБОР()
позволяет в одной формуле совместить 4 формулы для всех Типов поиска:
-
Точно совпадает:
$A$6=A9
; -
Содержит:
ПОИСК($A$6;A9)
; -
Начинается:
ПОИСК($A$6;A9)=1
; -
Заканчивается:
$A$6=ПРАВСИМВ(A9;ДЛСТР($A$6))
.
В зависимости от значения в ячейке
B9
, связанной с Переключателями, функция
ВЫБОР()
возвращает соответствующую формулу.
Функция
ПОИСК()
пытается найти первое вхождение Критерия в каждом значении перечня и, в случае успеха, возвращает начальную позицию найденного значения. В противном случае возвращается ошибка #ЗНАЧ!
Формула
ПОИСК($A$6;A9)
возвращает номер позиции текстовой строки из ячейки
А9
, с которой начинается текст, указанный в критерии (если он найден).
Например, для ячейки
А14
формула
ПОИСК($A$6;A14)
вернет 1, а для
А15
формула
ПОИСК($A$6;A15)
вернет 8 и обе ячейки будут выделены. Если в ячейке не содержится искомый текст, то формула возвращает ошибку и ячейка не выделяется.
Примечание
: Обратите внимание, что будет выделена ячейка со словом
Мотодрель
, как ячейка содержащая критерий. Но, если нужно найти ячейки содержащие
слово
Дрель
(т.е. текст, отделенный от других слов пробелами), то нужно обратиться к решению Задачи 2 (см. ниже).
Формула
$A$6=ПРАВСИМВ(A9;ДЛСТР($A$6))
возвращает правую часть каждого значения перечня длиной равной критерию, т.е. в нашем случае 5 (т.к. в критерии
«Дрель»
5 букв), а затем сравнивает ее с критерием. Если оба выражения совпадают, то это означает, что значение перечня
заканчивается
на текст, указанный в Критерии.
Примечание
: Обратите внимание, что будет выделена ячейка со словом
Мотодрель
, как ячейка заканчивающаяся на критерий. Но, если нужно найти ячейки содержащие
слово
Дрель
(т.е. текст, отделенный от других слов пробелами), то нужно обратиться к решению Задачи 2 (см. ниже).
Если критерий содержится в начале текстовой строки, то
ПОИСК()
вернет 1. Следовательно, формула
ПОИСК($A$6;A9)=1
вернет ИСТИНА только для ячеек начинающихся с искомого текста.
Совет
:
Для настройки поиска ячеек, значения которых удовлетворяют критерию с учетом РЕгиСТРА, читайте статью
Выделение ячеек c ТЕКСТом с применением Условного форматирования (с учетом РЕгиСТРА)
.
Задача 2 (поиск СЛОВ в списке, совпадающих с единственным критерием)
Определить, есть ли
слово
в списке несколько сложнее, чем определить содержится ли в списке некий текст. Разница в этих подходах проявляется при наличии в списке слов, содержащих искомый текст, но не совпадающих с ним. Например, слово в списке Мотодрель содержит
текст
Дрель, но
слово
Дрель не содержится в этой ячейке.
Чтобы выделить ячейки в списке, которые содержат
слово
Дрель, нужно воспользоваться формулами в
файле примера
на Листе «1 критерий (слово)».
Понятно, что нужно выделить ячейки, в которых:
- точно содержится слово Дрель ИЛИ;
- текстовая строка начинается со слова Дрель ИЛИ;
- текстовая строка заканчивается словом Дрель ИЛИ;
- слово Дрель содержится в середине текстовой строки (критерий обрамлен пробелами).
В принципе можно записать одну большую формулу и не использовать дополнительные столбцы (C:F)
=ИЛИ(ИЛИ(ЕСЛИОШИБКА(A9=$A$6;0));ИЛИ(ЕСЛИОШИБКА(ПОИСК(» «&$A$6&» «;A9);0));ИЛИ(ЕСЛИОШИБКА(ПОИСК($A$6&» «;ЛЕВСИМВ(A9;ДЛСТР($A$6)+1));0));ИЛИ(ЕСЛИОШИБКА(» «&$A$6=ПРАВСИМВ(A9;ДЛСТР($A$6)+1);0)))
Задача 3 (поиск нескольких слов в списке)
Рассмотрим списки, элементами которых являются отдельные слова (не фразы). Выделять будем только ту ячейку, которая содержит любое из слов-критериев (см.
файл примера
Лист
Неск критериев (слово точно)
).
Это можно сделать несколькими способами.
Вариант с использованием Массива констант и имени.
В этом случае в правиле
Условного форматирования
нужно ввести формулу
=ИЛИ($A2=Слова)
, где Слова — это
Имя
массива констант
.
Этот способ не очень удобен, т.к. при изменении критериев придется изменять массив констант в Диспетчере имен.
Вариант с использованием именованного диапазона.
Формула
=ИЛИ($B2=Слова_в_диапазоне)
аналогична предыдущей, но имя Слова_в_диапазоне теперь ссылается на диапазон ячеек листа (см. статью
Именованный диапазон
). При добавлении новых слов в ячейки в столбце F, придется переопределять именованный диапазон.
Вариант с использованием динамического диапазона
.
Динамический диапазон
позволяет добавлять новые слова-критерии в столбец F и при этом не требуется модифицировать формулы и имена.
Вариант
без использования имен
. Формула
=ИЛИ($D2=»слово1″;$D2=»слово2″;$D2=»слово3″)
позволяет отказаться от использования имен. Платой за это станет необходимость изменения правила
Условного форматирования
при каждом изменении слов-критериев.
Задача 4 (поиск нескольких слов в списке, общий случай)
Рассмотрим списки, элементами которых являются фразы. Выделять будем только ту ячейку, которая содержит любое из слов-критериев: в начале, в середине или конце фразы или если фраза целиком совпадает с одним из слов-критериев (см.
файл примера
Лист
Неск критериев (слово)
).
Слово Разряд в списке не встречается (склонения не считаются). А вот слово Техник встречается как в начале фраз, так и в середине и конце.
Не смотря на то, что формулы похожи на те, что использовались в Задаче 2, они от них принципиально отличаются, т.к. являются
формулами массива
.
Координатное выделение
У вас большой монитор, но таблицы, с которыми вы работаете — еще больше. И, пробегая взглядом по экрану в поисках нужной информации, всегда есть шанс «соскользнуть» взглядом на соседнюю строчку и посмотреть не туда. Я даже знаю людей, который для таких случаев постоянно держат недалеко от себя деревянную линейку, чтобы приложить ее к строке на мониторе. Технологии будущего!
А если при движении активной ячейки по листу будет подсвечиваться текущая строка и столбец? Своего рода координатное выделение примерно такого вида:
Поудобнее, чем линейка, правда?
Есть несколько способов разной сложности, чтобы реализовать такое. Каждый способ — со своими плюсами и минусами. Давайте разберем их детально.
Способ 1. Очевидный. Макрос, выделяющий текущую строку и столбец
Самый очевидный путь для решения нашей проблемы «в лоб» — нам нужен макрос, который будет отслеживать изменение выделения на листе и выделять целую строку и столбец для текущей ячейки. Также желательно иметь возможность при необходимости включать и отключать эту функцию, чтобы такое крестообразное выделение не мешало нам вводить, например, формулы, а работало только тогда, когда мы просматриваем список в поисках нужной информации. Это приводит нас к трем макросам (выделения, включения и выключения), которые нужно будет добавить в модуль листа.
Откройте лист со таблицей, в которой хотите получить такое координатное выделение. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этих трех макросов:
Dim Coord_Selection As Boolean 'глобальная переменная для вкл/выкл выделения Sub Selection_On() 'макрос включения выделения Coord_Selection = True End Sub Sub Selection_Off() 'макрос выключения выделения Coord_Selection = False End Sub 'основная процедура, выполняющая выделение Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'если выделено больше 1 ячейки - выходим If Coord_Selection = False Then Exit Sub 'если выделение выключено - выходим Application.ScreenUpdating = False Set WorkRange = Range("A6:N300") 'адрес рабочего диапазона, в пределах которого видно выделение Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow)).Select 'формируем крестообразный диапазон и выделяем Target.Activate End Sub
Измените адрес рабочего диапазона на свой — именно в пределах этого диапазона и будет работать наше выделение. Затем закройте редактор Visual Basic и вернитесь в Excel.
Нажмите сочетание клавиш ALT+F8, чтобы открыть окно со списком доступных макросов. Макрос Selection_On, как нетрудно догадаться, включает координатное выделение на текущем листе, а макрос Selection_Off — выключает его. В этом же окне, нажав кнопку Параметры (Options) можно назначить этим макросам сочетания клавиш для удобного запуска.
Плюсы этого способа:
- относительная простота реализации
- выделение — операция безобидная и никак не изменяет содержимое или форматирование ячеек листа, все остается как есть
Минусы этого способа:
- такое выделение некорректно работает в том случае, если на листе есть объединенные ячейки — выделяются сразу все строки и столбцы, входящие в объединение
- если случайно нажать клавишу Delete, то очистится не только активная ячейка, а вся выделенная область, т.е. удалятся данные из всей строки и столбца
Способ 2. Оригинальный. Функция ЯЧЕЙКА + Условное форматирование
Этот способ хотя и имеет пару недостатков, мне представляется весьма изящным. Реализовать что-либо, используя только встроенные средства Excel, минимально влезая в программирование на VBA — высший пилотаж
Способ основан на использовании функции ЯЧЕЙКА (CELL), которая может выдавать массу различной информации по заданной ячейке — высоту, ширину, номер строки-столбца, числовой формат и т.д.. Эта функция имеет два аргумента:
- кодовое слово для параметра, например «столбец» или «строка»
- адрес ячейки, для которой мы хотим определить значение этого параметра
Хитрость в том, что второй аргумент не является обязательным. Если он не указан, то берется текущая активная ячейка.
Вторая составляющая этого способа — условное форматирование. Эта крайне полезная функция Excel позволяет автоматически форматировать ячейки, если они удовлетворяют заданным условиям. Если соединить эти две идеи в одно целое, то получим следующий алгоритм реализации нашего координатного выделения через условное форматирование:
- Выделяем нашу таблицу, т.е. те ячейки, в которых в будущем должно отображаться координатное выделение.
- В Excel 2003 и более старших версиях открываем меню Формат — Условное форматирование — Формула (Format — Conditional Formatting — Formula). В Excel 2007 и новее — жмем на вкладке Главная (Home) кнопку Условное форматирование — Создать правило (Conditional Formatting — Create Rule) и выбираем тип правила Использовать формулу для определения форматируемых ячеек (Use formula)
- Вводим формулу для нашего координатного выделения:
=ИЛИ(ЯЧЕЙКА(«строка»)=СТРОКА(A2);ЯЧЕЙКА(«столбец»)=СТОЛБЕЦ(A2))
=OR(CELL(«row»)=ROW(A1),CELL(«column»)=COLUMN(A1))
Эта формула проверяет, не совпадает ли номер столбца каждой ячейки в таблице с номером столбца текущей ячейки. Аналогично со столбцами. Таким образом закрашенными окажутся только те ячейки, у которых либо номер столбца, либо номер строки совпадает с текущей ячейкой. А это и есть крестообразное координатное выделение, которого мы хотим добиться. - Нажмите кнопку Формат (Format) и задайте цвет заливки.
Все почти готово, но остался один нюанс. Дело в том, что Excel не считает изменение выделения изменением данных на листе. И, как следствие, не запускает пересчет формул и перекраску условного форматирования только при изменении положения активной ячейки. Поэтому добавим в модуль листа простой макрос, который будет это делать. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этого простого макроса:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub
Теперь при изменении выделения будет запускаться процесс пересчета формулы с функцией ЯЧЕЙКА в условном форматировании и заливаться текущая строка и столбец.
Плюсы этого способа:
- Условное форматирование не нарушает пользовательское форматирование таблицы
- Этот вариант выделения корректно работает с объединенными ячейками.
- Нет риска удалить целую строку и столбец с данными при случайном нажатии Delete.
- Макросы используются минимально
Минусы этого способа:
- Формулу для условного форматирования надо вводить вручную.
- Нет быстрого способа включить-выключить такое форматирование — оно включено всегда, пока не будет удалено правило.
Способ 3. Оптимальный. Условное форматирование + макросы
Золотая середина. Используем механизм отслеживания выделения на листе при помощи макросов из способа-1 и добавим к нему безопасное выделение цветом с помощью условного форматирования из способа-2.
Откройте лист со таблицей, в которой хотите получить такое координатное выделение. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этих трех макросов:
Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей If Target.Count > 1 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Is Nothing Then Set CrossRange = Intersect(WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions.Delete End If End Sub
Не забудьте изменить адрес рабочего диапазона на адрес своей таблицы. Закройте редактор Visual Basic и вернитесь в Excel. Чтобы использовать добавленные макросы, нажмите сочетание клавиш ALT+F8 и действуйте аналогично способу 1.
Способ 4. Красивый. Надстройка FollowCellPointer
Excel MVP Jan Karel Pieterse родом из Нидерландов раздает у себя на сайте бесплатную надстройку FollowCellPointer(36Кб), которая решает ту же задачу, отрисовывая с помощью макросов графические линии-стрелки для подсветки текущей строки и столбца:
Красивое решение. Не без глюков местами, но попробовать точно стоит. Качаем архив, распаковываем на диск и устанавливаем надстройку:
- в Excel 2003 и старше — через меню Сервис — Надстройки — Обзор (Tools — Add-Ins — Browse)
- в Excel 2007 и новее — через Файл — Параметры — Надстройки — Перейти — Обзор (File — Excel Options — Add-Ins — Go to — Browse)
Ссылки по теме
- Что такое макросы, куда вставлять код макроса на Visual Basic
Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 PowerPoint 2021 Excel 2019 Word 2019 PowerPoint 2019 Excel 2016 Word 2016 PowerPoint 2016 Excel 2013 Word 2013 PowerPoint 2013 Excel 2010 Word 2010 PowerPoint 2010 Еще…Меньше
В Microsoft Word, Excel и PowerPoint можно применять эффекты свечения и сияния к фигурам, тексту и другим объектам. Чтобы просмотреть параметры свечения и сияния:
-
Выберите объект, который вы хотите отформатирование.
-
В области Средства рисованияна вкладке Формат нажмите кнопку Эффекты фигуры или Текстовые эффекты.
-
Нажмите кнопку > параметры свечения. Появятся следующие параметры:
Подсветка
Заранее заранее. Чтобы применить один из наиболее распространенных вариантов свечения, нажмите кнопку Заранее ивыберите нужный вариант.
Цвет. Чтобы создать пользовательский цвет для свечения, щелкните Цвет и выберите нужный цвет. Чтобы изменить цвет, который не входит в цвета темы, выберите команду Другие цвета, а затем выберите готовый вариант на вкладке Обычные или создайте собственный на вкладке Спектр. Пользовательские цвета и цвета на вкладке Обычные не обновляются при последующем изменении тема документа.
Размер. Чтобы задать размер свечения, переместили ползунок Размер или введите число в поле рядом с ползуноком. Чем больше число, тем больше размер свечения.
Прозрачность. Чтобы указать, какая часть свечения видна, переместили ползунок Прозрачность или введите число в поле рядом с ползуноком. Вы можете изменять процент прозрачности от 0 (непрозрачная, по умолчанию) до 100 % (полностью прозрачный).
Soft Edges
Заранее заранее . Чтобы применить один из наиболее распространенных сжатий, нажмите кнопку Заранее ивыберите нужный.
Размер. Чтобы задать размер слажмого края, переместили ползунок Размер или введите число в поле рядом с ползуноком. Чем больше число, тем мягче края.
Совет: Чтобы удалить эффект свечения или сжатия, нажмите кнопку Заранее ивыберите нет свечения или Без степенных краев.
Важно:
-
При изменении параметров в этой области или диалоговом окне изменения немедленно применяются к рисунку, фигуре, тексту или другим объект, что делает просмотр эффектов изменений рисунка без закрытия области или диалогового окна. Однако поскольку изменения мгновенно применяются, нажать кнопку Отмена в этой области или диалоговом окне невозможно. Чтобы удалить изменения, нажимайте кнопку Отменить на панели быстрого доступа для каждого из них.
-
Вы можете одновременно отменить несколько изменений, внесенных в одно диалоговое окно, если между ними не были внесены изменения в другое диалоговое окно.
-
Вы можете переместить области или диалоговое окно, чтобы одновременно видеть рисунок, фигуру, текст или другой объект, а также окно или диалоговое окно.