Вот краткое руководство к тому, что я думаю, что вы хотите.
Шаг 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:
Удачи!