excel里提取今年的年份加上特定的月份和日期组成一个新的日期?

举例是这样的,我的证书有效期是到2019.05.02到2024.07.05 在这5年时间里每一年的4月5号到10月5号都是我的证书的检查窗口期。现在我要做个能显示每年剩余时间天数的表格。而这个剩余天数是计算到每年的7月5号的,这里的问题就是每一年的年份是要变化的,月份日期是不变的,我的思路是窗口期的时间 我怎么样才能让他每一年的年份都变化,但月份不变,剩余时间里 我可以选择today()-窗口期后再加上90天。 就是这个窗口期的时间 我怎么样才能显示我想要的时间呢

度友,今天是7月21号了。所以没有剩余天数。

为方便理解,把有效期改成2024年10月5号。

效果如图

具体公式为:=IFERROR(DATEDIF(TODAY(),DATE(YEAR(TODAY()),MONTH(C4),DAY(C4)),"D"),"今年无剩余时间")
公式解释:


第一:iferror(公式结果,数据2),如果公式的就结果是这一个能确的,就显示公式的结果;如果公式的结果是错误的,就显示数据2

.
第二:datedif(日期1,日期2,“D”),日期2减去日期1的结果换算成天数再显示。


第三:date(数据1,数据2,数据3),三个数据分别是年,月,日。


如有疑问可以继续交流!

追问

首先谢谢你 写的这么具体,公式也是厉害的 把各种关系都考虑到了。 但是呢 这个窗口期其实是有效期的前后3个月,窗口期的时间 也是只能在这套证书的这段时间里不变 ,新出证书了又会变的 ,所以我想的 是 修改一个有效期后窗口期 自动变换 ,这个样子。
这样的话 ,那不是这个公式就可以分开来 简单的 写了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-16

在I4中输入或复制粘贴下列公式

=IF(AND(TODAY()>=C4,TODAY()<=E4),DATEDIF(MAX(YEAR(TODAY())&"/4/5",TODAY()),YEAR(TODAY())&"/7/5","D"),"")


或如下图

在F4中输入或复制粘贴下列公式

=IF(AND(TODAY()>=B4,TODAY()<=C4),DATEDIF(MAX(YEAR(TODAY())&"/4/5",TODAY()),YEAR(TODAY())&"/7/5","D"),"")

追问

你的 这个公式倒是解决了最大的难题,但是你这里算的 其实是到窗口期的最后一天的,不过也是学习了 谢谢,我今天又折腾了一下 用个很简单的 公式搞定了

追答

请将你的公式分享出来,大家互相学习,共同进步!

追问

我考虑到的是有效期的时间,是会根据证书换新了要改动的,所以我以有效期的时间来做基准。窗口期前3个月的,我选择了-3 =DATE(YEAR(TODAY()),MONTH(E5)-3,DAY(E5))
窗口期后3个月的把-3换成+3,=DATE(YEAR(TODAY()),MONTH(E5)+3,DAY(E5))
剩余天数就简单了,之后会出现的就是到新的一年为止剩余天数会一直显示负数,我再添加2个规则

追答

学习了,谢谢。

本回答被提问者采纳
第2个回答  2020-07-16

为什么要用这个函数呢?使用datedif不香吗?输入起止日期,然后输入公式自然就算出来了,比你这个简单快捷。

注意看公式的使用方法

第3个回答  2020-07-20

怎么会这样绕呀!

你的要求就是显示输出剩余天数啊!

   意思就是今天若7月5日前算到今年的7月5日前是剩余天数,若是在7月5日后就算到明年的7月5日的剩余天数不?

4月5日和10月5日是按规定算出来?还是输入的固定数?

操作上,估计应该是在I4单元格输入公式:

  =IF(TODAY()>E4,"",IF(TODAY()>DATE(YEAR(TODAY()),7,5),DATE(1+YEAR(TODAY()),7,5)-TODAY(),DATE(YEAR(TODAY()),7,5)-TODAY()))

追问

4月5和10月5是最终有效期的前后3个个月时间

追答

若是想帮助,就按每一个时间节点举例说一下,操作上就很简单了啊

追问

现在已经好了, 我找了一套简单的 公式来用的 效果不错,谢谢你哈

相似回答