Hi djeans!
This is easy to ask but as a formula it's quite difficult.
I have start date in A1 and today's date in B1
Try:
=IF(DATE(YEAR(IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MON
TH(A1),DAY(A1)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1)))),MONTH(IF(B1<DATE(
YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR
(B1)+1,MONTH(A1),DAY(A1))))-6,DAY(IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1
)),DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1))
)))>B1,MIN(IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(
A1),DAY(A1)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1))),DATE(YEAR(IF(B1<DATE(
YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR
(B1)+1,MONTH(A1),DAY(A1)))),MONTH(IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1
)),DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1))
))-6,DAY(IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(A1
),DAY(A1)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1)))))),IF(B1<DATE(YEAR(B1),
MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1)+1,MO
NTH(A1),DAY(A1))))
And even with this, you have a problem if the DoM of joining is >=29.
Life is a lot easier if you use "helper" columns! I used 3 to build
the formula:
E1
=IF(B1<DATE(YEAR(B1),MONTH(A1),DAY(A1)),DATE(YEAR(B1),MONTH(A1),DAY(A1
)),DATE(YEAR(B1)+1,MONTH(A1),DAY(A1)))
Returns the next anniversary date
F1
=DATE(YEAR(E1),MONTH(E1)-6,DAY(E1))
Returns 6 months before the anniversary date.
G1
=IF(DATE(YEAR(E1),MONTH(E1)-6,DAY(E1))>B1,MIN(E1,F1),E1)
Returns the next 6 monthly anniversary.
With these helper columns I can get over the DoM >=29 potential
problem by:
F1
=DATE(YEAR(E1),MONTH(E1)-6,MIN(DAY($E$1),DAY(DATE(YEAR(E1),MONTH(E1)-5
,0))))
G1
=IF(DATE(YEAR(E1),MONTH(E1)-6,MIN(DAY($E$1),DAY(DATE(YEAR(E1),MONTH(E1
)-5,0))))>B1,MIN(E1,F1),E1)
I'm sure that these formulas can be improved upon but they seem to
test OK so....
I think that a VBA approach might be a lot easier.
--
Regards
Norman Harker MVP (Excel)
Sydney, Australia
(e-mail address removed)
Excel and Word Function Lists (Classifications, Syntax and Arguments)
available free to good homes.