Google Sheets: преобразовать строку в дату - PullRequest
1 голос
/ 08 мая 2019

Мне нужно следующую строку даты:

2019-05-07T19:00:00.000Z

Теперь я хочу преобразовать дату и время в 2 ячейки, но они по-прежнему не работают с датой. Я попробовал это с:

=LEFT(F2; FIND("T"; F2) - 1)

Что приводит к:

2019-05-07

Но я не могу преобразовать это в дату как ДД.ММ.ГГГГ. Если я наберу «2019-05-07» вручную, я могу преобразовать его - но он не конвертируется с импортированными данными. Почему?

И у меня та же проблема со временем.

Ответы [ 3 ]

0 голосов
/ 08 мая 2019

используйте это:

={TEXT(DATE(LEFT(A13, 4), MID(A13, 6, 2), MID(A13, 9, 2)), "dd.MM.yyyy"),
 REGEXEXTRACT(A13, "T(.*)\.")}

0

0 голосов
/ 08 мая 2019

Чтобы ответить на ваш вопрос, хотя и поверхностно, текстовые функции (такие как LEFT и TEXT) возвращают строки, которые Sheets не пытается автоматически преобразовать в число, которое затем может быть представлено в формате Date.

Однако это может быть принудительно выполнено с помощью функции VALUE . Таким образом, оборачивая VALUE вокруг того, что вы пытались, примерно так:

=value(LEFT(F2; FIND("T"; F2) - 1))

должен, для вашего примера, возвращать 07.05.2019 при форматировании с пользовательским форматом

dd.mm.yyyy

С тегом вы можете применить:

=split(regexreplace(F3;"[A-Z]";" ");" ")

для замены как T, так и Z пробелами перед разделением на пробелы, поскольку формат, вероятно, будет согласованным (например, всегда 24 символа), но более короткая версия будет:

=split(left(F2;23);"T")

с применением подходящего форматирования для каждой даты и времени.

Применяя, как в комментарии,

=MID(G2; 12; 5)

имеет потенциальное неудобство, что MID также является текстовой функцией (поэтому не подходит, например, для удобного форматирования с AM / PM).

0 голосов
/ 08 мая 2019

Вам не нужно регулярное выражение или даже FIND, если формат строковых значений всегда одинаков.

Получите даты с

=text(text(text(day(LEFT(F2, 10)),"00") & "/" & text(month(LEFT(F2, 10)),"00") &"/"& year(LEFT(F2, 10)),"0000"),"dd.MM.yyyy")

(text(..., "dd.MM.yyyy") будет делатьпреобразование переформатированной строки даты) и время с

=MID(F2, 12, 5)

См. скриншот Google Sheets:

enter image description here

...