Как преобразовать формулу Excel в текст
Описание функции
Иногда для наглядности полезно отобразить текст формулы, которая введена в ячейку. Я часто ей пользуюсь, чтобы показать пользователям синтаксис той или иной функции
Проверяющему теперь совсем не обязательно "открывать" ячейки и смотреть какая же формула была введена. А если расчет был распечатан? Тогда о проверки формулы речь вообще не идет.
Синтаксис
Функция =ТЕКСТФОРМУЛЫ(ЯЧЕЙКА) имеет всего 1 аргумент:
- ЯЧЕЙКА — ссылка на ячейку, в которой содержится формула.
Примеры
Ниже приведены примеры использования данной функции, которые наглядно демонстрируют ее работу.
Как преобразовать формулу в текст в Excel?
Познакомимся с вариантами преобразования формулы Excel в текст (в результате получается не значение ячейки, а формульное выражение в текстовом виде, например, "=A1+A2", "=СЕГОДНЯ()" и т.д.).
Возникают ситуации когда необходимо отобразить в ячейке не значение формульного выражения, а именно ее текстовую запись.
С помощью режима отображения формул мы можем увидеть все формульные выражения листа и книги в текстовом виде, однако если мы хотим показать формулу не для всех, а для каких-то конкретных ячеек, то такой вариант не подходит.
Однако вне зависимости от целей преобразования нам понадобится способ извлечь из ячейки строку с формулой.
Преобразование формулы в текст в Excel
Начнем с более простого варианта, а именно предположим, что нам нужно преобразовать формулу в текст в самой ячейке (т.е. заменить значение на текстовую запись). Тогда в этом случае есть несколько способов преобразования:
- Поменять формат ячейки на текстовый, а затем произвести вычисление формулы; При этом для каждой ячейки нужно будет вручную производить изменение.
- Добавить апостроф (символ «‘») перед знаком равно (символ «=») в формульном выражении. В данном варианте подставить апостроф можно как вручную, так и через замену («=» на «‘=» с помощью инструмента «Найти и заменить»).
Теперь перейдем к более общему случаю и рассмотрим 2 основных варианта перевода формулы в текст (т.е. получить текстовую запись):
- Функция Ф.ТЕКСТ (доступна начиная с версии Excel 2013);
- Пользовательская функция (UDF).
Первый способ позволит нам перевести формулу в текст стандартными средствами в Excel, а во втором способе мы напишем пользовательскую функцию, которая будет выполнять аналогичные по функционалу преобразования (что и в первом способе) с небольшими видоизменениями.
Давайте подробнее остановимся на каждом из них.
Функция Ф.ТЕКСТ в Excel
Начиная с версии Excel 2013 для применения доступна функция Ф.ТЕКСТ (FORMULATEXT в английской версии):
Ф.ТЕКСТ(ссылка)
Возвращает формулу в виде строки.
- Ссылка(обязательный аргумент) — ссылка на ячейку или диапазон ячеек.
Перейдем к примерам. Применим Ф.ТЕКСТ, в качестве аргумента укажем ссылку на произвольную ячейку, где содержится какое-либо формульное выражение:
При этом в зависимости от выбранного у вас параметра отображения стиля ссылок (A1 или R1C1) формула автоматически будет подстраиваться под формат записи:
Замечания
При работе с данной функцией есть несколько важных особенностей, на которые необходимо обратить внимание:
- Аргумент "Ссылка" может ссылаться на другие листы и книги;
- Если аргумент "Ссылка" не содержит формульное выражение или содержит ссылку на закрытую книгу, то в результате будет возвращено значение ошибки.
Пользовательская функция (UDF)
При использовании версии Excel 2010 или более ранней, стандартными инструментами Excel воспользоваться уже не получится.
Однако данную проблему мы можем решить с помощью создания пользовательской функции (UDF), которая позволит преобразовать формулу в текст в различных вариантах записи в зависимости от стиля ссылок.
Перейдем в редактор Visual Basic (сочетание клавиш Alt + F11), вставляем новый модуль и добавляем следующий код: