1

У меня есть столбец с датами, отформатированными так:

July 14, 2015 11:02

Как я могу преобразовать это в формат DATE для облегчения запросов? (Мне не обязательно нужно время, если это облегчает?)

РЕДАКТИРОВАТЬ Выглядит хорошо, но я все еще вижу ошибку

РЕДАКТИРОВАТЬ 2 Месяц не рассчитывается правильно

1 ответ1

1

С вашим значением в ячейке A1 эта формула будет изолировать часть даты:

=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

отбрасывая все после последнего пробела (часть времени)

Чтобы преобразовать это в истинную дату, используйте:

=DATEVALUE(LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1))

Для этого преобразования «на месте» потребуется макрос.

EDIT # 1:

Чтобы найти любые "ненужные" символы в ваших данных, поместите образец даты в ячейку A1. затем в B1 введите:

=MID($A$1,ROW(),1)

и скопировать вниз. затем в С1 введите:

=CODE(B1)

и скопировать вниз. Тебе следует увидеть:

EDIT # 2:

Учитывая ваши данные в A1, эта формула:

=--MID(A1,FIND(", ",A1)+2,4)

вернется год (2015). Эта формула:

=LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"January","February","March","April","May",",June","July","August","September","October","November","December"},{1,2,3,4,5,6,7,8,9,10,11,12})

вернет месяц (7). Эта формула:

=--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1)

вернется день (14).

Собираем все это вместе:

=DATE(--MID(A1,FIND(", ",A1)+2,4),LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"January","February","March","April","May",",June","July","August","September","October","November","December"},{1,2,3,4,5,6,7,8,9,10,11,12}),--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1))

Эта формула позволяет избежать региональной чувствительности, связанной с DATEVALUE().

EDIT # 3:

Как вы обнаружили, массив месяца должен быть отсортирован, поэтому используйте его для месяца:

=LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"April","August","December","February","January","July","June","March","May","November","October","September"},{4,8,12,2,1,7,6,3,5,11,10,9})

и это "окончательная" формула:

=DATE(--MID(A1,FIND(", ",A1)+2,4),LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"April","August","December","February","January","July","June","March","May","November","October","September"},{4,8,12,2,1,7,6,3,5,11,10,9}),--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1))

Отредактировано, чтобы удалить пробел в формуле (правки должны быть 6 символов, отсюда и это описание)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .