Самое простое решение - поместить yy, mm, dd в формулу date()
, сначала извлекая их с помощью left()
, mid()
и right()
.В этом случае предполагается, что введенная вами дата указана в формате A1:
=date(right(A1,2)+100,left(A1,2),mid(A1,4,2))
Объяснение выше:
=right(A1,2)
получает последние две цифры в ячейке (гг).Мы добавляем 100, потому что по умолчанию это 1911 вместо 2011 (пропустите +100, если у вас это не так)
=left(A1,2)
получает первые две цифры в ячейке (мм).
=mid(A1,4,2)
получает 2 цифры в середине ячейки, начиная с 4-й цифры (dd).
Почему это происходит в первую очередь:
Я прихожучерез эту проблему все время, когда я импортирую данные канадских банков в Excel.Короче говоря, введенный вами формат даты не соответствует вашим региональным настройкам.
Кажется, ваши настройки означают, что Excel требует ввода даты в формате ДД-ММ-ГГ или ГГ-ММ-ДД, но ваши входные данные отформатированы в формате ММ-ДД-ГГ.
Итак, превосходнорассматривает ваши дни как месяцы и наоборот, что означает, что любая дата с днем ниже 12 будет распознана как дата, НО НЕПРАВИЛЬНАЯ ДАТА (месяц и день поменялись местами), а любая дата с днем выше 12 не будет признана как датавообще, потому что Excel видит день как 13-й + месяц.
К сожалению, вы не можете просто изменить форматирование, потому что Excel уже заблокировал эти назначения дня / месяца на месте, и вы в итоге просто перемещаетеExcel ДУМАЕТ визуально дни и месяцы, а не переназначает их.
Честно говоря, меня удивляет, что в Excel нет инструмента для изменения даты, потому что я думаю, что это происходит постоянно.Но приведенная выше формула делает это довольно просто.
ПРИМЕЧАНИЕ: если у ваших дат нет начальных нулей (то есть 4/8/11 против 04/08/12), это становится сложнее, потому что вы должны извлекать различные суммыцифр в зависимости от даты (т.е. 4/9/11 против 4/10/11).Затем вы должны построить пару операторов if в вашей формуле.Гросс.