@Oldchippy
Hi!
I thing that's an issue related to the first Excel day, not actually the equivalent to numeric 1 (01/Jan/1900) but to 0 (00/Jan/1900, which it works, try entering in a cell 01/01/1900 and in another =<that cell>-1).
The year problem, the excess of 1900 years was artificially solved by the editing mask (yy instead of yyyy); the month problem isn't solved (that's why you get 1 month more); there're no day problems as day for date 0 is 0.
Regards!
EDIT:
Assuming starting date in A1 and ending date in B1, these formulas won't add any month or day (don't know year) to your five centuries:
Years: =SI(O(MES(B1)<MES(A$1);Y(MES(B1)=MES(A$1);DIA(B1)<DIA(A$1)));-1;0)+AÑO(B1)-AÑO(A$1) -----> in english: =IF(OR(MONTH(B1)<MONTH(A$1),AND(MONTH(B1)=MONTH(A$1),DAY(B1)<DAY(A$1))),-1,0)+YEAR(B1)-YEAR(A$1)
Months: =SI(O(MES(B1)<MES(A$1);Y(MES(B1)=MES(A$1);DIA(B1)<DIA(A$1)));12;0)+SI(DIA(B1)<DIA(A$1);-1;0)+MES(B1)-MES(A$1) -----> in english: =IF(OR(MONTH(B1)<MONTH(A$1),AND(MONTH(B1)=MONTH(A$1),DAY(B1)<DAY(A$1))),12,0)+IF(DAY(B1)<DAY(A$1),-1,0)+MONTH(B1)-MONTH(A$1)
Days: =SI(DIA(B1)<DIA(A$1);DIA(FIN.MES(B1;-1));0)+DIA(B1)-DIA(A$1) -----> in english: =IF(DAY(B1)<DAY(A$1),DAY(EOMONTH(B1,-1)),0)+DAY(B1)-DAY(A$1)