Как excel определяет что введен текст а не формула
Перейти к содержимому

Как excel определяет что введен текст а не формула

  • автор:

ЯЧЕЙКА (функция ЯЧЕЙКА)

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2013 Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще. Меньше

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

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

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

Синтаксис

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

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

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

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

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

Если этот параметр опущен, сведения, указанные в аргументе info_type, возвращаются для ячейки, выбранной во время вычисления. Если аргумент ссылки является диапазоном ячеек, функция CELL возвращает сведения для активной ячейки в выбранном диапазоне.

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

  • В режиме автоматического вычисления при изменении ячейки пользователем вычисление может быть активировано до или после выполнения выбора в зависимости от платформы, используемой для Excel. Например, Excel для Windows в настоящее время активирует вычисление перед изменением выделения, ноExcel в Интернете активирует его после этого.
  • При Co-Authoring с другим пользователем, который вносит изменения, эта функция будет сообщать о вашей активной ячейке, а не о редакторе.
  • Любой пересчет, например нажатие клавиши F9, приведет к тому, что функция вернет новый результат, даже если изменение ячейки не было выполнено.

значения info_type

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

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

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

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

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

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 элементами.

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

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

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

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

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

Формат Microsoft Excel

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

Формула в EXCEL отображается как Текстовая строка

Бывает, что введя формулу и нажав клавишу ENTER пользователь видит в ячейке не результат вычисления формулы, а саму формулу. Причина — Текстовый формат ячейки. Покажем как в этом случае заставить формулу работать.

Итак, по какой-то причине пользователь ввел формулу в ячейку с Тектовым форматом.

Заставить EXCEL интерпретировать введенное в ячейку выражение как формулу, а не как текст — очень просто: нажмите клавишу F2 , затем ENTER (ВВОД) .

Ниже приведено более подробное объяснение:

  • выделите ячейку с формулой (на рисунке это ячейка А1 );
  • формат ячейки установите Общий (нажав CTRL+1 и выбрав соответствующий Числовой формат или через меню Главное/ Число/ Числовой формат );
  • нажмите клавишу F2 (т.е. войдите в Режим Правки ячейки) или поставьте курсор в Строку формул ;
  • нажмите ENTER .

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

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

Однако, если перед формулами стоит апостроф (‘), то существует подход, который позволяет быстро преобразовать значение ячейки в формулу. Апостроф сообщает EXCEL что ячейка д.б. текстовой не зависимо от того какой фактически установлен Формат ячеек. В Строке формул значения такой ячейки выглядят, например, как ‘=C15.

Формально слевастоящий апостроф не является символом и инструмент Найти/Заменить не сработает, но сработает Текст-по-столбцам :

  • Выделите столбец с формулами (формулы м.б. разными)
  • Вызовите Текст-по-столбцам
  • После вызова этого инструмента во втором окне укажите в качестве разделителя апостроф ‘
  • Нажмите Готово

Все апострофы удалятся и формулы заработают. Но, проблемой может быть, если Ваши формулы содержат апострофы. Сначала замените апострофы на какой либо редкий символ (~, который заведомо не встречается в Ваших формулах) или их последовательность (слевастоящие апострофы это не затронет), затем избавьтесь от слевастоящих апострофов. И наконец, сделайте обратную замену редкого символа на апостроф.

Для ячейки, связанной с текстовым форматом, отображается значение «не является значением»

В Microsoft Excel при вводе формулы, которая связывает одну ячейку с текстовым форматом, ячейка, содержащая ссылку, также форматируется как текст. Если затем изменить формулу в связанной ячейке, в ячейке будет отображена формула, а не значение, возвращаемое формулой.

Причина

При связывании ячеек в Microsoft Excel к связанной ячейке применяется формат исходной ячейки. Таким образом, при вводе формулы, которая связывает одну ячейку с ячейкой, которая форматируется как текст, ячейка с формулой также форматируется как текст.

Обходное решение

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

  1. Выделите ячейку с формулой, а затем в меню Формат выберите пункт ячейки.
  2. Откройте вкладку число. Выберите код формата, который будет отображаться в ячейке, и нажмите кнопку ОК. В ячейке по-прежнему отображается формула.
  3. Выделите ячейку с формулой, нажмите клавишу F2, а затем нажмите клавишу ВВОД. В ячейке отображается значение.
  4. В той же ячейке в меню Формат выберите пункт ячейки. Категория формат ячейки будет представлять собой текст.
  5. Укажите категорию и параметры форматирования для ячейки, а затем нажмите кнопку ОК.

Как определить, что в ячейке находится формула, а не константа без помощи макросов?

Есть ячейка в которую пользователь обязательно должен ввести формулу, а не константу.
Как узнать формула ли в этой ячейке? Способ отсюда:
http://www.excel-vba.ru/chto-umeet-excel/kak-uznat-est-li-formula-v-yachejke/
не подходит ввиду его ограниченности. Как это сделать при помощи VBA я знаю, но мне это не подходит. UPD
Для Excel 2013+ решение найдено:
https://ru.stackoverflow.com/a/444446/481
Теперь интересует- возможно ли это в менее новых версиях Excel?

Отслеживать
задан 14 авг 2015 в 14:15
17.9k 3 3 золотых знака 47 47 серебряных знаков 86 86 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

попробовал в Excel2013 все сработало. И так как я сделал:

  1. Выберем ячейку A1
  2. Из меню выберем ДАННЫЕ / Работа с Данными / Проверка данных / Проверка данных.
  3. Параметры / Тип данных / Другой
  4. В поле формула вводим =ЕФОРМУЛА(A1)
  5. OK

теперь когда хотим вводит значение дает ошибку. Когда вводим формулу нормально работает.

Отслеживать
ответ дан 21 авг 2015 в 20:52
8,341 4 4 золотых знака 26 26 серебряных знаков 48 48 бронзовых знаков
Спасибо. Ответ верный. У меня excel 2003 -_-
22 авг 2015 в 0:16

@ReinRaus 2003? Это же 12 лет назад было. Винда XP, .NET только появился, 2-я матрица еще не вышла. И Скрепка еще жива! 🙁

– user177221
22 авг 2015 в 6:21
@ReinRaus Спасибо. Если ответ правильный, отмете как правильный. Другим тоже может понадобится.
22 авг 2015 в 7:23
@PashaPash ну я не совсем правильно выразился 🙂 У меня- Open Office, а вот на работе 2003 🙂
22 авг 2015 в 14:18

@SaidolimDjuraev я обязательно приму Ваш ответ, если он будет лучшим из всех, но пока я не спешу. Не переживайте, я постоянно на сайте- не пропаду и не забуду.

22 авг 2015 в 14:20

Для версий старше Exel-2013 такого функционала (без использования VBA), к сожалению, нет. Но вариант есть — использование макрофункций.

Не VBA, но макросы должны быть разрешены. На листе не используются, но применимы в именах. С помощью функции ПОЛУЧИТЬ.ЯЧЕЙКУ можно определить содержимое ячейки, ее адрес, заливку.

Ctrl+F3 — мы в Диспетчере_имен. Создать имя (пусть будет «тестформула»), в поле Диапазон вписать формулу:

 =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;Лист1!$A$1) 

На листе в любой ячейке:

=тестформула 

Если в ячейке А1 константа, результат — константа, если формула — отобразится формула. А что такое формула? Текст, который начинается знаком » =»;»формула»;»значение»)

Чем это может помочь при контроле вводимых данных?

Имя у нас уже есть. Доработаем:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *