Преобразование неподдерживаемого формата даты

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

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

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

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

В этой формуле предполагается, что иностранная дата/время формат находится в ячейке A1. Просто отформатируйте результат формулы, используя один из форматов даты/времени Excel, и у вас не будет проблем.

Если хотите, вы можете использовать функцию Text to Columns, чтобы разбить внешнюю дату /time на его составные части:

  1. Убедитесь, что справа от даты/времени есть четыре пустых столбца. Здесь Excel поместит различные части даты/времени.
  2. Выберите все ячейки, содержащие иностранные даты/время.
  3. Выберите текст в столбцы из меню “Данные”. Excel запускает мастер преобразования текста в столбцы. (См. Рис. 1.)
  4. Рис. 1. Мастер преобразования текста в столбцы.

  5. Убедитесь, что выбран параметр «С разделителями», затем нажмите «Далее». Excel отобразит второй шаг мастера.
  6. Убедитесь, что установлен флажок “Пробел”.
  7. Нажмите “Готово”.

Теперь дата и время разделены на пять отдельных столбцов. Теперь вы можете использовать формулу, чтобы снова сложить действительную дату и время. Например, предполагая, что развернутая версия даты/времени находится в ячейках 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 cEnd Sub

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

Источник: frestage.ru

Бытовой вопрос