erge
@erge
Примус починяю

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

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

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

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

PS: проблема еще в том что у меня LibreOffice а у операторов Excel разношерстный , начиная с Excel 2003
  • Вопрос задан
  • 1204 просмотра
Решения вопроса 1
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) )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
joeberetta
@joeberetta
Читай: https://epdf.pub/google-for-dummies.html
Прежде чем отлавливать ошибку попробуйте сделать так, чтобы этих ошибок не было(а уж если это невозможно, то только тогда отлавливайте ошибки).
Вот туториал написать валидатор ячейки на правильную дату: https://www.contextures.com/exceldatavalidationdat...

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

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

Войти через центр авторизации
Похожие вопросы