Excel проверить что в ячейке дата

 

Здравствуйте уважаемые знатоки!

Подскажите спомощью какой формулы можно узнать что текст введенный в ячейке А1 является датой? Дата вводится в формате дд.мм.гггг. Спасибо заранее!

Power Query, Power Pivot, Power BI и MS Excel спасут мир

 

китин

Пользователь

Сообщений: 931
Регистрация: 16.05.2013

ЕЧИСЛО ???

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

ЕЧИСЛО не подходит, так как в ячейке может быть введено просто чилсо тоже — например 55

Power Query, Power Pivot, Power BI и MS Excel спасут мир

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

=ЯЧЕЙКА(«формат»;A1)=»D1″

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

Дело в том, что если в ячейке А1 стереть дату и ввести например текст, то его формат (формат ячейки А1) опять останется ДАТА, что приводит к неправильному результату.

Power Query, Power Pivot, Power BI и MS Excel спасут мир

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

показали бы в примере что проверяете дата для экселя число, если у вас идут данные вперемешку реально число и число (дата) то проблематично что то проверить (мое мнение), один из вариантов отсеивать числа не входящие в диапазон определенных нужных дат и то сомнительно

Лень двигатель прогресса, доказано!!!

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#7

24.05.2016 12:15:56

Цитата
Самир Мамедов написал:
то его формат (формат ячейки А1) опять останется ДАТА

Если Вы не можете поменять формат ячейки, то это совсем другой уже вопрос. А по делу см. файл.

Прикрепленные файлы

  • ячейка.xls (19.5 КБ)

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

Владимир! Большое человеческое спасибо!!

Power Query, Power Pivot, Power BI и MS Excel спасут мир

 

Бахтиёр

Пользователь

Сообщений: 1926
Регистрация: 15.01.2016

Excel 365

#9

24.05.2016 20:36:57

Цитата
Самир Мамедов написал:
если в ячейке А1 стереть дату и ввести например текст, то его формат (формат ячейки А1) опять останется ДАТА, что приводит к неправильному результату.

может лучше так?

Код
=И(ЯЧЕЙКА("формат";A1)="D1";ЕЧИСЛО(A1))

если ввести текст, среагирует сразу

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Но не среагирует, если ввести число. Например, 2. Это в первых днях начала 1900 года.

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Вить, если это число 2 будет в формате даты — не вижу противоречий.
Другой вопрос, что при смене только формата(без изменения данных в ячейке) — формула не сработает.
Предлагаю вариант с подсветкой через УФ — тогда сработает даже при тупом изменении формата. Если не дата — ячейка будет с красной заливкой.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Бахтиёр

Пользователь

Сообщений: 1926
Регистрация: 15.01.2016

Excel 365

#12

24.05.2016 20:57:54

Цитата
The_Prist написал:
Вить, если это число 2 будет в формате даты — не вижу противоречий.

+1

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#13

24.05.2016 22:39:53

Цитата
The_Prist написал: если это число 2 будет в формате даты — не вижу противоречий

И я не вижу. Но вопрос: нужна ли такая дата автору темы?

Цитата
Самир Мамедов написал: …узнать что текст введенный в ячейке А1 является датой
 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Вить, так ты же сам правильную фразу и процитировал — узнать является ли значение датой.
Кто скажет что 02.01.1900 это не дата пусть первым бросит в меня камень ©  :) Мы знаем даты и меньше — благо история летоисчисления начинается у людей куда раньше, чем у Excel.
Однако по-хорошему формула должна выглядеть так:
=И(ЯЧЕЙКА(«формат»;A1)=»D1″;ЕЧИСЛО(A1);НЕ(ЕОШ(ПОИСК(«??.??.????»;ТЕКСТ(A1;»ДД.мм.ГГГГ»)))))
тогда будет и формат соблюден и при вводе отрицательных чисел(при системе дат от 1900 года) ячейка будет подсвечена, т.к. текст там дату даже рядом не будет напоминать.

Изменено: The_Prist24.05.2016 22:54:43

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Да не об этом предупреждаю!
Добавить проверку на число >= (возможно, и <=) нужной даты

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Вить, да поняли мы все это, не горячись. Но ведь автор пока этого не просил — откуда нам знать надо оно или нет? Особенно если учесть, что автора вроде как полностью устроил ответ из 7-го сообщения, а мы так — разминаемся :)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

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

=ЕОШИБКА(СЕГОДНЯ()-A1)

Истина  — в A1 введена не дата
Ложь — в A1 введена дата

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Сергей Чачин, лишнее это. СЕГОДНЯ — летучая.
=ЕОШИБКА(-A1)
И при ЛОЖЬ не обязательно дата в ячейке (число ноль, 45625, пусто). Об этом еще в соощении №3 написано.

Да и вообще: логика для восприятия должна быть правильная, а то когда надо видеть ИСТИНА (да, это нужный результат), получаем ЛОЖЬ

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#19

