today和eomonth函数如何组合使用,
浅谈出口账务和excel函数 在 Excel 中,TODAY 和 EOMONTH 组合使用,最典型的场景是动态计算当月、上个月或下个月的月末日期。
TODAY() 提供当前日期,EOMONTH 的第二个参数 0 表示本月。
=IF(TODAY()=EOMONTH(TODAY(),0), "是月末", "不是月末")
=EOMONTH(TODAY(),0)-TODAY()
=TEXT(EOMONTH(TODAY(),-1)+1, "yyyy年mm月")
思路:先取上月最后一天,再加 1 天得到本月 1 号,最后用 TEXT 格式化。
· 版本要求:EOMONTH 在 Excel 2007 及以上版本可直接使用;2003 及更早版本需加载“分析工具库”。
· 格式问题:结果可能是数字序列号,需将单元格格式设置为“日期”才能正常显示。
· 易错点:EOMONTH 第二个参数是月份偏移量,不是天数;写 EOMONTH(TODAY(),30) 会得到 30 个月后的月末,而非 30 天后。
· 易失性函数:TODAY() 是易失性函数,每天打开文件会自动更新,适合做动态报表。
开始日期:=EOMONTH(TODAY(),-1)+1
· EOMONTH(TODAY(),-1)+1:上月最后一天加1天 = 本月1号
· EOMONTH(TODAY(),0):本月最后一天
开始日期:=EOMONTH(TODAY(),-2)+1
结束日期:=EOMONTH(TODAY(),-1)
开始日期:=IF(DAY(TODAY())>=15, DATE(YEAR(TODAY()),MONTH(TODAY()),15), DATE(YEAR(TODAY()),MONTH(TODAY())-1,15))
EDATE(开始日期,1)-1:开始日期往后推1个月的对应日前一天。
=NETWORKDAYS(EOMONTH(TODAY(),-1)+1, EOMONTH(TODAY(),0))
=NETWORKDAYS(EOMONTH(TODAY(),-1)+1, EOMONTH(TODAY(),0), 节假日区域)
=IF(到期日期-TODAY()<=30, "即将到期", "正常")
=IF(到期日期<TODAY(),"已到期",IF(到期日期-TODAY()<=30,"即将到期","正常"))
=WORKDAY(EDATE(A2,36)+1, 0)
思路:EDATE(A2,36)+1 是到期日的次日,WORKDAY(...,0) 表示从该日起找最近的工作日(若次日是工作日则返回次日,相当于到期日顺延)。
=IF(WEEKDAY(EDATE(A2,36),2)>5, WORKDAY(EDATE(A2,36),1), EDATE(A2,36))
例:2023-03-15签3年 → 2026-03-31到期。
=IF(AND(到期日期>=EOMONTH(TODAY(),-1)+1, 到期日期<=EOMONTH(TODAY(),0)), "本周期内到期", "不在本周期")
EOMONTH 取某月最后一天 第二参数是月份偏移,不是天数
WORKDAY 算工作日 默认排除周六日,可加节假日