Загрузка информации из других программ в 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 на его составные части:
- Убедитесь, что справа от даты/времени есть четыре пустых столбца. Здесь Excel поместит различные части даты/времени.
- Выберите все ячейки, содержащие иностранные даты/время.
- Выберите текст в столбцы из меню “Данные”. Excel запускает мастер преобразования текста в столбцы. (См. Рис. 1.)
- Убедитесь, что выбран параметр «С разделителями», затем нажмите «Далее». Excel отобразит второй шаг мастера.
- Убедитесь, что установлен флажок “Пробел”.
- Нажмите “Готово”.
Рис. 1. Мастер преобразования текста в столбцы.
Теперь дата и время разделены на пять отдельных столбцов. Теперь вы можете использовать формулу, чтобы снова сложить действительную дату и время. Например, предполагая, что развернутая версия даты/времени находится в ячейках 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), а затем форматирует ячейку для отображения свойства значения.
Источник: