1、实现过程
1、在C2单元格中输入公式:
=10-DATEDIF(B2,TODAY()+10,"yd")
得到结果:
2、设置C列的单元格格式为自定义
0天后生日;;[红色]今天生日
便得到了最开始的那个效果
2、DATEDIF函数讲解
DATEDIF(起始日期,结束日期,参数)
参数 | 作用 |
y | 两日期差距的整年数,即已满几年 |
m | 两日期差距的整月数,即已满几月 |
d | 两日期差距的天数,即两者相减 |
ym | 两日期中月数的差,忽略日和年 |
md | 两日期中天数的差,忽略月和年 |
yd | 两日期中天数的差,忽略年 |
注意点:
1、结束日期必须大于起始日期,否则返回错误
2、有人不理解为什么加个10,再用10减,如果直接用原始公式:
=DATEDIF(B2,TODAY(),"yd")
今天是2017年2月8日,用DATEDIF忽视年进行计算
如果第一个生日参数是2月8日前的,则结果等同于
1993/2/8-1993/1/2=37天
如果第一个生日参数是2月8日后的,则结果等同于
1994/2/8-1993/2/9=364天
因为考虑到闰年,又不能直接用365-你得到的结果
所以需要今天加上10日,使得需要提醒的数据保持在2月18日前
便会进行
1993/2/18-1993/2/9=9
再利用10-9=1得到生日的天数,即公式
=10-DATEDIF(B2,TODAY()+10,"yd")
3、单元格格式讲解
理解这个设置需要知道单元格格式的两个知识点
1、单元格格式中的0表示数字占位符
2、有两个关键的分号隔离三个区域,分别代表
【大于0怎么样】;【小于0怎么样】;【等于0怎么样】
所以C列设置的单元格式
0天后生日;;[红色]今天生日
表示当C列的数字
数字大于0时,显示数字天后生日
数字小于0时,什么都不显示
数字等于0时,显示红色的今天生日
这个生日提醒学会了吗?欢迎留言!