想在excel里做生日自动提醒,靠「下次生日计算+剩余天数统计+条件格式」三步就能搞定:先把所有生日整理成标准日期格式,用公式算出今年/明年最近的那一次生日,最后让剩余天数≤7天的记录自动高亮。本次操作的测试环境是microsoft 365版excel,如果你用的是wps或者老版本excel,先确认下软件支不支持let函数,不然公式跑不通。
不管是统计员工生日、客户生日,还是会员周年庆这类固定月日的提醒场景都能用。表格每次打开都会自动同步当天日期刷新结果,不用每年手动改年份。
第一步:整理生日表字段
先把表格列头设成4项:姓名、生日、下次生日、剩余天数。注意生日列必须是标准日期格式,不能是“7月16日”这种纯文本内容——要是你发现单元格默认靠左放、公式套上去算不出结果,先把这一列的格式改成日期类型就行。图里红框标出来的就是生日列,后面所有公式都要从这一列提取月和日的信息。

第二步:计算下次生日日期
点C2单元格输入下面的公式,输完往下拉填充整列:
=LET(b,B2,d,DATE(YEAR(TODAY()),MONTH(b),DAY(b)),IF(d<TODAY(),DATE(YEAR(TODAY())+1,MONTH(b),DAY(b)),d))
这个公式逻辑很简单:先按当前年份拼出今年的生日日期,要是今年的生日已经过了,就自动把年份加1取明年的生日,没到的话就直接用今年的日期。下面图里红框就是C2单元格的计算结果,顶部公式栏能看到你刚输的公式。

第三步:计算距离生日还有几天
接着点D2单元格,输公式 =C2-TODAY(),同样往下拉填充整列。D列算出来的就是剩余天数,数值越小离生日越近。要是算出负数,说明第二步的公式没正常生成最近的生日日期,优先排查C列公式对不对、B列的日期格式是不是标准的。

第四步:用条件格式自动标出即将生日的人
选中你所有要设置提醒的数据区域,比如A2:D100,点开顶部菜单栏的「开始」选项卡,找到「条件格式」点进去,选「新建规则」,再挑最后一项「使用公式确定要设置格式的单元格」,在弹出的公式输入框里填下面的内容:
=AND($D2>=0,$D2<=7)
注意这里写的 $D2 是锁定D列、不锁行号的意思,保证每一行都能读取自己那行D列的剩余天数。选好你要的高亮填充色之后,距离生日0到7天的记录就会自动变色,要是想改成提前15天提醒,直接把公式里的数字7换成15就行。

公式语法和参数
怕你想搞懂原理,把用到的几个核心函数拆开说下:
| 函数或参数 | 写法 | 作用 |
|---|---|---|
| LET | LET(name1,value1,calculation) |
给中间结果命名,减少重复公式。这里把 B2 命名为 b,把今年生日命名为 d。 |
| DATE | DATE(year,month,day) |
用年份、月份、日期重新拼成标准日期。生日提醒需要保留生日的月和日,再替换成年份。 |
| TODAY | TODAY() |
返回当天日期,表格重新计算时会自动变化。 |
| IF | IF(logical_test,value_if_true,value_if_false) |
判断今年生日是否已经过去,过去就返回明年的生日,没过去就返回今年生日。 |
| AND | AND(logical1,logical2,...) |
给条件格式同时限定两个条件:剩余天数不小于 0,并且不大于提醒天数。 |
容易出错的地方
如果生日列是纯文本格式,MONTH(B2) 和 DAY(B2) 大概率会返回错误值。遇到这种情况先选中生日整列,把格式改成短日期,随便挑个单元格试下能不能正常做加减运算就行。
条件格式公式里的美元符号别写错,不能写成 $D$2,要是把行号也锁死了,整个选中区域都会只按第2行的结果判断,后面的行根本不会跟着自己的剩余天数变色。
2月29日的闰年生日比较特殊,常规的员工表直接把这天的生日统一按2月28日或者3月1日提醒就行,先定好你们公司的规则,再单独给这类生日改设置就好。
扩展示例:按不同天数显示不同颜色
要是想做分级提醒,当天生日标红、7天内标橙、30天内标浅黄,直接建3条条件格式规则,按提醒范围从窄到宽排序就行,参数参考下表:
| 提醒范围 | 条件格式公式 | 建议颜色 |
|---|---|---|
| 当天生日 | =$D2=0 |
红色填充 |
| 7 天内 | =AND($D2>=1,$D2<=7) |
橙色填充 |
| 30 天内 | =AND($D2>=8,$D2<=30) |
浅黄色填充 |
所有规则设完之后,随便找个生日改到最近几天,看D列的剩余天数和整行高亮会不会同步更新,结果对得上的话,这个生日提醒表就可以直接放到你的员工信息库或者客户跟进表里长期用了。


















