Отображение текста формул
Добрый день, читатели блога! Сегодня мы поговорим о том как при необходимости отобразить формулу в ячейке как текст. Ситуация нестандартная, но иногда может пригодиться, особенно для проверки вводимых функций.
Для пользователя Excel всегда встаёт вопрос: как же узнать где в ячейке есть формула, а где нет?
Пойдём по порядку и опустим случай, когда мы щёлкаем на ячейку и смотрим в строчку формул, а также используем кнопку "Показать формулы".
Способ №1
Определить есть ли формула в ячейке нам поможет функция =ЕФОРМУЛА.
Результатом вычислений будет два значения: ИСТИНА - формула в ячейке есть; ЛОЖЬ - формулы в ячейке нет.
Ячейки с формулами найдены. Преобразовать формулу в текст поможет функция =Ф.ТЕКСТ. Она возвращает формулу в виде строки. Есть и минус: её можно использовать только с версии Excel 2013 и выше.
Способ №2
Воспользуемся гибкими возможностями именованных диапазонов в Excel. Переходим на вкладку "Формулы", в блоке кнопок "Определенные имена" нажимаем "Диспетчер имён".
Щёлкаем "Создать", далее вводим имя диапазона (например, ПОЛУЧИТЬФОРМУЛУ), область оставим "Книга", поле "Примечание" можно оставить пустым, в поле "Формула" напишем =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист2!C1). В примере формула находится в ячейке С1, у вас она может быть где угодно, но важно помнить одно - такой способ работает только в ячейке правее ячейки с формулой!
Имя создано, осталось ввести его в ячейку. Вводим равно и пишем начальные буквы имени, созданного выше.
Как только оно появилось сразу щелкаем по нему два раза.
Подтверждаем ввод. Видим результат.
Способ №3
Воспользуемся созданием пользовательской функции на VBA.
Добавим новый модуль (как это сделать можно прочитать ЗДЕСЬ):
- Вкладка "Разработчик", блок кнопок "Код", кнопка "Visual Basic";
- Далее "Insert" - > "Module".
Вставляем код:
Function FFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False)
'Application.Volatile True
If ShowFormula Then
If Cell.HasFormula Then
FFormula = "Текст формулы: " & IIf(Cell.HasArray, "{" & Cell.FormulaLocal & "}", Cell.FormulaLocal)
Else
FFormula = "Значение ячейки: " & Cell.Value
End If
Else
FFormula = Cell.HasFormula
End If
End Function
Разбор функции будет в видео ниже. Теперь нам остаётся ввести созданную функцию. Обязательно ввести через точку с запятой "Истина", чтобы активировать возможность показа формулы переменной "ShowFormula".
Подтверждаем ввод, смотрим на результат.
Если вы знаете ещё варианты решения этой задачи - оставляйте комментарии под статьёй!
Видео: