函数功能
EOMONTH函数用于返回某个月份最后一天的序列号,该月份与start_date相隔(之前或之后)指示的月份数。它可以计算正好在特定月份中的到期日。
函数语法
EOMONTH(start_date, months)
参数解释
start_date:表示一个代表开始日期的日期。应使用DATE函数输入日期,或者将日期作为其他公式或函数的结果输入。
months:表示start_date之前或之后的月份数。months为正值将生成未来日期,为负值将生成过去日期。如果months不是整数,将截尾取整。
实例1 统计月份对应的月末日期
在实际应用中,有时候需要得到指定月份的月末日期,这里直接使用EOMONTH函数即可轻松实现。
➊ 选中B2单元格,在公式编辑栏中输入公式:
=EOMONTH(A2,0)
按“Enter”键即可得到第一条月份记录所对应的月末日期,这里显示的是日期序列,选择“开始”→“数字”→“短日期”格式即可完成转换。
➋ 将光标移到B2单元格的右下角,光标变成十字形状后,按住鼠标左键向下拖动进行公式填充,即可返回其他月份对应的月末日期,如图1所示。
图1
公式解析
=EOMONTH(A2,0)
起始日期为A2单元格中的日期值,将其月份数设置为正值以便生成未来日期,并返回其月份最后一天的序列号。
实例2 统计离职员工的工资结算日期
公司在每月的月初发放员工薪水,根据员工的离职日期可以计算出其发薪日。
➊ 选中C2单元格,在公式编辑栏中输入公式:
=TEXT(EOMONTH(B2,0)+1,”yyyy年m月d日”)
按“Enter”键即可得出第一位离职人员的工资结算日期。
➋ 将光标移到C2单元格的右下角,光标变成十字形状后,按住鼠标左键向下拖动进行公式填充,即可返回其他离职人员的工资结算日期,如图2所示。
图2
公式解析
①以0作为EOMONTH函数的参数,表示产生B2单元格中的月份所对应的最后一天的日期,然后加上数值1表示次月1日的序列值。
②使用TEXT函数将步骤①得到的序列值格式转换为日期格式,显示出年月日。
实例3 在考勤表中返回各月的天数
根据当前月份自动统计本月的日期天数在报表的制作中非常实用。
例如在考勤记录表中,需要按日来对员工出勤情况进行记录,但不同月份的实际天数却不一定相同(如2013年的8月份有31天,而9月份有30天)。
➊ 选中A4单元格,在公式编辑栏中输入公式:
=IF(ROW(A1)<=DAY(EOMONTH($B$1,0)),DAY(DATE(YEAR($B$1),MONTH($B$1),ROW(A1))),””)
按“Enter”键即可根据A1单元格中的当前日期返回其对应的日期,将光标移到A4单元格的右下角,光标变成十字形状后,按住鼠标左键向下拖动进行公式填充,即可返回当月的其他日期,如图3所示。
图3
➋ 当更改A1单元格中的当前日期时,可以看到日期会自动根据当月的实际情况发生相应的变化,如图4所示。
图4
公式解析
①返回B1单元格中给定日期所在月份的最后一天的日期。
②提取步骤①中返回日期的天数。
③ 如果ROW(A1)小于等于步骤②的返回值,则进入步骤④以后的运算,否则返回空值。
④ 提取B1单元格中给定日期的年份、月份并与ROW(A1)组成一个日期值。
⑤ 从步骤④返回的日期值中提取天数。
实例4 在考勤表中返回对应的星期数
在考勤表中除了可以根据当前月份自动返回各日期,同时还可以返回各日期对应的星期数,此时可以配合使用如下多个函数来达成。
➊ 选中B4单元格,在公式编辑栏中输入公式:
=IF(ROW(A1)<=DAY(EOMONTH($B$1,0)),WEEKDAY(DATE(YEAR($B$1),MONTH($B$1),A4),按“Enter”键即可根据A1单元格中的当前日期返回其对应的星期数,将光标移到A4单元格的右下角,光标变成十字形状后,按住鼠标左键向下拖动进行公式填充,即可返回其他日期对应的星期数,如图5所示。
图5
➋ 当更改A1单元格中的当前日期时,可以看到星期数会自动根据当月的实际情况发生相应的变化,如图6所示。
图6
公式解析
本公式的解析可以参照上一技巧,只是在步骤⑤中将DAY函数换成了WEEKDAY函数,因此可以返回各日期所对应的星期数。