Written by Allen Wyatt (last updated January 25, 2020)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
John notes that when cutting and pasting dates between workbooks, they seem to change for no reason. For example, he did this with a workbook with 100 lines, 3 columns of dates, all with 2018 as the year. The pasted data all has 2014 as the year and the days are one digit earlier (17th becomes 16th, etc.).
The giveaway clue in John's description is that there is a four-year difference between what he copies and what is pasted. The problem is related to the two different "base dates" that Excel can use for calculating dates.
You see, internally Excel maintains dates as a serial number that represents the number of days from a given base date. This date is normally January 1, 1900, so a serial number of 1 is that date (January 1, 1900), 2 is the next day, 3 the following day, etc.
The 1900 base date is the default for Windows-based Excel versions. The other base date is January 1, 1904. Historically this is the base date used in Mac-based Excel versions. (I say "historically" because it isn't the default in the latest Mac versions. It is unclear exactly when Microsoft changed the default.) Microsoft used this second base-date system because early Macs had an inherent problem in dealing with dates before January 1, 1904—something related to how leap years were dealt with, if I recall correctly.
Under the 1904 base-date system, an internal serial number of 0 is January 1, 1904, 1 is the next day, and 2 is the day after. Note that with the two base-date systems the dates for any given serial number aren't off by only four years—they are off by four years and a day.
In John's situation, then, the source workbook has the base date set to the 1904 system. Within that workbook everything is fine, but when you copy the values (remember that you are copying numbers—serial numbers—from one system to another) and paste them into a workbook that uses the 1900 system, the dates will appear to be off by four years and one day.
There are two possible solutions to the problem. First, you could change the base-date system used in the target workbook. You can do that by following these steps:
Figure 1. The Advanced options in the Excel Options dialog box.
Now you should be able to copy the dates from the source to the target workbook without any of the problems originally noted. There is a drawback to this, however: Others will still have the same problem if they want to copy anything from the target workbook at a later date.
That brings us to the second possible solution: Adjust the dates after they are pasted into the target workbook. If you look at the underlying serial numbers that Excel uses on a system that uses the 1900 base-date system, you'll see that the serial number for 1/1/1900 is 1 and the serial number for 1/1/1904 is 1463. Thus, you could paste the dates into the target workbook, subtract 1462 from what you just pasted, and you would end up with properly adjusted dates for the target workbook.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (10942) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
Defined names can be a great boon when working in a worksheet. Usually names are available throughout an entire workbook, ...
Discover MoreExcel provides keyboard shortcuts for a variety of purposes. This tip examines two such shortcuts, designed to allow ...
Discover MoreThe programs in the Microsoft Office suite are designed to work with each other easily. Sometimes there can be hiccups ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2021-11-19 15:24:19
Diana
thank you, unchecking the 'Use 1904 Date System ' worked for me (see Figure 1 below)
Figure 1. me
2020-06-19 03:24:35
Clive E
Allen, I have a different explanation for the origin of the different date systems. Using the 1900 base date, Excel thinks there are 29 days in February 1900. This is not correct - leap years do not occur on the century. Apple avoided the issue by using a base date 4 years later. The 1-day discrepancy is due to Microsoft's error.
2020-06-19 02:49:32
Clive E
Allen, I have a different explanation for the origin of the different date systems. Using the 1900 base date, Excel thinks there are 29 days in February 1900. This is not correct - leap years do not occur on the century. Apple avoided the issue by using a base date 4 years later. The 1-day discrepancy is due to Microsoft's error. {fig}
2020-06-18 09:14:46
Scott R
Thank you so much! Would have never figured this out.
2020-04-06 02:34:44
Matt
Thanks, I was going crazy thinking a client had submitted really old tax records.
2020-01-27 06:26:07
David Robinson
The way I'd do it is I'd use the TEXT function to convert the dates into text, such as "DD MMM YYYY" (I use text months to get over any issues from UK and US dates having months and days in different orders), then you can copy this formatted text, as values. Finally you can convert it into an actual date using VALUE.
i.e. source: (in B1) =TEXT(A1,"DD MMM YYYY")
copy B1 and paste into B1 of target as value
target (in A1) = VALUE(B1)
A benefit of this is you don't need to worry which date system is which!
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments