
Tips.Net > ExcelTips Home > Creating Macros > Dates and Times > Converting an Unsupported Date Format
Summary: If you import data produced by a program other than Excel, it might include dates stored in a format not automatically recognized by Excel. This tip shows how you can do the necessary data conversion so that Excel can recognize the dates. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, Excel 2003, and Excel 2007.)
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.
Tip #3014 applies to Microsoft Excel versions: 97 2000 2002 2003 2007
PivotTables Got You Perplexed? PivotTables for the Faint of Heart shows how you can start using Excel's PivotTable tool right away to spin your data into gold! You discover how easy it really is to crunch the numbers you need to crunch. Uncover the power of creating PivotTables, editing them, formatting them, customizing them, and much more.
Check out PivotTables for the Faint of Heart today!
Add power to your purpose with Excel. A comprehensive 500+ page e-book explains everything you need to know about macros. (more information...)
Ask an Excel Question
Make a Comment
ExcelTips FAQ
ExcelTips Premium
Beauty Tips
Bugs and Pests Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pet Tips
Word2007 Tips
WordTips
Advertise on the
ExcelTips Site