
Предыстория: данные поступают из базы данных с датами в европейском формате (ДД/ММ/ГГГГ). Столбец «Создано» (столбец A) также имеет временную метку в формате 24 часа. Рядом с ним находится столбец «Идентифицировано» (столбец B) с только датой, которая может не совпадать с датой «создания».
Мне нужно вывести новый столбец «Создано» только с датой (без временной метки) в формате США, и я знаю, как это сделать. Я использую LEFT, чтобы захватить только европейскую дату в новом столбце. (столбец C) Затем в другом новом столбце я использую =Date(value(right(A2,4)),value(mid(A2,4,2)),value(left(a2,2))), чтобы перевести дату в формат США (MM/DD/YYYY). (столбец D)
Все хорошо с вышеизложенным. Вот где все становится затруднительно, мне нужно сделать ту же самую передачу даты для данных "Идентифицировано" в их собственный столбец (столбец E). Не каждая строка данных имеет дату "Идентифицировано".
В случаях, когда дата «Идентифицирована» отсутствует, я бы хотел, чтобы моя формула даты распознавала ошибку (которая отображается как #ЗНАЧЕНИЕ) и копировала преобразованную дату «Создано».
Я пробовал играть с операторами IF, OR и IsError, но так и не смог получить допустимый вариант.
Буду очень признателен за любые предложения. Я также попытался создать еще один столбец (F), используя =If(iserror) для чтения моего преобразованного столбца "Identified", и если это была ошибка, чтобы получить преобразованную дату "Created", а если это не ошибка, чтобы получить преобразованную дату "Identified", однако это дает мне пустую ячейку.
Я создал простой пример таблицы Excel, но не вижу возможности загрузить/прикрепить файл Excel?
Изображение примера рабочей тетради с прокомментированными формулами
решение1
Формула для ячейки E2
...
Старый способ, с использованием IF
=IF(ISBLANK(B2),D2,DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))))
Современный способ, с использованием ЕСЛИОШИБКА
=IFERROR(DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))),D2)
Если B2
пусто, то DATE
функция, которую вы использовали, E2
выдаст ошибку.
Старый способ использует IF
функцию для проверки того, B2
пуста ли ячейка, и если это так, просто возвращает в качестве результата то, что находится в ячейке D2
. Если проверка не пройдена, IF
функция просто вычисляет требуемый результат с помощью DATE
функции.
Современный способ не касается того, что вызывает DATE
ошибку, а только того, есть ли ошибка. Если ошибки нет, функция IFERROR использует первый аргумент - функцию DATE
- а если есть ошибка, она использует второй аргумент - D2
- в качестве результата.
Современный способ предпочтительнее. Другие ошибки, такие как B2
наличие случайного текста, вызовут проблемы с DATE
функцией в E2. IF
Версия не будет обрабатывать такие ошибки должным образом, тогда как IFERROR
будет.