Excel guide · 4 min read
How to find upcoming birthdays in Excel
=DATE(YEAR($F$1)+(DATE(YEAR($F$1),MONTH(B2),DAY(B2))<$F$1),MONTH(B2),DAY(B2)). Subtract the as-of date to get the days until it. In Excel 365, FILTER on that result lists everyone with a birthday in the next 30 days.Sample data
Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Date of birth | As of | Nov 5, 2026 | ||
| 2 | Maya Chen | Mar 14, 1990 | ||||
| 3 | Tom Reyes | Nov 5, 1985 | ||||
| 4 | Aisha Khan | Nov 19, 1998 | ||||
| 5 | Leo Brandt | Dec 2, 2001 | ||||
| 6 | Sofia Lopez | Jan 8, 1979 | ||||
| 7 | Zoe Park | Feb 29, 2008 | ||||
| 8 | Omar Haddad | Nov 2, 1993 | ||||
| 9 | Nina Volkov | Nov 30, 1988 |
Download this sheet as an Excel practice file (.xlsx)
Next birthday: this year's, or next year's if it has passed
The sheet lists names and dates of birth, with an as-of date in F1 (Thursday 5 November 2026). =DATE(YEAR($F$1),MONTH(B2),DAY(B2)) gives Maya's birthday this year, 14 March 2026. That is already in the past, so it isn't her next birthday.
The formula below adds 1 to the year when this year's birthday is before the as-of date. The comparison returns TRUE or FALSE, and Excel treats those as 1 and 0 when you add them. Maya's next birthday is 14 March 2027; Aisha's is 19 November 2026. Tom was born on 5 November, so the comparison is FALSE and his next birthday is today. Use <= instead of < if you want today's birthdays to roll to next year.
Keep the as-of date in a cell rather than writing TODAY() into every formula. You can type =TODAY() in F1 for a live list, or a fixed date to plan ahead, and every formula follows it.
Result: Mar 14, 2027
Mar 14, 2027 for Maya Chen. Filled down, Aisha Khan gets Nov 19, 2026.
Days until the birthday, and the age they turn
Subtract the as-of date from the next birthday to get the days left. Aisha has 14 days, Leo 27, Tom 0 (today) and Omar, whose birthday was three days ago, 362. Format the result as Number or General, not as a date.
To show the age they are turning, measure complete years from the date of birth to the next birthday: DATEDIF(B5, next birthday, "y") returns 25 for Leo on 2 December. A simpler equivalent is the current age plus one, =DATEDIF(B5,$F$1,"y")+1, but that is wrong for anyone whose birthday is today.
Result: 14
14: Aisha Khan's birthday is in two weeks.
Who has a birthday in the next 30 days?
In Excel 365, work out every next birthday as an array with LET and keep the names where the gap is 30 days or less. Four people qualify: Tom (today), Aisha (14 days), Leo (27) and Nina (25), in list order.
Change 30 to 7 for a weekly reminder. To show the soonest first, swap FILTER for SORTBY with the same dates: =LET(a,$F$1,d,B2:B9,n,DATE(YEAR(a)+(DATE(YEAR(a),MONTH(d),DAY(d))<a),MONTH(d),DAY(d)),TAKE(SORTBY(A2:A9,n),3)) returns Tom, Aisha and Nina, the next three birthdays. In older Excel, put the next-birthday formula in a helper column and sort or filter on it.
Result: spills 4 rows × 1 column
| Tom Reyes |
| Aisha Khan |
| Leo Brandt |
| Nina Volkov |
Tom Reyes, Aisha Khan, Leo Brandt and Nina Volkov.
Birthdays this month, and a list in calendar order
For this month's birthdays, compare the month only: =FILTER(A2:A9,MONTH(B2:B9)=MONTH($F$1)) returns Tom, Aisha, Omar and Nina for November. Omar's birthday on the 2nd is included even though it has passed.
Sorting by date of birth sorts by age, not by birthday. To list birthdays from January to December, sort by the month and day as text: TEXT(B2:B9,"mmdd") turns 14 March into 0314, which sorts correctly. The formula below gives Sofia (8 January), Zoe (29 February), Maya, Omar, Tom, Aisha, Nina and Leo (2 December). In older Excel, put =TEXT(B2,"mmdd") in a helper column and sort by it with Data > Sort.
Result: spills 8 rows × 2 columns
| Sofia Lopez | 28863 |
| Zoe Park | 39507 |
| Maya Chen | 32946 |
| Omar Haddad | 34275 |
| Tom Reyes | 31356 |
| Aisha Khan | 36118 |
| Nina Volkov | 32477 |
| Leo Brandt | 37227 |
The names with their dates of birth, from Sofia Lopez (Jan 8) to Leo Brandt (Dec 2).
February 29 birthdays
Zoe was born on 29 February 2008. In a year without 29 February, DATE rolls the day over: DATE(2027,2,29) returns 1 March 2027, so the next-birthday formula gives 1 March. DATEDIF agrees with that rule; it counts her as 18 on 28 February 2027 and 19 on 1 March.
Another popular formula, =EDATE(B7,12*(DATEDIF(B7,$F$1,"y")+1)), adds whole years with EDATE, and EDATE stops at the last day of the month instead, giving 28 February 2027. Neither is wrong; pick the date your family or company celebrates and use that formula. Watch out for the EDATE version on birthdays that are today: it returns next year's date, because DATEDIF already counts today's year as complete.
Result: Feb 28, 2027
Feb 28, 2027 for Zoe Park. The DATE version returns Mar 1, 2027.
Highlight birthdays coming up
To color the names with a birthday in the next 7 days, use a conditional formatting rule with the same formula, written for the first row.
- Select A2:B9.
- Go to Home > Conditional Formatting > New Rule > Use a formula to determine which cells to format.
- Enter
=DATE(YEAR($F$1)+(DATE(YEAR($F$1),MONTH($B2),DAY($B2))<$F$1),MONTH($B2),DAY($B2))-$F$1<=7with $B2 locked to the column only. - Click Format, choose a fill color and click OK twice.
Common mistakes
Sorting by date of birth to get birthday order
That sorts by year, so it is really an age order. Sort by TEXT(date,"mmdd") or by the next-birthday date.
Only building this year's birthday
DATE(YEAR(today),MONTH,DAY) is in the past for anyone whose birthday has gone. Add a year when it is before the as-of date.
Using current age + 1 for the age they turn
On the birthday itself that is a year too many. Use DATEDIF from the birth date to the next birthday.
TODAY() in every formula
The list changes every day and you can't plan ahead. Put =TODAY() or a fixed date in one cell and point to it.
FAQ
How do I calculate days until a birthday in Excel?
Build the next birthday with =DATE(YEAR(TODAY())+(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))<TODAY()),MONTH(B2),DAY(B2)) and subtract TODAY(). Format the result as a number.
How do I list birthdays by month in Excel?
Use =FILTER(A2:A100,MONTH(B2:B100)=5) for May, or add a helper column with =TEXT(B2,"mmmm") and filter or pivot on it.
How do I sort birthdays by month and day, ignoring the year?
Sort by =TEXT(B2,"mmdd"). In Excel 365, =SORTBY(A2:B100,TEXT(B2:B100,"mmdd")) does it in one formula.
How do I get a birthday reminder in Excel?
Excel can't send alerts by itself, but a conditional formatting rule on days until <= 7, or a FILTER list of the next 30 days on a front sheet, shows who is coming up whenever you open the file.
Functions used
DATEBuilds a dateYEARYear of a dateMONTHMonth numberDAYDay of the monthDATEDIFWhole years, months or days betweenEDATESame day, months laterTODAYToday’s dateLETNames values inside a formulaFILTERKeeps matching rows, spillsSORTBYSorts by other columns, spillsTAKEFirst or last rows, spillsTEXTNumber to formatted text
Related guides
- How to calculate age in Excel from date of birth
- How to calculate age in years and months in Excel
- Countdown in Excel: how many days until a date
- Highlight overdue and upcoming dates in Excel
- How to get the first day of the month in Excel
- How to get the week number from a date in Excel
- How to calculate years of service in Excel
Updated