日常工作中,我们经常使用的日期函数就那么几个,但其实,在Excel中,还有很多日期函数,学会了能大大提高我们的工作效率。

下面就介绍几个被忽略的日期函数的使用方法。

1.使 用DAYS360 函数以 360 天为准计算两个日期间天数

用 DAYS360 函数可以按照一年360 天的算法(每个月以 30 天计,一年共计 12 个月) 计算出两个日期之间相差的天数。

语法结构:

DAYS360(start_date,end_date, [method])

参数:

● start_date:必需参数,表示时间段开始的日期。

● end_date:必需参数,表示时间段结束的日期。

● method:可选参数,是一个逻辑值,用于设置采用哪一种计算方法。当其值为 TRUE时,采用欧洲算法;当其值为FALSE 或省略时,则采用美国算法。

技术看板

欧洲算法: 如果起始日期或终止日期为某一个月的 31 号, 都将认为其等于本月的 30 号。美国算法: 如果起始日期是某一个月的最后一天, 则等于同月的 30号。如果终止日期是某一个月的最后一天,并且起始日期早于 30 号, 则终止日期等于下一个月的 1 号, 否则, 终止日期等于本月的 30 号。

DAYS360 函数的计算方式是一些借贷计算中常用的计算方式。 如果会计系统是基于一年 12 个月, 每月30 天来建立的, 那么在会计计算中可用此函数帮助计算支付款项。

例如, 小胡于 2016 年 8 月在银行存入了一笔活期存款, 假设存款的年利息是 6%, 在 2019 年 10 月 25 日将其取出, 按照每年 360 天计算, 要通过 DAYS360 函数计算存款时间和可获得的利息, 具体操作步骤 如下。

Step 01 计算存款时间。新建一个空白工作簿, 输入如图所示的相关内容,在 C6 单元格中输入公式【=DAYS360(B3,C3)】, 即可计算出存款时间。

Step 02 计算存款利息。 在 D6 单元格中输入公式【=A3*(C6/360)*D3】,即可计算出小胡的存款 1160 天后应获得的利息, 如图所示。

技术看板

如 果 start_date 参 数 的 值 在 end_date 参数值后, 那么 DAYS360 函数将返回一个负数。

2.使用 EDATE 函数计算从指定日期向前或向后几个月的日期

EDATE 函数用于返回表示某个日期的序列号, 即该日期与指定日期相隔(之前或之后) 的月份数。

语法结构:

EDATE (start_date,months)

参数:

● start_date:必需参数,用于设置开始日期。

● months:必需参数,用于设置与 start_date 间 隔 的 月 份 数。若取值为正数,则代表未来日期;否则代表过去的日期。

例 如, 某 员 工 于 2018 年 9 月20 日入职某公司, 签订的合同为 3年, 需要推断出该员工的合同到期日。 在 Excel 中输入公式【=EDATE (DATE(2018,9,20),36)-1】 即可。

技术看板

在使用 EDATE 函数时, 若 start_date 参数不是有效日期, 则函数返回错误值【#VALUE!】; 若 months 参数不是整数, 则截尾取整。

3.使用 EOMONTH 函数计算从指定日期向前或向后的某个月最后一天的日期

EOMONTH 函数用于计算特定月份的最后一天, 即返回参数 start_date 之前或之后的某个月份最后一天的序列号。

例如, 某银行代理基金为了方便管理, 每满 3 个月才在当月的月末从基金拥有者的账户上扣取下一次的基金费用。 小陈于当年的 6 月 12 日购买基金, 想知道第二次扣取基金费用的具体时间。 此时, 可使用函数 EOMONTH 计算正好在特定月份中最后一天到期的日期, 即输入公式【=EOMONTH(DATE(,6,12),3)】。

语法结构:

EOMONTH (start_date,months)

参数:

● start_date:必需参数,一个代表开始日期的日期。应使用DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。

● months: 必 需 参 数, start_date之前或之后的月份数。 months为 正 值 将 生 成 未 来 日 期; months为负值将生成过去日期。

技术看板

EOMONTH 函数的返回值是日期的序列号, 因此如果希望以日期格式的形式显示结果, 就需要先设置相应的单元格格式。 如果 start_date 参数值加 month 参数值产生了非法日期值,那么函数将返回错误值【#NUM!】。

4.使 用NETWORKDAYS函数计算日期间所有工作日数

NETWORKDAYS 函数用于返回参数 start_date 和 end_date 之间完整的工作日天数, 工作日不包括周末和专门指定的假期。

例如, 某公司接到一个项目, 需要在短时间内完成, 现在需要根据规定的截止日期和可以开始的日期, 计算排除应有节假日外的总工作时间, 然后展开工作计划, 具体操作步骤如下。

语法结构:

NETWORKDAYS (start_date,end_date,[holidays])

参数:

● start_date:必需参数,一个代表开始日期的日期。

● end_date:必需参数,一个代表终止日期的日期。

● holidays:可选参数,代表不在工作日历中的一个或多个日期所构成的可选区域,一般用于设置这个时间段内的假期。该列表可以是包含日期的单元格区域,也可以是表示日期序列号的数组常量。

Step 01 输入表格数据。 新建一个空白工作簿, 输入如图所示的相关内容, 目的是要依次统计出该日期间的法定放假日期。

Step 02 计算工作总天数。 在 B9 单元格 中 输 入 公 式【=NETWORKDAYS (A2,B2,C2:C7)】, 即可计算出该项目总共可用的工作日时长, 如图所示。

技能拓展——NETWORKDAYS.INTL 函数

如果在统计工作日时, 需要使用参数来指明周末的日期和天数, 从而计算两个日期间的全部工作日数, 就可以使用 NETWORKDAYS.INTL 函 数。 该 函数的语法结构为 NETWORKDAYS.INTL (start_date,end_date, [weekend],[holidays]),其中的 weekend 参数用于表示在 start_date 和 end_date 之间但又不包括在所有工作日数中的周末日。

5.使用 WEEKNUM 函数返回日期在一年中是第几周

WEEKNUM 函数用于判断某个日期位于当年的第几周。

语法结构:

WEEKNUM(serial_number,[return_type])

参数:

● serial_number:必需参数,代表一周中的日期。应使用 DATE函数输入日期,或者将日期作为其他公式或函数的结果输入。

● return_type:必需参数,用于确定一周从哪一天开始。若return_type 取值为 1,则一周从周日开始计算;若取值为 2,则一周从周一开始计算。若取值为其他内容,则函数将返回错 误 值【#NUM!】。 return_type 默认值为 1。

例如, 输入公式【=WEEKNUM (DATE(2018,6,25))】, 即可返回该日期在当年的周数是第 26 周。

6.使 用WORKDAY 函数计算指定日期向前或向后数个工作日的日期

WORKDAY 函数用于返回在某日期(起始日期) 之前或之后与该日期相隔指定工作日的某一日期的日期值。

语法结构:

WORKDAY(start_date,days, [holidays])

参数:

● start_date:必需参数,一个代表开始日期的日期。

● days:必需参数,用于指定相隔的工作日天数(不含周末及节假日)。当 days 为正值时将生成未来日期;当 days 为负值时将生成过去日期。

● holidays:可选参数,一个可选列表,其中包含需要从工作日历中排除的一个或多个日期,如各种省 市 自治区和国家 地区的法定假日及非法定假日。该列表可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量。

有些工作在开始工作时就根据工作日给出了完成的时间。 例如,某 个 项 目 从 2017 年 2 月 6 日 正 式启动, 要求项目在 150 个工作日内完成, 除去这期间的节假日, 使用WORKDAY 函数便可以计算出项目结束的具体日期, 具体操作步骤如下。

Step 01 输入表格数据。 新建一个空白工作簿, 输入如图所示的相关内容, 主要是依次输入可能完成任务的这段时间内法定放假的日期,可以尽量超出完成日期来统计放假日期。

Step 02 输入公式。 在 B2 单元格中输入公式【=WORKDAY(A2,150,C2:C7)】,按【Enter】 键即可得到日期序列号,如图所示。

Step 03 设置日期格式。 在【开始】 选项卡【数字】组中的列表框中选择【长日期】 命令, 如图所示。

Step 04 查看最终完成的日期。 经过上步操作后, 即可将计算出的结果转换为日期格式, 得到该项目预计最终完成的日期, 如图所示。

7.使 用YEARFRAC 函数计算从开始日期到结束日期所经历的天数占全年天数的百分比

YEARFRAC 函数用于计算 start_date 和 end_date 之间的天数占全年天数的百分比, 使用 YEARFRAC 函数可判别某一特定条件下全年效益或债务的比例。

语法结构:

YEARFRAC (start_date,end_date, [basis])

参数:

● start_date:必需参数,一个代表开始日期的日期。

● end_date:必需参数,一个代表终止日期的日期。

● basis:可选参数,用于设置日计数基准类型,该参数可以设置为 0、 1、 2、 3、 4。 basis 参数的取值含义如表所示。

例如, 某人在一年中不定时买入和卖出股票, 需要使用 YEARFRAC函数计算出每一次股票交易时间长度占全年日期的百分比, 具体操作步骤如下。

Step 01 输入计算公式。 打开股 票 交 易 信 息 统 计.xlsx, 在 C2 单 元 格 中 输 入 公 式【=YEARFRAC(A2,B2,3)】, 计算出第一次购买和卖出股票的日期在全年所占的百分比数据, 如图所示。

Step 02 设置百分比格式。使用 Excel的自动填充功能判断出后续购买和卖出股票的日期在全年所占的百分比数据,保持单元格区域的选择状态,单击【开始】 选项卡【数字】 组中的【百分比】 按钮, 即可使数据以百分比格式显示, 如图所示。