Загрузка в Excel информации из других программ — не редкость.

Например, у вас могут быть данные, созданные другой программой, и вы хотите проанализировать эти данные в Excel. Когда вы импортируете данные в Excel, он довольно хорошо справляется с присвоением информации правильных типов данных и даже может анализировать и преобразовывать некоторые данные.

Однако когда дело доходит до даты и времени, не все программы говорят так, как может понимать Excel. Например, если ваша другая программа хранит даты в формате «Mon Jan 13 14:33:03 2011», тогда Excel не сможет проанализировать дату, и вам нужно будет выполнить преобразование другим способом.

К счастью, большинство программ генерируют дату и время в формате, соответствующем шаблону. Предположим, например, что «Mon Jan 13 14:33:03 2001» представляет формат, за которым следуют все даты, вы можете выполнить преобразование, используя простую формулу:

=DATEVALUE(MID(A1,9,2)&MID(A1,5,3)&RIGHT(A1,4)) + TIMEVALUE(MID(A1,12,8))

В этой формуле предполагается, что внешний формат даты и времени находится в ячейке A1.

Просто отформатируйте результат формулы, используя один из форматов даты / времени Excel, и у вас не будет проблем.

При желании вы можете использовать функцию «Текст в столбцы», чтобы разбить внешний формат даты / времени на составные части:

  1. Убедитесь, что справа от даты / времени есть четыре пустых столбца.

Здесь Excel разместит различные части даты / времени.

  1. Выберите все ячейки, содержащие иностранные даты / время.

  2. Откройте вкладку «Данные» на ленте.

  3. Щелкните инструмент Текст в столбцы в группе Инструменты для работы с данными. Excel запускает мастер преобразования текста в столбцы. (См. Рис. 1.)

  4. Убедитесь, что выбран параметр «С разделителями», затем нажмите «Далее». Excel отображает второй шаг мастера.

  5. Убедитесь, что установлен флажок Пробел.

  6. Щелкните Готово.

Дата и время теперь разделены на пять отдельных столбцов. Теперь вы можете использовать формулу для объединения действительных даты и времени. Например, предполагая, что развернутая версия даты / времени находится в ячейках A1: E1, вы можете использовать следующее:

=(C1&B1&E1)+D2

Опять же, отформатируйте результат, используя формат даты / времени, и все готово.

Если вы предпочитаете использовать макрос для преобразования, то следующий макрос пройдет по всем выбранным ячейкам и выполнит преобразование:

Sub ConvDate()

Dim c As Range          For Each c In Selection.Cells         c = DateValue(Mid(c, 5, 6) & ", " _           & Mid(c, 21, 4)) + TimeValue(Mid(c, 12, 8))

c.NumberFormat = "dd MMMM yyyy h:mm:ss"

Next c End Sub

Макрос преобразует текстовую строку в приемлемую дату / время (используя DateValue), а затем форматирует ячейку для отображения свойства значения.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9779) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Converting_an_Unsupported_Date_Format [преобразование неподдерживаемого формата даты].