最近有一批SSH账号过期,纯手工计算账号是否过期有点麻烦,现在找了一下公式,利用公式根据账号生效时间、购买的月份(一个月按31天算)计算出来到期日,然后跟当前时间判断以确定是否应该将账号失效掉。

公式如下:

=IF((DATEVALUE(TEXT(D2,"#-00-00")) + 31 * E2) < NOW(),FALSE,DATEVALUE(TEXT(D2,"#-00-00")) + 31 * E2)

Excel表格内容如下

excel计算是否过期

参考资料:

在EXCEL中,text函数的作用是将各种形式的数值转换成特定格式的文本形式,函数如下:
=Text(待转换的单元格,特定格式字符串)
例如:设A1单元格数值为1,我们想将A1的内容转换成001的格式,可用如下公式:
=Text(A1,"000")
那么我们如何将字符串转成日期呢?如果我们的字符串为2007-07-30的格式,那就很好办,可直接用DATEVALUE函数转换,但如果字符串为20070730的格式,DATEVALUE函数将无法识别,此时我们就需要用到TEXT函数,先将20070730格式化成2007-07-30的格式,公式表示如下(设A1内容为20070730):
=Text(A1,"#-00-00")
转换成目标格式后,我们就可以直接用DATEVALUE函数了,即完整公式:
=DateValue(Text(A1,"#-00-00"))
一个简化的方法是直接用如下公式让EXCEL自动转换:
=Text(A1,"#-00-00")*1
上述公式是利用了EXCEL中日期数值的计算规则,由此延伸,我们可用如下公式获取目标日期距离当前时间的天数:
=Now()- Text(A1,"#-00-00")*1   --Now函数为返回当前的时间,应注意此公式所在单元格的格式应设置成数值

 

返回指定日期(start_date)之前或之后指定月份的日期序列号。
 语法:EDATE(start_datemonths)参数:Start_date参数代表开始日期,它有多种输入方式:带引号的文本串(例如:"1998/01/30")、序列号(35825 表示1998 30 )或其他公式或函数的结果(例如:DATEVALUE("1998/1/30"))Months 为在start_date 之前或之后的月份数,未来日期用正数表示,过去日期用负数表示。实例:公式“=EDATE("2001/3/5"2)”返回37016 2001 日,=EDATE("2001/3/5"-6)返回36774 2000 95日。