Excel日期明细提醒?

比如一个月28天:这几天{28,3,6,9,12,15,18,21,24,25},一个月29天:这几天{28,2,5,8,11,14,17,20,23,25}一个月30天:这几天{28,1,4,7,10,13,16,19,22,25},一个月31天:这几天{28,31,3,6,9,12,15,18,21,24,25}提醒一下,因为我们每个月从上个月的26日结到这月的25日,每个月的日数又不同每月从26日开始每三日交一次到25号剩下一二天也要交掉的,我用这条:IF(DAY(EOMONTH(TODAY(),-1))=28,IF(OR(DAY(TODAY())={28,3,6,9,12,15,18,21,24,25}),""&TEXT(TODAY()-2,"m月d日")&"至"&TEXT(TODAY(),"m月d日")&"的单要交了",ROUNDUP(DAY(TODAY())/3,0)*3&"号记得要交单啊"),IF(DAY(EOMONTH(TODAY(),-1))=29,IF(OR(DAY(TODAY())={28,2,5,8,11,14,17,20,23,25}),""&TEXT(TODAY()-2,"m月d日")&"至"&TEXT(TODAY(),"m月d日")&"的单要交了",ROUNDUP(DAY(TODAY())/3,0)*3-1&"号记得要交单啊"),IF(DAY(EOMONTH(TODAY(),-1))=30,IF(OR(DAY(TODAY())={28,1,4,7,10,13,16,19,22,25}),""&TEXT(TODAY()-2,"m月d日")&"至"&TEXT(TODAY(),"m月d日")&"的单要交了",ROUNDUP(DAY(TODAY())/3,0)*3+1&"号记得要交单啊"),IF(DAY(EOMONTH(TODAY(),-1))=31,IF(OR(DAY(TODAY())={28,31,3,6,9,12,15,18,21,24,25}),""&TEXT(TODAY()-2,"m月d日")&"至"&TEXT(TODAY(),"m月d日")&"的单要交了",ROUNDUP(DAY(TODAY())/3,0)*3&"号记得要交单啊")))))
不知道用这条公式行不行,有什么不对请指教!!!

第1个回答  2020-09-22
提示为:“今天(明天、后天)记得要交单啊”。
公式为:

=IF(DAY(TODAY())>=28,IF(MOD(DAY(TODAY())-28,3)=0,"今天记得要交单啊",CHOOSE(3-MOD(DAY(TODAY())-28,3),"明","后")&"天记得要交单啊"),IF(MOD(TODAY()-DATE(YEAR(TODAY()),MONTH(TODAY())-1,28),3)=0,"今天记得要交单啊",CHOOSE(3-MOD(TODAY()-DATE(YEAR(TODAY()),MONTH(TODAY())-1,28),3),"明","后")&"天记得要交单啊"))追问

请问你这条月31.30.29.28都通用吗

追答

是的,所有日期都通用。

第2个回答  2020-09-27

怎么会这么绕啊!晕!就是提醒28-31天的月份几号交单吧!你也搞得太复杂了啊

如果是26日起算每逢3天提醒并要求每月25日改必须提醒,你的核算思路需要更换,公式为:

=IF(OR(DAY(TODAY())=25,MOD(TODAY()-EOMONTH(TODAY(),(DAY(TODAY())>25)-2)-25,3)=0),"★今天"&TEXT(TODAY(),"m月d日的单要交了"),"☆记得"&TEXT(3+TODAY()-MOD(TODAY()-EOMONTH(TODAY(),(DAY(TODAY())>25)-2)-25,3),"M月D日要交单"))

应该可以实现你的要求了…………

追问

那你就帮我简化下吗

追答

真的需要化时间!!!

估计你的逻辑也不是很完善,只能根据你的公式直白地修改,可以把公式改为:

=IF(OR(OR(DAY(TODAY())={25,28,31}),(DAY(TODAY())<25)*(MOD(DAY(TODAY()),3)=MOD(DAY(EOMONTH(TODAY(),-1))-1,3))),TEXT(TODAY()-2,"M月D日")&"至"&TEXT(TODAY(),"M月D日")&"的单要交了",ROUNDUP(DAY(TODAY())/3,0)*3+((DAY(EOMONTH(TODAY(),-1))=30)-(DAY(EOMONTH(TODAY(),-1)=29)))&"日记得要交单啊")

若是调整你的思路,换一种核算方式,公式可以改为:

=IF(OR(DAY(TODAY())=25,MOD(TODAY()-EOMONTH(TODAY(),(DAY(TODAY())>25)-2)-25,3)=0),"★今天"&TEXT(TODAY(),"m月d日的单要交了"),"☆记得"&TEXT(3+TODAY()-MOD(TODAY()-EOMONTH(TODAY(),(DAY(TODAY())>25)-2)-25,3),"M月D日要交单"))

追问

请问这两条大小月都通用吗

追答

你可以用一个新工作表,在A1单元格输入2020-1-1,复制并下拉到A400,再把公式输入到B1,然后把公式里的TODAY()全部改成A1,复制并下拉400行,即可检验每一天的提醒显示了,若是4000行就是检验11年多的数据了………………

第3个回答  2020-09-22
不知道你的数据原型是什么样的
数据结构不一样 思路 也不一样的
相似回答