ExcelTips (Menu Interface)
Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our site focusing on the ribbon interface.
ExcelTips FAQ
Ask an Excel Question
Make a Comment
Free Business Forms
Free Calendars
It is not uncommon to load information from other programs into Excel. For instance, you may have data generated by another program, and you want to analyze that data in Excel. When you import data into Excel, it does a fairly good job of assigning the proper data types to information, and it can even parse and convert some data.
When it comes to dates and times, however, not all programs speak in a way that Excel can understand. For instance, if your other program stores dates in the format "Mon Apr 16 14:33:03 2007", then Excel won't be able to parse the date and you will need to do the conversion in some other manner.
Fortunately, most programs generate their dates and times in a format that follows a pattern. Assuming, for instance, that "Mon Apr 16 14:33:03 2001" represents the format followed by all dates, you can do the conversion using a simple formula:
=DATEVALUE(MID(A1,9,2)&MID(A1,5,3)&RIGHT(A1,4)) + TIMEVALUE(MID(A1,12,8))
This formula assumes that the foreign date/time format is in cell A1. Simply format the result of the formula using one of Excel's date/time formats, and you'll have no problem.
If you prefer, you can use the Text to Columns function to break the foreign date/time format into its integral parts:
The dates and times are now separated into five individual columns. You can now use a formula to put a valid date/time back together. For instance, assuming that the exploded version of the date/time is in cells A1:E1, you could use the following:
=(C1&B1&E1)+D2
Again, format the result using a date/time format, and you are all set.
If you prefer to use a macro to do the conversion, then the following macro will step through all the selected cells and do the conversion:
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
The macro converts the text string to an acceptable date/time (using DateValue) and then formats the cell to display the value property.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (3014) applies to Microsoft Excel versions: 97 2000 2002 2003 2007
Related Tips:
Save Time! ExcelTips has been published weekly since late 1998. Past issues of ExcelTips are available in convenient ExcelTips archives. Have your own enhanced archive of ExcelTips at your fingertips, available to use at any time! Check out ExcelTips Archives today!