Получить формулу excel в ячейке

ЯЧЕЙКА Функция возвращает сведения о форматировании, расположении или содержимом ячейки. Например, если перед выполнением вычислений с ячейкой необходимо удостовериться в том, что она содержит числовое значение, а не текст, можно использовать следующую формулу:

=ЕСЛИ(ЯЧЕЙКА(«тип»;A1)=»v»;A1*2;0)

Эта формула вычисляет произведение A1*2, только если в ячейке A1 содержится числовое значение, и возвращает значение 0, если в ячейке A1 содержится текст или она пустая.

Примечание: Формулы, использующие функцию ЯЧЕЙКА, имеют значения аргументов для конкретного языка и возвращают ошибки при вычислениях с использованием другой языковой версии Excel. Например, если при создании формулы, содержащей ячейку, при использовании чешской версии Excel эта формула возвращает ошибку, если книга открыта во французском языке.  Если важно, чтобы другие люди открывали вашу книгу с помощью разных языковых версий Excel, рассмотрите возможность использования альтернативных функций или разрешение на сохранение локальных копий, в которых они меняют аргументы ЯЧЕЙКА в зависимости от языка.

Синтаксис

ЯЧЕЙКА(тип_сведений;[ссылка])

Аргументы функции ЯЧЕЙКА описаны ниже.

Аргумент

Описание

Тип_сведений   

Обязательно

Текстовое значение, задающее тип сведений о ячейке при возвращении. В приведенном ниже списке указаны возможные значения аргумента «тип_сведений» и соответствующие результаты.

ссылка    

Необязательно

Ячейка, сведения о которой требуется получить.

Если этот аргумент опущен, сведения, указанные в аргументе info_type, возвращаются для ячейки, выбранной на момент вычисления. Если аргумент «ссылка» является диапазоном ячеек, функция ЯЧЕЙКА возвращает сведения об активной ячейке в выбранном диапазоне.

Важно: Технические ссылки необязательны, но рекомендуется их включит в формулу, если вы не понимаете, как это влияет на результат формулы, и не хотите, чтобы они были на месте. Опущенный аргумент ссылки не является надежной информацией о конкретной ячейке по следующим причинам:

  • В режиме автоматического вычисления при внесении пользователем изменений в ячейку вычисление может запускаться до или после выполнения выделения в зависимости от платформы, используемой для Excel.  Например, Excel для Windows активирует вычисление перед изменением выделения,Excel в Интернете запускает его после этого.

  • Когда Co-Authoring с другим пользователем, который вносит изменения, эта функция сообщает о вашей активной ячейке, а не редакторе.

  • Любой пересчет, например нажатие F9, приведет к тому, что функция возвращает новый результат, даже если изменение ячейки не было изменено.

info_type значения

В следующем списке описаны текстовые значения, которые можно использовать info_type аргумента. Эти значения должны быть введены в функцию ЯЧЕЙКА с кавычками (» «).

Тип_сведений

Возвращаемое значение

«адрес»

Ссылка на первую ячейку в аргументе «ссылка» в виде текстовой строки. 

«столбец»

Номер столбца ячейки в аргументе «ссылка».

«цвет»

1, если форматированием ячейки предусмотрено изменение цвета для отрицательных значений; во всех остальных случаях — 0 (ноль).

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«содержимое»

Значение левой верхней ячейки в ссылке; не формула.

«имяфайла»

Имя файла (включая полный путь), содержащего ссылку, в виде текстовой строки. Если лист, содержащий ссылку, еще не был сохранен, возвращается пустая строка («»).

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«формат»

Текстовое значение, соответствующее числовому формату ячейки. Значения для различных форматов показаны ниже в таблице. Если ячейка изменяет цвет при выводе отрицательных значений, в конце текстового значения добавляется «-«. Если положительные или все числа отображаются в круглых скобках, в конце текстового значения добавляется «()».

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«скобки»

1, если форматированием ячейки предусмотрено отображение положительных или всех чисел в круглых скобках; во всех остальных случаях — 0.

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«префикс»

Текстовое значение, соответствующее префиксу метки ячейки. Одиночная кавычка (‘) соответствует тексту, выровненному влево, двойная кавычка («) — тексту, выровненному вправо, знак крышки (^) — тексту, выровненному по центру, обратная косая черта () — тексту, распределенному по всей ширине ячейки, а пустой текст («») — любому другому содержимому ячейки.

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«защита»

0, если ячейка разблокирована, и 1, если ячейка заблокирована.

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

«строка»

Номер строки ячейки в аргументе «ссылка».

«тип»

Текстовое значение, соответствующее типу данных в ячейке. Значение «b» соответствует пустой ячейке, «l» — текстовой константе в ячейке, «v» — любому другому содержимому.

«ширина»

Возвращает массив с 2 элементами.

Первый элемент массива — это ширина столбца ячейки, округленная до целого. Единица измерения равна ширине одного знака для шрифта стандартного размера.

Второй элемент массива имеет значение Boolean, значение true, если ширина столбца является значением по умолчанию, или FALSE, если ширина явно задана пользователем. 

Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter.

Коды форматов функции ЯЧЕЙКА

В приведенном ниже списке описаны текстовые значения, возвращаемые функцией ЯЧЕЙКА, если в качестве аргумента «тип_сведений» указано значение «формат», а аргумент ссылки указывает на ячейку, отформатированную с использованием встроенного числового формата.

Формат Microsoft Excel

Значение, возвращаемое функцией ЯЧЕЙКА

Общий

«G»

0

«F0»

# ##0

«,0»

0,00

«F2»

# ##0,00

«,2»

$# ##0_);($# ##0)

«C0»

$# ##0_);[Красный]($# ##0)

«C0-«

$# ##0,00_);($# ##0,00)

«C2»

$# ##0,00_);[Красный]($# ##0,00)

«C2-«

0%

«P0»

0,00%

«P2»

0,00E+00

«S2»

# ?/? или # ??/??

«G»

д.М.гг или дд.ММ.гг Ч:мм или дд.ММ.гг

«D4»

Д МММ ГГ или ДД МММ ГГ

«D1»

д.м, или дд.ммм, или Д МММ

«D2»

ммм.гг, ммм.гггг, МММ ГГ или МММ ГГГГ

«D3»

дд.мм

«D5»

ч:мм AM/PM

«D7»

ч:мм:сс AM/PM

«D6»

ч:мм

«D9»

ч:мм:сс

«D8»

Примечание: Если аргумент info_type функции ЯЧЕЙКА — «формат», а затем к ячейке, на которая ссылается ссылка, будет применяться другой формат, необходимо повторно вычислите (нажмите F9),чтобы обновить результаты функции ЯЧЕЙКА.

Примеры

Примеры функции ЯЧЕЙКА

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Изменение формата ячейки

Создание или изменение ссылки на ячейку

Функция АДРЕС

Добавление, изменение, поиск и очистка условного форматирования в ячейке

Get a formula from a cell using VBA in Excel.

This method returns the actual formula instead of the output value.

Get the Formula of a Cell into a Macro

We use the Formula property for this.

To get the formula in cell A1, type this in a macro:

Range("A1").Formula

5f4c85a8b3d434417958fa3c838b85a7.jpg

I will put MsgBox in front of this line of code so we can see the output in Excel:

MsgBox Range("A1").Formula

Go back to Excel and run it on a cell that has a date and this is the result:

9fd379c46222835b5be956c846f42cc6.jpg

In cell A1, you can see the actual visible output, which is the date, and in the message box pop-up you can see the formula that was used to create the output.

Using Formula in VBA means that the macro will get the formula that we see in the message box.

Notes

This is pretty straightforward, if you want to get the value of a cell that is easy and you can read about it in the link.

