Я надеюсь, что кто-то может помочь мне с формулой условного формата, которая указала бы, какое число в формуле. В качестве простого примера у меня есть две разные формулы ниже:

= 1+10 и = 3+10

Я хотел бы получить формулу условного формата, которая бы делала ячейку определенного цвета (я знаю, как выполнять форматирование) на основе того, содержит ли формула = 1 (зеленая заливка) или = 3 (оранжевая заливка). Я понимаю, что мне может понадобиться создать два отдельных правила условного форматирования, но я не могу понять формулу, чтобы дать мне результаты, которые я ищу. Любой совет будет принята с благодарностью :)

Спасибо,

Дэн

1 ответ1

1

Вот краткое руководство к тому, что я думаю, что вы хотите.

Шаг 1 - Отсутствующая функция
Во-первых, нам нужно проверить ячейку для формулы, а не значение.
Для более новых версий Excel есть FORMULATEXT() которая делает именно это. Однако для нас, использующих более старые версии Excel, функция отсутствует.
Первое, что нужно сделать, это создать функцию.

Function FT(mycell As Range)
FT = mycell.Formula
End Function

Это дает нам ту же функцию, что и FORMULATEXT() но с использованием FT()

Как добавить макрос или функцию?
Ну, вам нужно перейти в окно VBA.
Это можно сделать с помощью кнопки макроса на вкладке представления или кнопки Visual Basic на вкладке разработчика.
Другой вариант - щелкнуть правой кнопкой мыши по листу и нажать просмотреть код.

Затем добавьте модуль, щелкнув правой кнопкой мыши поле, содержащее листы.

И тогда вам просто нужно вставить функцию в модуль:

Шаг 2 - Условное форматирование
Когда у нас есть функция, это уже не так сложно. Слишком частичный поиск строки, чтобы иметь возможность вернуть = 3 из = 3+10, мы можем использовать функцию SEARCH() паре с ISNUMBER() для возврата TRUE/FALSE. Именно то, что нам нужно для нашего форматирования.
=ISNUMBER(SEARCH("=3",A1)) Будет работать только в том случае, если фактическое значение ячейки содержит "=3" но содержит только 13
Поэтому теперь мы используем новую функцию для проверки по формуле:

=ISNUMBER(SEARCH("=3",FT(A1)))           

____________________________________

Создав условное форматирование в ячейке A1 и ссылаясь только на A1 в качестве диапазона в формуле, функция автозаполнения Excel автоматически настроит формулу для соответствия каждой ячейке.

Вот пример того, как я проверяю ячейки с формулами, содержащими «= 1» и «= 3» в столбцах от A до H:

Удачи!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .