Чи можливо умовно відформатувати комірок, якщо комірка містить формулу (щоб попередити себе та інших користувачів під час оновлення комірки)?
Чи можливо умовно відформатувати комірок, якщо комірка містить формулу (щоб попередити себе та інших користувачів під час оновлення комірки)?
Відповіді:
Для цього можна використовувати умовне форматування, використовуючи XLM та Range Names
У мене є довша стаття про використання XLM з іменами діапазону та умовного форматування для автоматичного форматування електронних таблиць відповідно до вмісту комірок
xlm
без будь-яких макропопереджень, MSFT змінив підхід до безпеки.
Спираючись на відповідь brettdj, тому що я вважав пов'язану статтю досить важкою для наслідування:
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
як діапазон, до якого слід застосувати. В іншому випадку ви можете ввести будь-який діапазон.Формула INDIRECT("rc",FALSE)
повертає посилання на поточну комірку. Якщо я коли-небудь використовую це на аркуші, я створюю визначене ім'я, яке називається чимось на зразок, ThisCell
і використовую це у формулі, на всякий випадок, коли я коли-небудь повернусь через роки і думаю "для чого це чорт?".
INDIRECT("rc",FALSE)
використовуйте відносне посилання на верхню ліву клітинку в умовному форматі діапазону "Застосовується до". Наприклад, якщо діапазон "Застосовується до" є =$A$3:$F$300
, тоді використовуйте =ISFORMULA(A3)
. Це працює, тому що умовне форматування підтримує відносне посилання, дивіться це
Ви можете спробувати такі:
Створіть власну функцію із наступним кодом:
Function IsFormula(ByVal Ref As Range) As Variant
If Ref.Cells.Count > 1 Then
IsFormula = CVErr(xlErrNA)
Else
IsFormula = Ref.HasFormula
End If
End Function
Приклад:
Щоб перевірити, чи є якісь комірки у стовпці А, формули:
=IsFormula(A1)
Існує дуже простий спосіб зробити це, перевірений в Excel 2016.
Виділіть свій діапазон, до якого ви хочете, щоб це стосувалося, скажімо, від A3:W20
. Перейдіть до умовного форматування та виберіть NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT
.
Введіть =isformula(A3)
і виберіть потрібний формат.
A3
Очевидно, це посилання на першу комірку у вашому діапазоні, але це форматування потім стосується всіх. Результат полягає в тому, що в межах вашого діапазону будь-яка комірка, яка є формулою, умовно відформатована.
Нові довідкові сайти рекомендують призначену для користувача функцію:
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
Потім використовуйте цю функцію як свій стан
А насправді Excel 2013 і пізніші IsFormula
функції є стандартною функцією.
Ви також можете використовувати умовне форматування:
=HasNoFormula
Тестовано за допомогою Excel 2010.