04.12.2020 14:50:33

Цитата
Самир Мамедов написал:
Как проверить является ли данное в ячейке ДАТОЙ без макроса,
Код
=ЛЕВСИМВ(ЯЧЕЙКА("формат";СсылкаНаЯчейку);1) = "D"

здесь
СсылкаНаЯчейку — адрес ячейки, которую нужно проверить
если результат функции ИСТИНА — в проверяемой ячейке дата

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Александр Котол

Пользователь

Сообщений: 29
Регистрация: 01.01.1970

#20

22.12.2021 15:22:55

Цитата
написал:
НЕ(ЕОШ(ПОИСК(«??.??.????»;ТЕКСТ(A1;»ДД.мм.ГГГГ»))))

Добрый день!
Подскажите, пожалуйста, что делает этот кусок? Я думал ищет по маске, чтобы был формат ДД.мм.ГГГГ, но она не реагирует написано 20.12.20213 или 20.12.2021

Прикрепленные файлы

  • тест.xlsx (8.48 КБ)


Попробуем преобразовать заданное значение в дату. Если это удастся, то будем считать значение датой.

Датам от 01.01.1900 до 31.12.9999 в EXCEL сопоставлены целые положительные числа от 1 до 2958465. Например, дате 25.01.1900 соответствует число 25. Таким образом, число из этого диапазона может быть представлено в виде даты.

Кроме того, EXCEL с помощи функции

ДАТАЗНАЧ()

может преобразовать в дату некоторые текстовые строки. Например, «14-мар-2011» или «2001/3/1» или «21-02-2001» или «‘5 ноябрь 2009». Но, некоторые форматы записи даты EXCEL не понимает: «2011-март-14» или «2009,11,5».

Некоторые значения не могут быть

преобразованы в даты

по определению: 29-02-2007 (2007 год не високосный), 31.09.2011 (31 сентября не бывает).

С помощью функции

=НЕ(ЕОШ(ГОД(A5)))

можно определить является ли значение датой. Функция

ГОД()

пытается преобразовать значение в дату и вернуть ее год. Если у нее это не получается, то возвращается ошибка (см.

файл примера

).

Если ячейки содержат неправильный формат значений – это может привести к ошибочным вычислениям в формулах. Например, вместо типа значения «Дата», ячейка содержит тип значения «Текст». При подготовке больших объемов данных следует выполнить проверку всех типов значений на соответствие определенному формату. Например, таблица заполнялась данными из разных источников где в разный способ фиксировалась дата. С такой таблицей нельзя выполнять различных вычислений. Визуально сложно заметить где в неправильном формате введена неправильная дата с точки зрения программы Excel.

Поиск формата текста вместо даты в Excel

Чтобы быстро найти ошибочные значения в Excel и выделить цветом все ячейки с неправильным форматом, будем использовать условное форматирование. Для примера возьмем простую таблицу:

Таблица.

Поиск и выделение цветом ячеек с неправильным форматом отображения значений:

  1. Выделите диапазон ячеек A2:A8 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
  2. Создать правило.

  3. Выберите ниже: «Использовать формулу для определения форматируемых ячеек».
  4. ЕТЕКСТ.

  5. Чтобы найти дату в тексте Excel для поля ввода введите формулу: =ЕТЕКСТ(A2) и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. И нажмите ОК на всех открытых окнах.

Зеленая ячейка.

Как видно на рисунке все даты в формате текст выделились цветом:

Пример.

В условиях форматирования мы использовали простую функцию =ЕТЕКСТ(), у которой всего только 1 аргумент – ссылка на проверяемую ячейку. Арес ссылки в аргументе функции ЕТЕКСТ должен быть относительным, так как будет проверятся каждая ячейка выделенного диапазона. Если текущая проверяемая ячейка содержит текст (а не дату) – это неправильное значение Excel. Тогда функция ЕТЕКСТ возвращает значение ИСТИНА и к этой ячейке сразу же присваивается новый формат (зеленая заливка). Название функции ЕТЕКСТ следует читать как сокращение от двух слов: Если ТЕКСТ



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

  • ЕНЕТЕКСТ – если не текст (функция так же позволяет быстро найти дату в тексте Excel);
  • ЕЧИСЛО – если число (позволяет быстро находить неправильный формат чисел в Excel);
  • ЕОШ – если ошибка;
  • ЕОШИБКА – если ошибка;
  • ЕСЛИОШИБКА – если ошибка (это не логическая функция, но ее легко оптимизировать под данную задачу);
  • ЕПУСТО – если пусто;
  • ЕЛОГИЧ – если логическое значение;
  • ЕНД – если недоступное значение (#Н/Д);
  • ЕНЕЧЁТ – если нечетное значение;
  • ЕЧЁТ – если четное значение;
  • ЕССЫЛКА – если ссылка;
  • ЕФОРМУЛА – если формула.

При желании можете проверить все функции в действии экспериментальным путем.

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