Download the attached workbook to see this example in Excel.


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Get Text from Comments in Excel Including the Author of the Comment — UDF

Macro: Output all text from a cell comment, including comment author, with this UDF in Excel. Thi…

Loop through a Range of Cells in Excel VBA/Macros

Tutorial: How to use VBA/Macros to iterate through each cell in a range, either a row, a column, or …

Limit the Total Amount a User Can Enter into a Range of Cells in Excel

Tutorial: How to limit the amount that a user can enter into a range of cells in Excel.  This works…

Me Keyword in Excel Macros & VBA

Tutorial: The Me keyword in Excel VBA allows you to refer to either the current worksheet, workbook,…

Select Ranges of Cells in Excel using Macros and VBA

Tutorial: This Excel VBA tutorial focuses specifically on selecting ranges of cells in Excel.  This…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Синтаксис:

ПОЛУЧИТЬ.ФОРМУЛУ(ссылка)

Ссылка — ячейка или интервал ячеек на листе.

Если выделен интервал ячеек, функция ПОЛУЧИТЬ.ФОРМУЛУ возвращает содержимое верхней левой ячейки из ссылки.
    Ссылка может быть внешней ссылкой.
    Ссылка может быть идентификатором объекта-рисунка, созданного кнопкой «Фотоаппарат».
    Ссылка может быть также ссылкой на ряд диаграммы вида «Pn», где n — номер ряда. Если указан ряд диаграммы, функция ПОЛУЧИТЬ.ФОРМУЛУ возвращает формулу ряда с использованием ссылок в стиле R1C1.

Примечание:

Содержимое ячейки возвращается в текстовом виде, например, «=2*ПИ()/360». Если формула содержит ссылки, они возвращаются в стиле R1C1, например, «=СК[1]*(1+R1C1)». Функция ПОЛУЧИТЬ.ФОРМУЛУ используется, чтобы извлечь формулу из ячейки для редактирования ее аргументов. Для получения формулы в формате А1 или R1C1, в зависимости от установок рабочего пространства, используйте функцию ПОЛУЧИТЬ.ЯЧЕЙКУ(6).

Примеры:

Если ячейка А3 активного листа содержит число 523, то:

Code

ПОЛУЧИТЬ.ФОРМУЛУ(!$А$3)

возвратит «523».

Если ячейка С2 активного листа содержит формулу =В2*(1+$А$1), то

Code

ПОЛУЧИТЬ.ФОРМУЛУ(!$С$2)

возвратит «=СК[-1]*(1+R1C1)».

Следующая макроформула возвращает содержимое активной ячейки активного листа:

Code

ПОЛУЧИТЬ.ФОРМУЛУ(АКТИВНАЯ.ЯЧЕЙКА())

Как получить формулу из ячейки?

Автор Soner2000, 25.04.2009, 19:10

« назад — далее »

Доброе время суток,

На одной из веток похожие темы проскакивали, но здесь маленькая проблемка:

Допустим,
ячейка A1: 10
ячейка A2: =100+A1

Присвоили имя формуле «Test» (Вставка-Имя-Присвоить)
=ПОЛУЧИТЬ.ФОРМУЛУ(Лист1!$A$2)

ячейка B2: =Test

Выводит: =100+RC[-1]
а хотелось бы с результатом значения ячейки А1, т.е.:  =100+10

Реально это сделать с помощью формулы?


Цитата: Soner2000 от 25.04.2009, 19:10
ячейка A2: =100+A1
Присвоили имя формуле «Test» (Вставка-Имя-Присвоить)
=ПОЛУЧИТЬ.ФОРМУЛУ(Лист1!$A$2)
ячейка B2: =Test
Выводит: =100+RC[-1]
а хотелось бы с результатом значения ячейки А1, т.е.:  =100+10
Реально это сделать с помощью формулы?

Глупость, конечно предлагаю   ;), но для этой формулы =100+A1, такой =100+10 результат выводит формула:
=СЦЕПИТЬ(ТЕКСТ((A2-A1);»=0″);»+»;ТЕКСТ(A1;»0″))     —  как в отдельной ячейке, так и в присвоеном Имени (опять же в определенной ячейке)  :)


Спасибо за ответ, но к сожалению не подойдет.
Формула может меняться пользователем, т.е. может захотеть впаять =(100+A1)*2.
Вообще речь идет о смете т.е. расчет, расшифровка расчета и итоги.
Сорри что сразу не уточнил.
Похоже что стандартного решения (точнее формулы) нет, будем изощряться.  :)


Попробуй всунуть туда формулу ЯЧЕЙКА(«содержимое»;A2)
У меня 2003,поэтому полностью твою формулу не могу написать

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


Цитата: Soner2000 от 25.04.2009, 19:10
Доброе время суток,

На одной из веток похожие темы проскакивали, но здесь маленькая проблемка:

Допустим,
ячейка A1: 10
ячейка A2: =100+A1

Присвоили имя формуле «Test» (Вставка-Имя-Присвоить)
=ПОЛУЧИТЬ.ФОРМУЛУ(Лист1!$A$2)

ячейка B2: =Test

Выводит: =100+RC[-1]
а хотелось бы с результатом значения ячейки А1, т.е.:  =100+10

Реально это сделать с помощью формулы?

ячейка A2: =100+$A$1
или
ячейка R2C1: =100+R1C1

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Как получить формулу из ячейки?

Отображение текста формул

Добрый день, читатели блога! Сегодня мы поговорим о том как при необходимости отобразить формулу в ячейке как текст. Ситуация нестандартная, но иногда может пригодиться, особенно для проверки вводимых функций.

Для пользователя Excel всегда встаёт вопрос: как же узнать где в ячейке есть формула, а где нет? 

Пойдём по порядку и опустим случай, когда мы щёлкаем на ячейку и смотрим в строчку формул, а также используем кнопку «Показать формулы». 

Способ №1

Определить есть ли формула в ячейке нам поможет функция =ЕФОРМУЛА.

Отображение текста формул

Результатом вычислений будет два значения: ИСТИНА — формула в ячейке есть; ЛОЖЬ — формулы в ячейке нет.

Ячейки с формулами найдены. Преобразовать формулу в текст поможет функция =Ф.ТЕКСТ. Она возвращает формулу в виде строки. Есть и минус: её можно использовать только с версии Excel 2013 и выше.

отображение текста формул

Способ №2

Воспользуемся гибкими возможностями именованных диапазонов в Excel. Переходим на вкладку «Формулы», в блоке кнопок «Определенные имена» нажимаем «Диспетчер имён».

Щёлкаем «Создать», далее вводим имя диапазона (например, ПОЛУЧИТЬФОРМУЛУ), область оставим «Книга», поле «Примечание» можно оставить пустым, в поле «Формула» напишем =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист2!C1). В примере формула находится в ячейке С1, у вас она может быть где угодно, но важно помнить одно — такой способ работает только в ячейке правее ячейки с формулой!

отображение текста формул

Имя создано, осталось ввести его в ячейку. Вводим равно и пишем начальные буквы имени, созданного выше.

отображение текста формул

Как только оно появилось сразу щелкаем по нему два раза.

отображение текста формул

Подтверждаем ввод. Видим результат.

отображение текста формул

Способ №3

Воспользуемся созданием пользовательской функции на VBA.

Добавим новый модуль (как это сделать можно прочитать ЗДЕСЬ):

  1. Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
  2. Далее «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«.

отображение текста формул

Подтверждаем ввод, смотрим на результат.

отображение текста формул

Если вы знаете ещё варианты решения этой задачи — оставляйте комментарии под статьёй!

Видео:

Понравилась статья? Поделить с друзьями:
  • Получить формат ячейки vba excel
  • Получить уникальные значения массива excel
  • Получить уникальные записи excel
  • Получить угол в excel
  • Получить строку списка excel