Можно ли как-то обработать результат функции = #ЗНАЧ!?

В чем смысл, в некоторых строках колонки с датами при забивке вручную операторы естественно допускают ошибки и где у них месяц 22, где значения разделены запятой и т.п. и т.д.
Мне же из этих ячеек необходимо извлекать данные для загрузки и естественно при неверном формате функция МЕСЯЦ(F425) вернет #ЗНАЧ!

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

Я подумал попробовать извлекать дату из ячейки при условном форматировании и если не получается то подсвечивать, но как ? если функция возвращает #ЗНАЧ! , то ломается вся конструкция формулы.

PS: проблема еще в том что у меня LibreOffice а у операторов Excel разношерстный , начиная с Excel 2003
  • Вопрос задан
  • 22 просмотра
Решения вопроса 2
erge
@erge Автор вопроса
Уже сделал через ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ЕСЛИ(ДЕНЬ(A1)>0;0;1);1)

т.е. если не дата возвращается 1, если дата то 0
это для условного форматирования.

PS: в LibreOffice нет например ЕДАТА и пр., но ЕСЛИОШИБКА есть.
валидация содержимого в ячейке (Данные -> Проверка) в LibreOffice тоже есть, выходит сообщение - "недопустимое значение"
но не знаю будет ли это работать в Excel если сохранить из LibreOffice , формулы в условном форматировании работают.

UPDATE:
В Excel 2003 нет функции ЕСЛИОШИБКА (файл открывается как поврежденный, условное форматирование "слетает"), но есть ЕОШИБКА и она есть и в LibreOffice и в более старших Excel
формула для условного форматирования и подсветки ячеек с некорректной датой будет такой:

=ЕСЛИ(ЕОШИБКА(ДЕНЬ(F2));1;0)

для подсветки пустых ячеек, дат с неполным годом, некорректно введенных дат - так:

=ИЛИ(ДЛИНБ(F2)<>10; ЕСЛИ(ЕОШИБКА(ДЕНЬ(F2));1;0) )
Ответ написан
@ClearAirTurbulence
Логичнее всего проверять ячейку на то, дата в ней, или нет.
Это можно делать по-разному:
https://www.google.com/search?newwindow=1&sxsrf=AL...

https://www.google.com/search?q=excel+check+if+is+...

А еще можно сделать валидацию данных. Например, так.
https://www.excel-office.ru/sosdatsdelatustanovitv...

Тогда он не даст ввести некорректную дату, но тут уже зависит от того, не взбунтуются ли вводящие данные от такой строгости.

А если у вас формула от #ЗНАЧ ломается, у excel'я есть обработчик для этого - функция ЕСЛИОШИБКА.
https://support.office.com/ru-ru/article/%D0%95%D0...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
joeberetta
@joeberetta
Читай: https://epdf.pub/google-for-dummies.html
Прежде чем отлавливать ошибку попробуйте сделать так, чтобы этих ошибок не было(а уж если это невозможно, то только тогда отлавливайте ошибки).
Вот туториал написать валидатор ячейки на правильную дату: https://www.contextures.com/exceldatavalidationdat...

З.ы. также советую вставить date picker (в сети есть готовые формы с макросами) для выбора даты из имеющегося "всплывающего календаря". Так упростите задачу не только себе, но и пользователям
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
02 апр. 2020, в 16:49
15000 руб./за проект
02 апр. 2020, в 16:41
2000 руб./за проект
02 апр. 2020, в 16:33
10000 руб./за проект