想在Excel里实现生日自动提醒功能,其实并不复杂。核心思路可以概括为三个步骤:首先将所有生日整理为标准日期格式,接着用公式计算出今年或明年最近的一次生日日期,最后让剩余天数在7天以内的记录自动高亮显示。简单来说,就是“下次生日计算+剩余天数统计+条件格式”的组合应用。本次操作的测试环境为Microsoft 365版Excel,如果你使用的是WPS或较老版本,请先确认软件是否支持LET函数,否则公式可能无法正常运行。
这套方法适用于员工生日、客户生日、会员周年庆等固定月日提醒场景。而且表格每次打开时,都会自动根据当天日期刷新结果,无需每年手动修改年份,非常省心。
第一步:整理生日表字段
首先,将表格的列标题设置为四项:姓名、生日、下次生日、剩余天数。请注意,生日列必须采用标准日期格式,不能是“7月16日”这样的纯文本——如果你发现单元格默认靠左对齐,且公式套上去后无法计算,大概率是格式问题,只需将该列格式改为日期类型即可。下图中红框标出的就是生日列,后续所有公式都要从这一列提取月和日信息。
第二步:计算下次生日日期
点击C2单元格输入以下公式,然后向下拖动填充整列:
=LET(b,B2,d,DATE(YEAR(TODAY()),MONTH(b),DAY(b)),IF(d
这个公式的逻辑很简单:先根据当前年份拼出今年的生日日期,如果今年的生日已经过去,就自动将年份加1取明年的生日;如果还没到,则直接用今年的日期。下图中红框即为C2单元格的计算结果,顶部公式栏显示了你刚输入的公式。

第三步:计算距离生日还有几天
接着点击D2单元格,输入公式 =C2-TODAY(),同样向下拖动填充整列。D列计算出的就是剩余天数,数值越小表示离生日越近。如果出现负数,说明第二步的公式没有正确生成最近的生日日期,请优先检查C列公式是否正确,以及B列的日期格式是否标准。

第四步:用条件格式自动标出即将生日的人
选中所有需要设置提醒的数据区域,例如A2:D100,点击顶部菜单栏的「开始」选项卡,找到「条件格式」并点击,选择「新建规则」,再选择最后一项「使用公式确定要设置格式的单元格」,在弹出的公式输入框中填写以下内容:
=AND($D2>=0,$D2<=7)
请注意,这里写的是 $D2,表示锁定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列的剩余天数和整行高亮是否同步更新。如果结果正确,这个生日提醒表就可以直接放入你的员工信息库或客户跟进表中长期使用了。
