晕,看着就晕!
首先说,这个公式里面没有什么复杂的东西,都是很简单的函数,但是作者把一个公式套成这样,也真够难为了。好,废话不多说,进入正题!
首先说IF函数,格式:
=IF(只有真和假两种情况的测试条件,如果条件为真值显示的结果,如果条件为假值显示的结果)。
作者套了一大堆的函数,其实就只组成了三个参数。第一个参数,看小括号什么时间全部对应了,找啊找,找啊找,找到这么一段:
DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))=TODAY()
这些共同组成了第一个参数。Date用来提取日期,哪天的日期呢,Year(日期值)得到年份数字,today()得到当前日期,Month(日期值)得到日期里面的月份数值值,Day(日期值)得到日期里面的“日”数值。公式中出现了Month(B2),那么这个B2就是写着某人的生日咯,而且起码包含了年月日,(时分秒就不必了)。
www.szkunpeng.com这一串合起来就是判断 Date(今年的年份+B2中生日的月份+B2中生日的日期)=Today()这个等式是否成立,成立即为“真”,不成立此式即为“假”。这里的道理也就是每年只要月份日期相同和出生的那一年相同即为生日。
好,看第二个条件,这个找啊找找啊找,找出这么一段:
"今天"
哈哈,就是这么一段,这是第二个参数,很简单,如果前面的式子判断为真值,那么单元格中就会显示“今天”俩字,这是如果条件为真值显示的结果。
然后看第三段,老兄你第三段好像作者留下有再写一些字的余地啊,前面的双引号应该要写上类似“距离过生日还有”之类的语句的。第三段一看那么长,就知道他要去判断距离生日还有多少天了。
""&DATE(IF(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),YEAR(TODAY()),YEAR(TODAY())+1),MONTH(B2),DAY(B2))-TODAY()&"天")
&符号是用来连接文本的,所以在&前面的双引号里面肯定是要写东西的,而且没有任何内容让人看着莫名其妙。咱们就当前面写的是“距离过生日还有”,那就是
"距离过生日还有"&DATE(IF(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),YEAR(TODAY()),YEAR(TODAY())+1),MONTH(B2),DAY(B2))-TODAY()&"天")
再看IF(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),YEAR(TODAY()),YEAR(TODAY())+1)判断如果 DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),也就是如果你今年的生日>=today()(也就是还没有到),显示YEAR(TODAY()),即显示当前年份,否则显示YEAR(TODAY())+1,就是显示为明年年份。然后就是MONTH(B2)提取生日月份,DAY(B2))得到生日“日”值。哎呀乱了乱了,整整思路,
DATE(IF(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>=TODAY(),YEAR(TODAY()),YEAR(TODAY())+1),MONTH(B2),DAY(B2))-TODAY()
简化一下,就是Date(今年或者明年年份,出生月,出生日),这样得到了下一个生日的日期,然后-today()得到了距离今天的日期。后面再链接一个字“天”,加上我虚拟的那几个字,就是:
距离过生日还有X天
X为计算得到的数字。
那这个公式全部显示下来就是两个结果,一个是今天正好是生日,显示为“今天”,一个是生日还不到,显示为 X天。